Syllabus
Obiettivi formativi e risultati di apprendimento attesi
Obiettivo del corso è fornire le nozioni di base della programmazione imperativa attraverso teoria e pratica, con particolare attenzione alle applicazioni in fisica. Al termine del corso lo studente sarà in grado di strutturare in modo logico un problema e di risolverlo attraverso algoritmi specifici che utilizzano il linguaggio C.
Prerequisiti
Nessuno
Contenuti e Programma del corso
Il corso intende fornire le conoscenze base di informatica e programmazione per permettere agli studenti di fisica di scrivere semplici programmi e script orientati al calcolo numerico ed all'analisi dati, con particolare attenzione alle metodologie di riutilizzo del software. Gli argomenti principali sono i seguenti:
- Architettura di un elaboratore: macchina di Von Neumann, rappresentazione binaria dei numeri, algebra booleana, numeri in virgola mobile.
- Distinzione tra linguaggi compilati ed interpretati
- Introduzione al sistema Unix (linux).
- Il linguaggio C.
- Semplici algoritmi numerici (integrazione, differenziazione,...)
- Introduzione a Python.
- Mantenere e condividere il codice con GIT.
Riguardo al linguaggio C, verranno approfonditi i seguenti argomenti.
- Variabili e tipi dati, struttura di un programma, blocchi funzionali, controllo del flusso, funzioni di input/output, programmazione modulare (riuso del codice).
- Variabili: dichiarazione, inizializzazione e accesso. Regole di esistenza e visibilità delle variabili, variabili globali
- Tipi di dato e loro rappresentazione: Float, Integer, Char, Boolean
- Operatori: aritmetici fondamentali, regole di conversione tra tipi di confronto, operatori logici, precedenza degli operatori
- Costrutti iterativi e condizionali (while, do-while, for, if).
- Vettori, stringhe, Puntatori, vettori come puntatori, passaggio di puntatori alle funzioni, aritmetica dei puntatori, cenni all'allocazione dinamica della memoria
Metodi didattici utilizzati e attività di apprendimento richieste allo studente
Lezioni frontali ed esercitazioni in aula. Durante le lezioni il docente affronterà gli argomenti a partire dall’architettura generale del computer fino agli elementi specifici del linguaggio di programmazione. Gli esempi di codice nelle lezioni teoriche saranno "dal vivo". Durante le esercitazioni verrano proposti esercizi pratici su argomenti presentati a lezione.
Metodi di accertamento e criteri di valutazione
L'esame finale è scritto e orale. La parte scritta può essere svolta o tramite compitini da svolgersi durante il corso, o tramite un'unica prova successiva. La parte scritta consiste nell'implementazione di codice e verifica la capacità di programmare. L'orale intende verificare sia la capacità di programmare degli studenti tramite domande sul codice scritto in precedenza, che l'apprendimento dei concetti teorici.
Libri di Testo
Il materiale verrà reso disponibile durante il corso su pagina web e sul moodle. Non è quindi necessario l'acquisto di un libro di testo. Forniamo comunque due testi la cui consultazione è molto utile:
- L. M. Barone et al. "Programmazione Scientifica" 2a ed, Pearson editore.
- Kim. N. King, "Programmazione in C", 2a ed., Maggioli editore.
È inoltre possibile fare riferimento alla pagina ##### per ulteriori risorse per approfondire. I contenuti di questa pagina non saranno oggetto di esame.