Modalità d'esame
L'esame si compone di tre parti: una prova scritta, una prova di laboratorio (al computer), un colloquio. Le prove vertono su quanto svolto nelle lezioni in aula e in laboratorio.
Lo svolgimento della prova orale è subordinato al superamento di entrambe le parti precedenti.
Non è obbligatorio svolgere le tre parti nello stesso appello, ma le prove già superate restano valide solo per l'anno accademico in cui sono state superate (pertanto l'ultimo appello utile per concludere le tre prove è quello di settembre).
Vista la capienza delle aule e le difficoltà di organizzare prove di laboratori con tanti iscritti, e constatato che sono assai frequenti i casi di studenti iscritti che non si presentano all'appello o si presentano con una preparazione evidentemente insufficiente, per gli appelli di gennaio e febbraio è previsto il salto d'appello: gli studenti che non superano la prova potranno presentarsi all'appello successivo soltanto se dimostrano di saper svolgere almeno parte della prova. In particolare questo implica che gli studenti iscritti che non si presentano all'appello senza valida giustificazione e quelli che si ritirano dopo pochi minuti non potranno sostenere l'appello successivo.
Calendario delle prove di laboratorio per l'AA 2018/19
- 23 gennaio 2019 - ore 13.30 aula sigma - testo della prova - svolgimento dell'esercizio 2 - svolgimento dell'esercizio 4
- 6 febbraio 2019 - ore 13.30 aula sigma e omega
- 20 febbraio 2019 - ore 13.30 aula sigma e omega
- 13 giugno
12 giugno2019 - ore 13.30 aule sigma e omega - testo della prova - 3 luglio 2019 - ore 13.30 aule sigma e omega - testo della prova
- 19 settembre 2019 - ore 10 aula delta
Risultati di apprendimento attesi
La prova di laboratorio ha l'obiettivo di verificare se lo studente:- conosce il linguaggio di programmazione C e in particolare gli aspetti legati all'uso dei puntatori e alla gestione della memoria;
- conosce le strutture dati fondamentali (liste, alberi, grafi, code, pile, ecc) e le principali tecniche algoritmiche (ricorsione, divide-et-impera, strategie greedy, programmazione dinamica);
- comprende e sa modificare programmi in C che implementano e manipolano strutture dati fondamentali;
- sa usare le strutture dati fondamentali per descrivere e modellare problemi realistici;
- sa progettare e implementare in C algoritmi che risolvono probemi realistici, applicando e adattando tecniche e algoritmi noti.