Programmazione 2 (canale P-Z)
Corsi di Laurea in Informatica/Tecnologie Informatiche
Anno Accademico 2006/07
guerrini at di.uniroma1.it
[
Lezioni ]
[
Sorgenti ]
[
Esercitazioni ]
[
Corso 2006-07 ]
[
Pagina principale ]
Periodo di Preparazione degli esami
Durante il periodo di preparazione agli esami si svolgeranno due esercitazioni
- venerdì 8 giugno
- venerdì 15 giugno
Nelle esercitazioni si svolgeranno in dettaglio esercizi simili di quelli che verranno proposti all'esame. gli esercizi saranno pubblicati sul sito alcuni giorni prima dell'esercitazione. Gli studenti potranno così provare a svolgerli da soli prima della discussione in aula.
In particolare si segnalano i testi dei compiti di esame dell'anno accademico 2006-07:
Dettaglio Voti Esonero
Allo scritto, gli studenti esonerati potranno svolgere solo gli esercizi solo sulla seconda parte.
Maggiori dettagli sulle modalità di esame saranno pubblicati al più presto.
|
Orario delle Lezioni
Le lezioni si tengono in
Aula 5 di Matematica
Ricevimento
Durante il periodo delle lezioni,
Mercoledì dalle 11.00 alle 12.00, nell'ufficio del docente in via Salaria.
Al termine del corso, su appuntamento, se non verrà comunicato un altro orario di ricevimento.
Passaggi di canale
Possono sostenere l'esame con le modalità e negli appelli di questo canale:
- gli studenti del primo anno regolarmente afferenti al canale P-Z, ovvero
- gli studenti del primo anno con iniziale del cognome nell'intervallo P-Z che all'inizio dell'anno non hanno richiesto e ottenuto il passaggio ad un altro canale,
- gli studenti del primo anno che all'inizio dell'anno hanno richiesto e ottenuto il passaggio al canale P-Z;
- gli studenti iscritti ad anno successivo al primo o fuori corso con iniziale del cognome nell'intervallo P-Z;
- gli studenti che non rientrano nella categorie precedenti che entro il 30 marzo segnalano al docente (via e-mail) di voler sostenere l'esame negli appelli e con il programma di questo canale.
NOTA! Come da regolamento del corso di laurea, la suddivisione per canali vale solo per gli studenti del primo anno, gli altri studenti possono decidere di frequentare e sostenere gli esami negli appelli e con il programma di questo canale indipendentemente dall'iniziale del cognome. Si fa però notare che, questa scelta deve corrispondere all'effettiva intenzione di
frequentare le lezioni o quantomeno
di studiare il programma di questo canale e che, una volta
scelto il canale a cui si intende afferire
non è possibile sostenere gli esami con gli altri canali. Per questo motivo, gli studenti che in base all'iniziale del cognome non afferirebbero a questo canale devono segnalare al docente che intendono passare al suo canale entro un mese dall'inizio delle lezioni.
Programma
Richiami di programmazione ricorsiva: i fondamenti della ricorsione; lo stack delle chiamate ricorsive; esempi di programmi ricorsivi su vettori e matrici. Richiami su strutture dinamiche ricorsive: le liste.
Efficienza degli algoritmi: spazio e tempo. Lo spazio: stack e heap. Il tempo: costo delle operazioni elementari, costo di un ciclo, operazione dominante, caso peggiore, analisi asintotica. Analisi di un esempio: ricerca lineare e ricerca dicotomica. Caso peggiore e caso medio: le tavole hash.
Commentare i programmi: descrizione dell'algoritmo, asserzioni sui dati, condizioni di ingresso e uscita delle funzioni. Generazione automatica della documentazione.
Strutturazione dei programmi: sottoprogrammi e moduli. Tipi di dato astratti.
Pile e code: definizione e implementazione mediante liste e vettori. Pile e programmi ricorsivi. Implementazione dello stack delle chiamate di funzione. Dalla ricorsione all'iterazione. Ricorsione in coda.
Ricorsione e backtracking. Uso di pile e code per il backtracking. Esempi: visita di un labirinto.
Invarianti e verifica della correttezza di un ciclo. Invarianti come strumenti di progettazione di cicli. Applicazione del metodo al problema dell'ordinamento.
Alberi binari: definizione e implementazione. Semplici proprietà degli alberi binari. Visite ricorsive di alberi binari. Generalizzazione ad alberi n-ari. Esempi di alberi binari: gli alberi binari di ricerca.
Alberi e foreste: definizione e implementazione. Rappresentazione di alberi e foreste mediante alberi binari.
Grafi: definizione e implementazione. Visite in ampiezza e in profondità. Visita in ampiezza di un albero: visita per livelli.
Testing: scelta dei dati di test. Black-box testing: analisi e suddivisione in classi dei dati di input; analisi dei casi di confine. Glass-box testing: copertura delle istruzioni e dei cammini; casi limite o rilevanti.
Materiale didattico
Il principale materiale didattico sono i lucidi e gli esempi mostrati a lezione e pubblicati
sulla pagina delle lezioni.
Libri consigliati
Per una introduzione graduale al linguaggio C, si segnalano:
- Al Kelley, Ira Phol. C - Didattica e Programmazione. Pearson Education Italia, 2004.
- Deitel. C - Corso completo di programmazione. Apogeo, 2004.
Il miglior riferimento per lo studio del linguaggio C rimane comunque:
- Brian W. Kernighan, Dennis M. Ritchie. Il linguaggio C - Principi di programmazione e manuale di riferimento. Pearson Education Italia, 2004.
Si segnalano inoltre:
- Brian W. Kernighan, Rob Pike. Programmazione nella pratica. Pearson Education Italia, 1999.
- Jon Bentley. Programming Pearls, Second Edition. Addison-Wesley, Inc., 2000. (parzialmente disponibile online
)
Modalità di Esame
...
Esoneri
La prima prova intermedia si terrà
mercoledì 18/04 in
aula 1 NEC.
Date degli Appelli
...
Argomenti delle Lezioni
Il calendario delle lezioni, gli argomenti svolti e materiale didattico di supporto sono disponibili sulla
pagina delle lezioni svolte e degli argomenti trattati.
Esercitazioni
Gli argomenti delle esercitazioni, il codice dei programmi svolti durante le esercitazioni, esercizi integrativi ed altro materiale di supporto sono disponibili sulla
pagina delle esercitazioni del corso.
Anni precedenti
--
StefanoGuerrini - 26 Mar 2007