Scheda insegnamento
Informatica generale
anno accademico: | 2013/2014 |
docenti: | Tiziana Calamoneri, Ivano Salvo |
corso di laurea: | Matematica - DM 270/04 (triennale) |
tipo di attività formativa: | di base |
crediti formativi: | 9 (72 ore di lezione) |
raggruppamento disciplinare: | INF/01 Informatica |
lingua di insegnamento: | italiano |
canale: | A-H |
periodo: | II sem (03/03/2014 - 13/06/2014) |
Aula ed orario di lezione
Frequenza: consigliata
Programma di massima del corso:
Descrizione e progettazione di algoritmi efficienti
- Introduzione ai concetti di algoritmo, di struttura dati, di efficienza, di complessita' computazionale.
- Notazione asintotica.
- Introduzione alla ricorsione.
- Il problema dell'ordinamento.
- Strutture dati fondamentali (vettori, liste, pile, code, code con priorit‡, alberi).
- Dizionari.
- Grafi.
Linguaggio C
- Regole di "buona programmazione" (programmazione strutturata).
- Nozioni elementari del linguaggio C.
- Vettori.
- Funzioni.
- Ricorsione in C.
- Puntatori.
- Liste e alberi binari.
Testo consigliato: T.H. Cormen, C.E. Leiserson, R.L. Rivest e C. Stein, "Introduzione agli Algoritmi", seconda edizione, Mc Graw Hill, 2005. (disponibile sia in vers. italiana che inglese)
Modalità di erogazione: convenzionale
Risultati di apprendimento - Conoscenze acquisite: Al termine del corso gli studenti conosceranno le metodologie di base per la progettazione e l'analisi di algoritmi iterativi e ricorsivi, le principali strutture dati, alcuni modi per scandire tali strutture, i principali algoritmi di ordinamento e le implementazioni pi˘ elementari dei dizionari. Avranno inoltre le nozioni basilari sugli alberi ed i grafi. Saranno in possesso delle conoscenze necessarie allo sviluppo di programmi e funzioni, anche ricorsive, mediante il linguaggio C.
Risultati di apprendimento - Competenze acquisite: Al termine del corso gli studenti avranno acquisito familiarita' con le principali strutture dati elementari. Sapranno spiegare e analizzare la complessit‡ degli algoritmi di base che su esse si implementano, evidenziando come le prestazioni dipendano dalla struttura dati utilizzata. Saranno in grado di progettare nuove strutture dati e i relativi algoritmi, rielaborando quelli esistenti. Sapranno spiegare i principali algoritmi di ordinamento, illustrando le stategie di progetto sottostanti e la relativa analisi di complessit‡. Saranno in grado di confrontare i comportamenti asintotici dei tempi di esecuzione degli algoritmi. Saranno in grado di progettare ed implementare in C soluzioni di nuovi problemi, sia ricorsive che iterative, e di analizzare asintoticamente gli algoritmi risultanti.
Studio personale: la percentuale prevista di studio personale sul totale dell'impegno richiesto è del 65%