Programmazione con laboratorio (2009/2010)

Codice insegnamento
4S02751
Crediti
12
Coordinatore
Ugo Solitro
Settore disciplinare
INF/01 - INFORMATICA
Lingua di erogazione
Italiano
Pagina Web
http://elearning.univr.it
Pagina Web
http://elearning.univr.it
L'insegnamento è organizzato come segue:
Attività Crediti Periodo Docenti Orario
Teoria 8 II semestre, I semestre Ugo Solitro
Laboratorio 4 II semestre, I semestre Ugo Solitro

Orario lezioni

I semestre
Attività Giorno Ora Tipo Luogo Note
Teoria martedì 12.30 - 13.30 lezione Aula E  
Laboratorio venerdì 8.30 - 10.30 laboratorio Laboratorio didattico Delta dal 7-nov-2009  al 19-nov-2009
Laboratorio venerdì 8.30 - 10.30 esercitazione Laboratorio didattico Delta dal 10-ott-2009  al 5-nov-2009
Laboratorio venerdì 8.30 - 10.30 laboratorio Laboratorio didattico Delta dal 21-nov-2009  al 31-gen-2010
II semestre
Attività Giorno Ora Tipo Luogo Note
Teoria lunedì 13.30 - 15.30 lezione Aula E  
Teoria mercoledì 13.30 - 14.30 lezione Aula E  
Teoria mercoledì 14.30 - 15.30 lezione Aula E  
Teoria venerdì 13.30 - 15.30 lezione Aula E  
Laboratorio lunedì 11.30 - 13.30 lezione Laboratorio didattico Delta  

Obiettivi formativi

Apprendimento dei principi della programmazione e della sua applicazione per la risoluzione dei problemi, in particolare di carattere matematico, per mezzo di uno specifico linguaggio.
Nel modulo di laboratorio si imparerà a programmare attraverso lo sviluppo pratico di progetti in uno specifico linguaggio di programmazione.

Programma

TEORIA

Introduzione all'Informatica.

Parte I - Problemi, algoritmi e programmi.

- Nozioni di base: problema, specifiche, algoritmo; macchina astratta, compilatore e interprete; linguaggi di programmazione.
- Introduzione al linguaggio di programmazione.
- Programmi elementari: istruzioni di base e costruzione di semplici programmi.
- I tipi di dati. Nozione generale di tipo: caratterizzazione e rappresentazione dei dati. Variabili, espressioni e assegnamento. Tipi di dati astratti.
- I tipi di dati primitivi: caratteristiche, uso e problemi.
- Struttura degli programmi. Istruzioni fondamentali.
- I sotto-programmi: strutturazione, passaggio dei parametri, regole di visibilità.
- Tipi di dati strutturati. Array, puntatori, stringhe e altre strutture dati.
- Introduzione elementare agli oggetti.
- Strutture dati dinamiche.

Parte II - Analisi degli algoritmi.

- Correttezza degli algoritmi: terminazione, proprietà logiche; metodi per la verifica della correttezza.
- Elementi di complessità. Prestazioni degli algoritmi. Valutazione astratta dell'efficienza. Costo computazionale.
- Stime asintotiche di complessità in tempo e in spazio. Il caso peggiore e il caso medio.
- Il costo ammortizzato.
- Sequenze statiche: implementazione e algoritmi.
- Matrici: implementazione, operazioni e algoritmi.
- Sequenze dinamiche: definizione astratta e implementazione; operazioni di base; ricerca, ordinamento, concatenazione e fusione.
- Pile e code: definizione astratta e implementazione; operazioni di base.
- Alberi. Definizione astratta degli alberi binari e implementazione. Operazioni di base. Alberi di ricerca.
- Grafi: introduzione.

Complementi.
Introduzione alla programmazione a oggetti.

LABORATORIO

Introduzione pratica all'attività di laboratorio.
Apprendimento dei principi della programmazione e della sua applicazione per la risoluzione dei problemi, in particolare di carattere matematico, per mezzo di uno specifico linguaggio.
Nel modulo di laboratorio si imparerà a programmare attraverso lo sviluppo pratico di progetti in uno specifico linguaggio di programmazione.

Modalità d'esame

L'esame finale è unico per i moduli di teoria e laboratorio e prevede:
- una prova scritta sugli argomenti di teoria e sui progetti sviluppati in laboratorio;
- un colloquio orale (al quale si accede dopo aver superato la prova scritta) nel quale si discutono la prova scritta, l'attività svolta in laboratorio e in generale gli argomenti previsti dal programma d'esame.
La prova d'esame può essere in tutto o in parte sostituita da prove di verifica effettuate durante lo svolgimento del corso.

Testi di riferimento
Attività Autore Titolo Casa editrice Anno ISBN Note
Teoria Sciuto, Buonanno, Mari Introduzione ai sistemi informatici 4/ed McGraw-Hill 2008 9788838664311 Testo di riferimento per l'introduzione all'informatica
Teoria Bertacca M. e Guidi A. Programmare in Java McGraw-Hill 2007 978-88-386-6400-7 Testo di riferimento per il linguaggio di programmazione
Teoria Crescenzi, P. - Gambosi, G. - Grossi, R. Strutture di Dati e Algoritmi Pearson Education Italia 2006 8871922735 Testo di riferimento per lo studio e l'analisi degli algoritmi e delle strutture dati