Programmazione (2007/2008)

Corso disattivato

Codice insegnamento
4S00016
Crediti
10
Coordinatore
Ugo Solitro
L'insegnamento è organizzato come segue:
Modulo Crediti Settore disciplinare Periodo Docenti
Programmazione (laboratorio) 4 INF/01-INFORMATICA 2° Q, 3° Q Ugo Solitro
Programmazione (teoria) 6 INF/01-INFORMATICA 2° Q, 3° Q Ugo Solitro

Obiettivi formativi

Modulo: Programmazione (laboratorio)
-------
Scopo dell'insegnamento della programmazione e della sua applicazione per la risoluzione dei problemi, sia generali che di carattere matematico, per mezzo di un linguaggio imperativo.


Nel modulo di laboratorio (48 ore di lezione e pratica in laboratorio) si imparerà a programmare attraverso lo sviluppo pratico di progetti in uno specifico linguaggio di programmazione.


Modulo: Programmazione (teoria)
-------
Scopo dell'insegnamento della programmazione e della sua applicazione per la risoluzione dei problemi, sia generali che di carattere matematico, per mezzo di un linguaggio di programmazione imperativo.



Nel modulo di teoria (48 ore di lezione in aula) si studiano i principi generali della programmazione, le tecniche fondamentali per l'analisi e la soluzione dei problemi e inoltre i metodi per la valutazione degli algoritmi sia in termini di efficienza che di correttezza.

Programma

Modulo: Programmazione (laboratorio)
-------

L'attività di laboratorio consiste nello sviluppo di programmi e di progetti per l'apprendimento del linguaggio applicando i principi e le nozioni apprese durante le lezioni in aula.


Si studiano i costrutti principali del linguaggio di programmazione e i problemi legati allo sviluppo pratico delle soluzioni editing, compilazione, debugging, gestione di progetti di medie dimensioni.


Modulo: Programmazione (teoria)
-------

Pre-requisiti.

Si richiede una buona conoscenza degli argomenti, teorici e pratici, dell'insegnamento di Informatica di Base.


Contentuti.


Richiami sulle definizioni fondamentali: problema, specifiche, algoritmo; macchina astratta, compilatore e interprete; i linguaggi di programmazione.

- Introduzione al linguaggio di programmazione. Elementi di sintassi del linguaggio.
- Programmi elementari.
 I tipi di dati. Nozione generale di tipo di dati; caratterizzazione; rappresentazione dei dati. Le espressioni e l'assegnamento.
- I tipi di dati primitivi: caratteristiche, uso e problemi.

- Struttura degli programmi.
 Il controllo del flusso: condizionale, iterazione, blocco, ... I sotto-programmi.
- 
Tipi di dati strutturati.
 Array, puntatori, stringhe e altre strutture dati: caratteristiche fondamentali e loro uso. Strutture dati dinamiche: definizione astratta e possibili implementazioni.

- Correttezza degli algoritmi: terminazione, proprietà logiche dei programmi, invarianti; metodi per la verifica della correttezza.

- Elementi di analisi di complessità.
 Nozioni di complessità in tempo e in spazio.
Studio di algoritmi notevoli.


- Complementi. Gli altri paradigmi di programmazione: a oggetti e funzionale.

Modalità d'esame

Modulo: Programmazione (laboratorio)
-------
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 nel quale possono essere discusse la prova scritta, l'attività di 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.





Modulo: Programmazione (teoria)
-------
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 nel quale possono essere discusse la prova scritta, l'attività di 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
Autore Titolo Casa editrice Anno ISBN Note
Stefano Mizzaro Introduzione alla programmazione con il linguaggio Java (Edizione 2) Franco Angeli 2000 8846416961
Crescenzi, P. - Gambosi, G. - Grossi, R. Strutture di Dati e Algoritmi Pearson Education Italia 2006 8871922735