- Docente: Francesco Giacomini
- Crediti formativi: 6
- SSD: FIS/01
- Lingua di insegnamento: Italiano
- Modalità didattica: Convenzionale - Lezioni in presenza
- Campus: Bologna
- Corso: Laurea in Fisica (cod. 9244)
Conoscenze e abilità da conseguire
Al termine del corso lo studente possiede una conoscenza del linguaggio di programmazione C++ adeguata e sufficiente ad affrontare e risolvere semplici problemi di Fisica mediante programmi eseguiti al calcolatore. In particolare è in grado di compiere tutte le operazioni di acquisizione e scrittura di dati, sia in forma testuale sia in forma binaria, e di elaborarli secondo necessità, specialmente riguardo a esperimenti scientifici
Contenuti
Cenni di architettura degli elaboratori e di sistemi operativi
Linguaggio macchina e linguaggio di programmazione di alto livello
Perché usare il C++
Oggetti, tipi, variabili, costanti
Operare su oggetti tramite espressioni
Istruzioni per strutturare un programma
Definizione e uso di funzioni
Definizione di nuovi tipi
Sistema di input/output
Programmazione generica
Allocazione dinamica di memoria
La Standard Library del C++: contenitori e algoritmi
Polimorfismo dinamico (o programmazione object-oriented)
Prevenzione e gestione degli errori
Cenni di concorrenza e parallelismo
Cenni di software engineering e di strumenti a supporto
Testi/Bibliografia
Come introduzione al C++: B. Stroustrup, A tour of C++
Come referenza online: C++ reference
Libro di testo consigliato: B. Stroustrup, Programming: Principles and Practice Using C++, 2nd edition, Addison-Wesley
Metodi didattici
Lezioni frontali ed esercitazioni obbligatorie in laboratorio.
Modalità di verifica e valutazione dell'apprendimento
L'esame consiste in due prove:
- Progetto riguardante l'implementazione di un programma C++ secondo indicazioni date a lezione. Il progetto è svolto in parte durante le ore di laboratorio, in parte in autonomia. Il progetto può essere svolto in gruppo, fino a quattro persone.
- Colloquio orale riguardante la discussione del progetto e domande teoriche e pratiche sugli argomenti svolti a lezione.
La valutazione del progetto si basa su cinque criteri:
- La qualità della relazione intende valutare la capacità della relazione di accompagnare il lettore nella comprensione del programma e nelle scelte di design e implementative.
- La qualità del design del programma intende valutare quanto il design dell'applicazione sia appropriato per risolvere il problema proposto.
- La qualità dell'implementazione del programma intende valutare l'applicazione corretta dei costrutti del linguaggio C++ nell'implementazione del programma.
- La correttezza del programma intende valutare quanto il comportamento del programma in esecuzione sia aderente a quanto specificato nella consegna.
- L'originalità della soluzione intende valutare il rispetto della consegna e l'esplorazione di strumenti, librerie, tecniche aggiuntivi.
In base al grado di soddisfacimento, ogni criterio sarà valutato secondo la scala: insufficiente, sufficiente, buono, ottimo. Per accedere all'orale è necessario che ogni criterio abbia una valutazione almeno sufficiente. La valutazione media dei criteri (usando la corrispondenza sufficiente = 18, buono = 22, ottimo = 26) costituisce il voto di accesso al colloquio orale.
Scopo del colloquio orale è innanzitutto la conferma della valutazione del progetto, discutendo del contributo dello studente allo stesso. Ulteriori quesiti di contenuto teorico/pratico, migliorativi del voto di accesso, sono mirati a valutare la profondità di comprensione dei concetti appresi a lezione e la loro applicabilità alla soluzione di problemi.
Strumenti a supporto della didattica
La presentazione e gli esempi mostrati a lezione sono disponibili in una repository git.
Orario di ricevimento
Consulta il sito web di Francesco Giacomini