IN110 - INFORMATICA 1
(obiettivi)
ACQUISIRE UNA BUONA COMPETENZA NELLA PROGETTAZIONE DI ALGORITMI PER LA RISOLUZIONE DI PROBLEMI E NELLA CODIFICA DEGLI ALGORITMI NEL LINGUAGGIO DI PROGRAMMAZIONE C. ACQUISIRE DELLE COMPETENZE DI BASE SULLA TEORIA DELLA CALCOLABILITÀ E DELLA COMPLESSITÀ COMPUTAZIONALE. ACQUISIRE COMPETENZE DI BASE SULLA STRUTTURA DEI CALCOLATORI ELETTRONICI E SULLA MODALITÀ DI UTILIZZO DEL SISTEMA OPERATIVO UNIX/LINUX.
|
Codice
|
20401890 |
Lingua
|
ITA |
Tipo di attestato
|
Attestato di profitto |
Crediti
|
10
|
Settore scientifico disciplinare
|
INF/01
|
Ore Aula
|
96
|
Attività formativa
|
Attività formative di base
|
Canale Unico
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.
|
Date di inizio e termine delle attività didattiche
|
Dal al |
Modalità di erogazione
|
Tradizionale
|
Modalità di frequenza
|
Non obbligatoria
|
Metodi di valutazione
|
Prova scritta
Prova orale
|
Docente
|
GUARINO STEFANO
(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-C.
(testi)
T.H. CORMEN, C.E. LEISERSON, R.L. RIVEST, C. 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.
|
Date di inizio e termine delle attività didattiche
|
Dal al |
Modalità di frequenza
|
Non obbligatoria
|
|
|