Docente
|
LIVERANI MARCO
(programma)
Introduzione ai diversi aspetti dello studio dell'informatica; il concetto di algoritmo; il calcolatore; linguaggi di programmazione. Modello di Von Neumann, modello della macchina di Turing. Rappresentazione delle informazioni su di un calcolatore. Cenni sui sistemi operativi e sul sistema operativo Unix/Linux. Algoritmi e loro proprietà; i linguaggi per la formalizzazione di algoritmi: diagrammi di flusso e pseudo-codifica. Introduzione alla programmazione, linguaggi di programmazione di alto livello. Programmazione strutturata. Linguaggio C: tipi di dato, operatori ed espressioni, strutture di controllo, array e puntatori, strutture, liste, allocazione dinamica della memoria, funzioni, funzioni ricorsive, le direttive del preprocessore, input e output. Algoritmi di ordinamento; strutture dati complesse, heap, liste, alberi, grafi; algoritmi elementari su grafi, visita di grafi, cammini ottimi su grafi. Cenni sulla complessità computazionale degli algoritmi; cenni sulla calcolabilità: problemi trattabili, intrattabili, la classe P, NP, NP-complete.
(testi)
Cormen, Leiserson, Rivest, Stein, "Introduzione agli algoritmi e strutture dati", terza edizione, McGraw-Hill, 2010. A. Bellini, A. Guidi, "Linguaggio C", quarta edizione, McGraw-Hill, 2009. M. Liverani, "Programmare in C", seconda edizione, Esculapio, 2013.
|