Diario delle lezioni
Argomenti trattati a lezione
- 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.
- Sistemi di numerazione decimale, binario ed esadecimale. Conversioni da un sistema a un altro. Sistemi di rappresentazione.
- Numeri negativi. Numeri in complemento e rappresentazione in eccesso. Rappresentazione dei numeri razionali. La convenzione IEEE754.
- Problemi di arrotondamento. Rappresentazione dei caratteri e delle stringhe. Rappresentazione di altre informazioni.
- Principio di funzionamento di una CPU. Linguaggio macchina.
- Linguaggio assembly e linguaggi di alto livello. Compilatori.
- LAB: Il sistema operativo Linux
- LAB: redazione e compilazione di un programma
- LAB: il preprocessore e l'esecuzione di un programma
- Primi passo nel linguaggio C: il main. Compilazione su architetture diverse. Variabili. Dichiarazione e assegnazione. Rappresentazione delle costanti.
- Direttive al compilatore (include e define). Istruzioni di I/O (printf e scanf).
- Librerie matematiche. Buone pratiche di programmazione (uso della costanti, naming di variabili e costanti, indent)
- LAB: modelli di onde gravitazionali
- LAB: modelli di onde gravitazionali
- LAB: divisioni tra interi
-
valori logici e loro rappresentazione. Proposizioni. Algebra di Boole. Operatori di confronto. La struttura di selezione if. Operazioni di salto nel programma con goto.
-
Teorema di Bohm-Jacopini. Strutture. Struttura sequenziale, di selezione e di iterazione. L'if e la struttura di selezione. L'istruzione while.
-
L'istruzione do-while. L'istruzione for. Valori restituiti da scanf e loro utilizzo.
- LAB: caduta libera
- LAB: caduta libera
- LAB: problemi di precisione
- Metodo iterativo per la soluzione di equazioni. Problemi di arrotondamento (media di molti numeri).
- Array unidimensionali. Dichiarazione e uso.
- Algoritmi di ordinamento: bubblesort. Uso del generatore di numeri random.
- Array di caratteri. Stringhe.
- LAB: array
- LAB: numeri random
- LAB: stringhe
- Uso di sprintf. Ancora sui numeri random. Il seme del generatore.
- Errori comuni nella generazione dei numeri casuali. Come usare il seme del generatore in modo consapevole. Gli array multidimensionali.
- Uso degli array multidimensionali. Il metodo di Gauss per la soluzione dei sistemi di equazioni lineari.
- LAB: regola di Sarrus
- LAB: metodo di Cramer
- LAB: soluzione di sistemi di equazioni lineari
- Il concetto di puntatore
- Dichiarazione e uso di puntatori. Operatori * e &.
- Aritmetica dei puntatori. Puntatori e array. Puntatori e stringhe. Revisione della funzione scanf().
- LAB: puntatori
- LAB: puntatori
- LAB: puntatori
- Uso dei file di carattere: il tipo FILE e le funzioni fopen, fprintf, fscanf e fclose.
- File binari.
- Funzioni: dichiarazione e definizione di funzioni senza parametri.
- LAB: funzioni
- LAB: funzioni
- LAB: funzioni
- Dichiarazione e definizione di funzioni con parametri.
- Funzioni con puntatori come parametri. Funzioni ed array.
- Funzioni di funzioni.
- LAB: funzioni
- LAB: funzioni
- LAB: funzioni
- Fit lineari.
- Implementazione di un fit in C. Polinomi di Lagrange.
- LAB: esercitazione valutata
- LAB: esercitazione valutata
- LAB: esercitazione valutata
- Discussione sulla generazione dei numeri casuali e sulla distribuzione dei valori delle funzioni delle variabili aleatorie. Introduzione all'integrazione numerica.
- Integrazione numerica. Metodi deterministici.
- Errori comuni di programmazione. Fit lineari e integrazione numerica. Introduzione ai metodi stocastici.
- LAB: esercitazione valutata
- LAB: esercitazione valutata
- LAB: esercitazione valutata
- Integrazione con il metodo Monte Carlo.
- Integrazione di superfici e di volumi. Il metodo hit&miss.
Ultime modifiche: giovedì, 20 dicembre 2018, 10:28