Laboratorio di Programmazione & Informatica 1
Programma di massima del corso
(Il programma effettivamente svolto si trova nella
sezione DIARIO LEZIONI)
-
Algoritmi, macchine e linguaggi di programmazione: la macchina di Von
Neumann; linguaggio
macchina, assembly, codifica dei dati; linguaggi di programmazione ad
alto livello, il processo di compilazione.
- Il linguaggio C:
variabili e tipi di dati fondamentali. Istruzioni di
input-output. Controllo del flusso. Operatori aritmetici, logici e
relazionali. Le funzioni e il passaggio dei parametri. Le funzioni ricorsive.
-
Gli array: definizioni e applicazioni. Media, mediana, moda.
- Le stringhe. Funzioni su stringhe. Le strutture.
I puntatori e le strutture autoreferenzianti.
-
Elaborazione di File in C. File e streams.
Gestione di files ad accesso sequenziale e ad accesso casuale.
- La valutazione degli algoritmi e la complessità
computazionale. Notazione asintotica. Upper bound e lower
bound.
- Ricerca sequenziale e ricerca binaria. Il problema dell'ordinamento: selectionsort, bubblesort,
insertionsort, mergesort. Analisi e confronto degli algoritmi.
- Stutture dati elementari: liste, pile e code.
- Alberi: definizioni, notazioni e proprietà. Visita in ampiezza. Visita in profondità
(pre- post-, in-ordine) in versione ricorsiva e
iterativa. Alberi binari di ricerca.
- Grafi: definizioni e notazioni. Grafi particolari (planari, bipartiti).
- Implementazione in C di algoritmi di ricerca. Implementazione in C di algoritmi di sorting.
- Implementazioni di liste, pile e code con puntatori.
- Implementazione di visite di alberi binari.
- Implementazioni di grafi con matrici di
adiacenza e liste di adiacenza.
NOTA: Questo è il programma a partire dall'A.A. 2018-19. Negli anni precedenti era diverso in alcune parti.