Argomenti trattati a lezione

  1. Introduzione al corso. Strumenti (elearning, twitter, posta elettronica, libri di testo). Modalità d'esame. Scopo del corso. Ruolo dell'informatica nella fisica. Perché il linguaggio C.
  2. Sistemi di numerazione decimale, binario ed esadecimale. Conversioni da un sistema a un altro. Sistemi di rappresentazione. 
  3. Numeri negativi. Numeri in complemento e rappresentazione in eccesso. Rappresentazione dei numeri razionali. La convenzione IEEE754.
  4. Problemi di arrotondamento. Rappresentazione dei caratteri e delle stringhe. Rappresentazione di altre informazioni.
  5. Principio di funzionamento di una CPU. Linguaggio macchina.
  6. Linguaggio assembly e linguaggi di alto livello. Compilatori.
  7. LAB: Il sistema operativo Linux
  8. LAB: redazione e compilazione di un programma
  9. LAB: il preprocessore e l'esecuzione di un programma
  10. Primi passo nel linguaggio C: il main. Compilazione su architetture diverse. Variabili. Dichiarazione e assegnazione. Rappresentazione delle costanti.
  11. Direttive al compilatore (include e define). Istruzioni di I/O (printf e scanf).
  12. Librerie matematiche. Buone pratiche di programmazione (uso della costanti, naming di variabili e costanti, indent)
  13. LAB: modelli di onde gravitazionali
  14. LAB: modelli di onde gravitazionali
  15. LAB: divisioni tra interi
  16. valori logici e loro rappresentazione. Proposizioni. Algebra di Boole. Operatori di confronto.  La struttura di selezione if. Operazioni di salto nel programma con goto.
  17. Teorema di Bohm-Jacopini. Strutture. Struttura sequenziale, di selezione e di iterazione. L'if e la struttura di selezione. L'istruzione while.
  18. L'istruzione do-while. L'istruzione for. Valori restituiti da scanf e loro utilizzo.
  19. LAB: caduta libera
  20. LAB: caduta libera
  21. LAB: problemi di precisione
  22. Metodo iterativo per la soluzione di equazioni. Problemi di arrotondamento (media di molti numeri).
  23. Array unidimensionali. Dichiarazione e uso.
  24. Algoritmi di ordinamento: bubblesort. Uso del generatore di numeri random.
  25. Array di caratteri. Stringhe.
  26. LAB: array
  27. LAB: numeri random
  28. LAB: stringhe
  29. Uso di sprintf. Ancora sui numeri random. Il seme del generatore.
  30. Errori comuni nella generazione dei numeri casuali. Come usare il seme del generatore in modo consapevole. Gli array multidimensionali.
  31. Uso degli array multidimensionali. Il metodo di Gauss per la soluzione dei sistemi di equazioni lineari.
  32. LAB: regola di Sarrus
  33. LAB: metodo di Cramer
  34. LAB: soluzione di sistemi di equazioni lineari
  35. Il concetto di puntatore
  36. Dichiarazione e uso di puntatori. Operatori * e &.
  37. Aritmetica dei puntatori. Puntatori e array. Puntatori e stringhe. Revisione della funzione scanf().
  38. LAB: puntatori
  39. LAB: puntatori
  40. LAB: puntatori
  41. Uso dei file di carattere: il tipo FILE e le funzioni fopen, fprintf, fscanf e fclose.
  42. File binari. 
  43. Funzioni: dichiarazione e definizione di funzioni senza parametri.
  44. LAB: funzioni
  45. LAB: funzioni
  46. LAB: funzioni
  47. Dichiarazione e definizione di funzioni con parametri.
  48. Funzioni con puntatori come parametri. Funzioni ed array.
  49. Funzioni di funzioni.
  50. LAB: funzioni
  51. LAB: funzioni
  52. LAB: funzioni
  53. Fit lineari.
  54. Implementazione di un fit in C. Polinomi di Lagrange.
  55. LAB: esercitazione valutata
  56. LAB: esercitazione valutata
  57. LAB: esercitazione valutata
  58. Discussione sulla generazione dei numeri casuali e sulla distribuzione dei valori delle funzioni delle variabili aleatorie. Introduzione all'integrazione numerica.
  59. Integrazione numerica. Metodi deterministici.
  60. Errori comuni di programmazione. Fit lineari e integrazione numerica. Introduzione ai metodi stocastici.
  61. LAB: esercitazione valutata
  62. LAB: esercitazione valutata
  63. LAB: esercitazione valutata
  64. Integrazione con il metodo Monte Carlo.
  65. Integrazione di superfici e di volumi. Il metodo hit&miss.

 

 

Ultime modifiche: giovedì, 20 dicembre 2018, 10:28