Anno Accademico 2006/07
Docenti:
StefanoGuerrini e
RobertoNavigli
Notizie
- Gli studenti che hanno consegnato il V modulo, sono convocati giovedì 28 Febbraio alle ore 9.30, ufficio del prof. Guerrini, per discutere il progetto.
|
Lezioni
- Tutti i canali
- Lunedì dalle 12.30 alle 14.00, in aula 1 NEC
- Canale A-D
- Martedì dalle 10.30 alle 12.30, in aula 1 NEC
- Canale E-O
- Mercoledì dalle 10.30 alle 12.30, in aula 5 Matematica
- Canale P-Z
- Martedì dalle 16.00 alle 18.00, in aula 5 Matematica
Attenzione: A partire dal 19 marzo, le lezioni si terranno
solo il lunedì dalle 12.30 alle 14.00 in aula 1 NEC.
Argomenti Lezioni e Codici Esempi
- Nozioni di Base
- Struttura di un programma C.
- Fasi della generazione di un eseguibile: preprocessore, compilatore e linker.
- Variabili e funzioni
extern
e static
.
- Header file e semplici direttive del preprocessore:
#include
e #define
. Macro-comandi.
- File
- Operazioni di base sui file (apertura, chiuisura, lettura, scrittura).
- File testo
FileTesto.tgz: Esempio I/O su file di testo
Implementazione di una funzione per la sostituzione di caratteri
- File Binari
FileBinari.tgz: Esempi I/O su file binari
Implementazione delle funzioni di I/O in vari formati di un database di record.
Progetto
Il progetto di Laboratorio di Programmazione consiste nella
implementazione della soluzione di un problema non banale che preveda
la realizzazione di tre o quattro moduli durante lo svolgimento del
corso.
Tenuto conto che il Laboratorio si svolge al I anno del corso di
laurea le fasi di analisi del problema da risolvere, di individuazione
e progettazione dei moduli che compongono la soluzione sono svolte dai
docenti. Il compito assegnato agli studenti
consisterà principalmente nella codifica della soluzione
individuata.
Specifiche del Progetto
Valutazione dei Moduli
La valutazione dei progetti avviene in due fasi:
- Black-box: Questa prima fase non prevede l'analisi del codice.
Le soluzioni inviate vengono compilate ed eseguite su dei dati di test. L'output prodotto viene quindi confrontato con quello atteso (prodotto dalla versione implementata dai docenti).
In base alla quantità e al tipo degli errori riscontrati ad ogni soluzione viene assegnato un voto in centesimi con valore minimo 50. Le soluzioni con meno di 50 sono da considerare insufficienti.
- White-box: Questa seconda fase prevede l'analisi del codice e il controllo delle copie.
I programmi inviati verranno elaborati mediante un software per il controllo della similarità. Gli studenti con soluzioni troppo simili saranno convocati per chiarire la situazione. Nel caso si dovesse arrivare alla conclusione che le soluzioni inviate sono copiate, verrà annulato l'elaborato di tutti gli studenti coinvolti. In caso di recidività, gli studenti non potranno sostenere l'esame per l'anno accademico 2006/07.
L'analisi della qualità del codice terrà conto di parametri come leggibilità, semplicità della soluzione scelta, adeguatezza delle scelte adottate, pulizia del codice, ecc.
In questa fase, ad ogni soluzione verrà assegnata una valuazione in decimi.
Il dettaglio della valutazione dei singoli moduli sono riportati nella
pagina della valutazione.
Pezze (patches)
Dopo la pubblicazione delle valutazione black-box di un modulo, gli studenti che lo ritengono opportuno potranno mettere una pezza (patch) alla soluzione inviata. In pratica, agli studenti che hanno inviato soluzioni non completamente corrette verrà lasciato un breve periodo di tempo (intorno alle 2-3 settimane) per individuare e correggere gli errori e per inviare
- la (nuova) versione corretta della soluzione
- le differenze tra la nuova versione di ogni file della nuova soluzione e la versione originale (inviare il risultato di un comindo diff sui due file)
Maggiori dettagli sulla forma e i modi per l'invio delle correzioni verranno specificati in seguito
Per poter essere prese in cosiderazione, le nuove soluzioni dovranno essere delle vere correzioni e non una riscrittura completa del codice.
|
Valutazione Finale
I criteri per la determinazione del voto finale a partire dai voti ottenuti sui singoli moduli verranno specificati in seguito
--
StefanoGuerrini - 15 Mar 2007