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
|
Modulo: Programmazione (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.
Modulo: Programmazione (teoria)
-------
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 teoria si apprendono i fondamenti della programmazione imperativa e le tecniche fondamentali per l'analisi e per la soluzione dei problemi; inoltre si introducono i metodi per la valutazione degli algoritmi sia in termini di efficienza che di correttezza.
Modulo: Programmazione (laboratorio)
-------
In laboratorio si impara a conoscere il linguaggio di programmazione attraverso lo sviluppo di progetti basati sulle idee esposte in aula.
Si studiano i costrutti principali del linguaggio e i problemi legati allo sviluppo concreto delle soluzioni; in particolare si apprendono le abilità fondamentali di editing, compilazione, debugging, gestione di progetti.
Modulo: Programmazione (teoria)
-------
Pre-requisiti: una buona conoscenza dei contenuti, teorici e pratici, dell'insegnamento di Informatica di Base.
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.
Conclusioni. Cenni alla programmazione a oggetti.
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 (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.
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 (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.
Autore | Titolo | Casa editrice | Anno | ISBN | Note |
T. Cormen, C. Leiserson, R. Rivest | Introduction to algorithms (Edizione 1) | MIT Press | 1990 | 0262031418 | Testo di consultazione |
Stefano Mizzaro | Introduzione alla programmazione con il linguaggio Java (Edizione 2) | Franco Angeli | 2000 | 8846416961 | Testo di introduzione alla programmazione e al linguaggio |
Crescenzi, P. - Gambosi, G. - Grossi, R. | Strutture di Dati e Algoritmi | Pearson Education Italia | 2006 | 8871922735 | Testo di introduzione all'analisi degli algoritmi |
******** CSS e script comuni siti DOL - frase 9957 ********p>