L'insegnamento di Programmazione è composto da due moduli, la cui valutazione avviene in prove separate:
Per superare l'esame bisogna superare tutte le prove. Il voto finale risulterà dalla media dei voti della prova scritta e della prova pratica, incrementato dal punteggio del progetto (fino a tre punti).
La prova pratica si considera superata se si raggiungono i 17/30.
Le prove possono essere affrontate anche in sessioni differenti. In ogni caso, per partecipare ad una prova è necessario iscriversi all'esame tramite il SIFA (Esame di Programmazione, prof. Anisetti). Entrambe le prove si terrano nello stesso giorno (tipicamente, al mattino la prova scritta e al pomeriggio la prova pratica).
Una volta superate entrambe le prove, bisogna contattare il prof. Anisetti per concordare un progetto.
Per verbalizzare il voto, una volta superate le prove scritte e terminato il progetto, contattare il prof. Anisetti, comunicandogli in quali sessioni si sono superate le prove.
Nota bene: I voti conseguiti sono validi per un anno (cioé fino alla sessione corrispondente dell'anno seguente). Per stimolare al miglioramento della propria preparazione, le prove possono essere ripetute e il miglior risultato conseguito potrà essere utilizzato nel calcolo del voto finale.
La prova pratica consisterà in una serie di quesiti ai quali bisogna rispondere fornendo il programma C che risolve il problema.
I quesiti sono a difficoltà crescente, con punteggio differenziato a seconda delle difficoltà. In particolare, ci saranno due esercizi per ciascuna delle categorie 1, 3 e 5 punti, e un esercizio per ciascuna delle categorie da 7 e 9 punti.
Esempi di esercizi che possono costituire la prova pratica sono riportati nella sezione Prove d'esame.
| lunedì | 09.10.2017 | ore 9:00-12:00 | aula 3Sud |
| martedì | 10.10.2017 | ore 9:00-12:00 | laboratorio Ovest |
| mercoledì | 11.10.2017 | ore 14:00-17:00 | aula 3Sud |
| lunedì | 16.10.2017 | ore 9:00-13:00 | laboratorio Ovest |
| martedì | 17.10.2017 | ore 9:00-13:00 | laboratorio Ovest |
| mercoledì | 18.10.2017 | ore 14:00-17:00 | aula 3Sud |
| lunedì | 23.10.2017 | ore 9:00-13:00 | aula 3Sud |
| martedì | 24.10.2017 | ore 9:00-13:00 | laboratorio Ovest |
| mercoledì | 25.10.2017 | ore 14:00-17:00 | aula 3Sud |
| martedì | 31.10.2017 | ore 9:00-13:00 | laboratorio Ovest |
| lunedì | 06.11.2017 | ore 9:00-13:00 | aula 3Sud |
| martedì | 07.11.2017 | ore 9:00-13:00 | laboratorio Ovest |
| mercoledì | 08.11.2017 | ore 14:00-16:00 | aula 3Sud |
| lunedì | 13.11.2017 | ore 9:00-13:00 | aula 3Sud |
| martedì | 14.11.2017 | ore 9:00-13:00 | laboratorio Ovest |
| mercoledì | 15.11.2017 | ore 14:00-16:00 | aula 3Sud |
| lunedì | 20.11.2017 | ore 9:00-13:00 | laboratorio Ovest |
| martedì | 21.11.2017 | ore 9:00-13:00 | laboratorio Ovest |
| mercoledì | 10.01.2018 | ore 9:30-13:00 | laboratorio Ovest |
| 17.01.2018 | appello di gennaio | ore 14:00 | Laboratorio Ovest |
| 14.02.2018 | appello di febbraio | ore 14:00 | Laboratorio Ovest |
| 28.03.2018 | appello di marzo | ore 14:00 | Laboratorio Ovest |
| 20.06.2018 | appello di giugno | ore 14:00 | Laboratorio Ovest |
| 18.07.2018 | appello di luglio | ore 14:00 | Laboratorio Ovest |
| 17.09.2018 | appello di settembre | ore 14:00 | Laboratorio Ovest |
| 23.01.2018 | appello di gennaio 2018 | ore 14:00 | Laboratorio Ovest |
| pagina doppia | argomento | materiale | esercizi | |
|---|---|---|---|---|
| (pdf) | Introduzione al corso (09/10/2017) | lettura consigliata | ||
| (pdf) | Linguaggi, programmi, compilazione (09/10/2017) | codice (zip) | ||
| (pdf) | Laboratorio: Compilazione a riga di comando (10/10/2017) | codice (zip) | ||
| (pdf) | Programmazione strutturata (11/10/2017) | codice (zip) | ||
| (pdf) | Valutazione di espressioni (11/10/2017) | codice (zip) | ||
| (pdf) | Laboratorio: Variabili ed espressioni (16/10/2017) | codice (zip) | ||
| (pdf) | Espressioni con effetti collaterali (16/10/2017) | |||
| (pdf) | Costrutti di selezione (16/12/2017) | |||
| (pdf) | Laboratorio: Costrutti di selezione (16/10/2017) | codice (zip) | Esercizi (pdf) | |
| (pdf) | Costrutti di iterazione (18/10/2017) | codice (zip) | Esercizi (pdf) | |
| (pdf) | Tipi elementari (18-23/10/2017) | Esercizi (pdf) | ||
| (pdf) | Laboratorio: Costrutti di iterazione (23/10/2017) | codice (zip) | ||
| (pdf) | Vettori e matrici (24/10/2017) | Esercizi (pdf) | ||
| (pdf) | Stringhe (24/10/2017) | Esercizi (pdf) | ||
| (pdf) | Laboratorio: stringhe, vettori, matrici, strutture (24/10/2017) | codice (zip) | ||
| (pdf) | Strutture (25/10/2017) | Esercizi (pdf) | ||
| Laboratorio: Game of Life (31/10/2017) | codice | |||
| (pdf) | Puntatori (06/11/2017) | Esercizi (pdf) | ||
| (pdf) | Laboratorio: Puntatori (06/11/2017) | codice (zip) | ||
| (pdf) | Gestione della memoria (07/11/2017) | Esercizi (pdf) | ||
| (pdf) | Laboratorio: Gestione della memoria (07/11/2017) | codice (zip) | ||
| (pdf) | Funzioni (08/11/2017) | Esercizi (pdf) | ||
| (pdf) | Argomenti del main (08/11/2017) | Esercizi (pdf) | ||
| Laboratorio: Funzioni (13/11/2017) | codice (zip) | |||
| (pdf) | Ricorsione (14/11/2017) | Esercizi (pdf) | ||
| (pdf) | Laboratorio: ricorsione (14/11/2017) | codice (zip) | ||
| (pdf) | Parsing (15/11/2017) | Esercizi (pdf) | ||
| (pdf) | Gestione dei file (20/11/2017) | Esercizi (pdf) | ||
| (pdf) | Librerie standard (20/11/2017) | Esercizi (pdf) | ||
| (pdf) | Macro parametriche (20/11/2017) | |||
| (pdf) | Puntatori a funzione (20/11/2017) | |||
| (pdf) | Debugger (20/11/2017) | |||
| (pdf) | Laboratorio: preparazione all'esame, file e liste (10/01/2018) | codice (zip) | ||
| lucidi (zip) | Tutto il materiale | codice (zip) | esercizi (zip) |
Gli esercizi da 1 punto consistono nella correzione degli errori sintattici di un semplice programma e nella sua compilazione.
| Esercizio | Soluzione | Risultato |
| Correggi_e_compila | correggi_01_sol.c | correggi_01_ris.txt |
| Correggi_e_compila | correggi_20_sol.c | correggi_20_ris.txt |
Gli esercizi da 3 punti consistono nella implementazione di una semplice procedura.
Gli esercizi da 5 punti consistono nel completamento di una procedura con strutture iterative.
Gli esercizi da 7 punti consistono nella scrittura di una programma con strutture statiche e lettura da file.
| Esercizio | Soluzione | Risultato |
| Finestra | finestra_01_sol.c | finestra_01_ris.txt |
| Telefoni | telefoni_01_sol.c | telefoni_01_ris.txt |
| Verniciatore | verniciatore_01_sol.c | verniciatore_01_ris.txt |
Gli esercizi da 9 punti consistono nella scrittura di una programma con strutture dinamiche e lettura da file.
| Esercizio | Soluzione | Risultato |
| Attacco IP | attaccoIP_01_sol.c | attaccoIP_01_ris.txt |
| Viaggiatori | viaggiatori_01_sol.c | viaggiatori_01_ris.txt |
| Menu | menu_01_sol.c | menu_01_ris.txt |
| 17.01.2018 | (html) | Appello di gennaio 2018 |
| 14.02.2018 | (html) | Appello di febbraio 2018 |
| 28.03.2018 | (html) | Appello di marzo 2018 |
| 20.06.2018 | (html) | Appello di giugno 2018 |
| 18.07.2018 | (html) | Appello di luglio 2018 |
| 17.09.2018 | (html) | Appello di settembre 2018 |
| 09.11.2018 | (html) | Appello straordinario di novembre 2018 |
| 23.01.2019 | (html) | Appello di gennaio 2019 |