Pagina relativa
all'esercitazione di Linguaggi di programmazione 2000-2001
In questa pagina si troveranno le informazioni
relative all'esercitazione 2000-2001. L'esercitazione e'
sviluppata a gruppi di tre o quattro studenti per gruppo. I
gruppi di studenti vanno formati tra coloro che hanno superato la
prova intermedia (oppure che rifanno una esercitazione gia'
consegnata a suo tempo alla prof.Reggio). La composizione dei
gruppi (o successive eventuali variazioni) vanno comunicate per
email alla prof. Dodero.
Gli studenti potranno utilizzare
- i Mac aula 712 o in alternativa
- un PC/Windows di loro proprieta' su cui e'
installato Visual C++ Microsoft
- un PC/Linux di loro proprieta' con il
software gnu.
Se intendono usare un PC devono comunicarlo
all'atto della formazione del gruppo.
Elenco gruppi e
macchine che utilizzano
Testo dell'esercitazione
Files per la verifica dell'esercitazione: primo file e secondo
file
ATTENZIONE:
Per tutte le array nei programmi (lunghezza delle parole,
eventuale numero massimo di parole, eventuale numero massimo di
occorrenze di una parola nel testo, ed altre eventuali) occorre
che esse siano dimensionate in modo da gestire correttamente
questi due files.
Informazioni utili
Consegnare il seguente materiale:
- documentazione cartacea,
- un dischetto contenente il sorgente del
file o dei file sviluppati (non il progetto).
Data ultima di consegna: 16
luglio 2001.
Correzione
dell'esercitazione
NOTE:
- E' possibile consegnare prima di tale
data, ma i programmi saranno probabilmente esaminati
tutti insieme.
- E' possibile
sostenere l'orale prima della consegna o della correzione (in tal caso il voto verra'
registrato solo quando sara' noto il voto
dell'esercitazione, sommando i due punteggi).
- Si suggerisce ai gruppi che in tale data
non avessero completato l'esercitazione di consegnare
comunque quanto fatto, spiegando chiaramente cosa manca o
cosa non funziona correttamente: potra` cosi`essere
valutato il lavoro svolto (con voto di laboratorio piu'
basso)
Inserire il materiale in una busta chiusa con
sopra scritti numero del gruppo e nome-cognome di ogni
componente, e consegnarla IN BUCA (portineria) a Dodero o
Gianuzzi. Tutto il materiale consegnato (documentazione e
dischetti) dovra' essere identificato allo stesso modo (onde
evitare disastri se qualcosa cadesse per terra, si rimescolasse
il contenuto delle buste ecc).
Per valutare l'esercitazione si terra' conto di
tutto il materiale consegnato, in particolare:
- dell'esecuzione
del programma, passando i
test presenti nella pagina "verifica" piu'
eventuali altri se necessario
- del codice sorgente (chiarezza,
decomposizione funzionale, eccetera)
- della documentazione consegnata (coerenza,
completezza, chiarezza ecc.)
- dell'uso
o meno di strutture dinamiche
(l'uso
esclusivo di strutture statiche non consentira' di
assegnare voti superiori a 10)
Documentazione
1. Files sorgenti
Fornire un listato di tutti i files sviluppati,
adeguatamente commentati.
2. Documentazione cartacea
La documentazione cartacea puo' essere
consegnata manoscritta (purche' chiara e leggibile) oppure
scritta con word processors, oppure meta' e meta', ecc. Essa deve
essere sintetica, in particolare non devono essere riportate
informazioni contenute in questo foglio, su altri libri di testo
o siti web eccetera.
La documentazione deve contenere una copertina
che riporti nome, cognome, data e FIRMA dei componenti il
gruppo che hanno effettivamente svolto l'esercitazione.
Nel testo della documentazione devono essere
presenti in modo chiaro le seguenti informazioni:
- informazioni di utente: deve
essere possibile a chiunque sia in possesso del dischetto
e della documentazione, ricompliare il programma,
ripassare i tests ecc. Specificare in particolare se il
programma ha qualche limitazione (ad esempio, numero
massimo di termini presenti nell'indice, numero massimo
di righe del file o simili) o anomalia conosciuta (es.
presenza di qualche errore nella gestione della
punteggiatura, che non e' stato possibile
eliminare
).
- informazioni sull'algoritmo:
Vanno elencati: i files contenuti nel dischetto, e per
ciascun file le strutture dati e le funzioni ivi
contenute per sommi capi. La descrizione va data in
italiano o in pseudo-codice (bastano poche righe). Non va
descritta l'operazione riga per riga!
(esempio di cosa NON scrivere: la
funzione pinco() confronta il primo parametro con zero
e se essi sono uguali, azzera anche il secondo
parametro. Chiunque leggera' la
documentazione sa anche leggere un IF!)
Consigli utili (a chi non ha mai realizzato
grossi programmi):
Si raccomanda di sviluppare il programma, in
modo top-down o bottom up, salvando successivamente versioni
intermedie, soluzioni parziali purche' siano eseguibili, che
potrebbero essere consegnate se non fate in tempo a completare
l'esercitazione.
Esempio:
- programma che non gestisce i segni di
punteggiatura
- programma che identifica correttamente le
parole ma non mantiene l'elenco delle righe
- programma che non identifica la prima
maiuscola con la minuscola
- programma che opera solo su standard input
e standard output, non su file.
- programma che stampa l'indice ma non
ordinato alfabeticamente
Suggerimenti (validi anche dopo la
consegna):
- Tenere sempre copie di tutto cio che
e funzionante anche se incompleto (la catastrofe
e in agguato) e copie di modifiche parziali ecc.
almeno come sorgenti.
- Ripulire periodicamente le varie
directories di tutte le prove non funzionanti ecc.
(attenzione: potreste cancellare le versioni buone e
lasciare quelle non funzionanti! Ma se non lo fate dopo
un po perdete il filo)
- Scrivere la documentazione man mano che si
sviluppa il programma (non le ultime due ore prima della
consegna!) e tenerlo coerente con le fasi di sviluppo, le
correzioni eccetera.