Docente
|
LIVERANI MARCO
(programma)
Introduzione alle caratteristiche del calcolatore ed al rapporto programmatore/esecutore. Cenni sul modello di Von Neumann e sulla macchina di Turing. Linguaggi di programmazione: linguaggi imperativi e dichiarativi. Istruzioni fondamentali di un linguaggio di programmazione procedurale generico. Algoritmi e pro- grammi; diagrammi di flusso. Regole della programmazione strutturata, cenni sul teorema di Jacopini-Bohm; approccio top–down alla soluzione di un problema. Il linguaggio di programmazione C: definizione di variabili, array, strutture, puntatori; strutture di controllo algoritmiche; alcune funzioni di libreria. Algoritmi fondamentali e strutture dati: algoritmi di ordinamento, rappresentazione di grafi e alberi, visita di un grafo in ampiezza e in profondità, cammini di costo minimo su grafi, alberi binari di ricerca. Cenni sulla complessità computazionale di un algoritmo e sulle classi di complessità per i problemi.
(testi)
T.H. Cormen, C.E. Leiserson, R.L. Rivest, C. Stein, "Introduzione agli algoritmi e strutture dati", Mc Graw-Hill, Terza Edizione, 2010 M. Liverani, "Programmare in C, guida al linguaggio attraverso esercizi svolti e commentati", seconda edizione, Esculapio, 2013
|