Fondamenti di Informatica NZ

UNIVERSITÀ DI NAPOLI “FEDERICO II”
DIPARTIMENTO DI INGEGNERIA ELETTRICA E DELLE TECNOLOGIE DELL’INFORMAZIONE
CORSO DI LAUREA IN INGEGNERIA INFORMATICA
Fondamenti di Informatica N-Z
A.A. 2016/17
1. L’INFORMAZIONE E LE SUE RAPPRESENTAZIONI: L’informatica ed il mondo moderno; il concetto di
“informazione”; rappresentazione e codifica dell’informazione, la rappresentazione digitale; numeri in binario;
rappresentazione dei numeri relativi; rappresentazione dei numeri reali; gli operatori booleani; convergenza
digitale; codifica delle informazioni testuali.
2. INTRODUZIONE ALGEBRA DI BOOLE: Logica proposizionale. Connettivi logici. Algebra di Boole.
Proprietà. Funzioni booleane e tabelle di verità. Teorema di De Morgan;Porte logiche, esempio di circuito
combinatorio (Half Adder)
3. IL MODELLO DI ESECUTORE: Processi e processori; Modello di Von Neumann; Le memorie; La CPU; Il
bus; Il clock; Firmware, software e middleware; Evoluzione del modello di Von Neumann; Il modello astratto
di esecutore; I microprocessori; Un modello di processore;
4: ALGORITMI E PROGRAMMI: Informatica come studio di algoritmi; La soluzione dei problemi: calcolabilità
degli algoritmi; Automi a Stati Finiti; Macchina di Turing; Macchina di Turing Universale; Tesi di Church e
Turing. La trattabilità degli algoritmi: complessità computazionale; La descrizione degli algoritmi; Sequenza
statica e dinamica di algoritmi; I linguaggi di programmazione; I metalinguaggi: BNF; La programmazione
strutturata e la progettazione dei programmi di piccole dimensioni: cenni.
5. LA STRUTTURA DEI PROGRAMMI: Le frasi di un linguaggio di programmazione. Strutture di Controllo.
Potenza espressiva e Teorema di Bohm-Jacopini. Modularità e parametrizzazione del codice;
Sottoprogrammi: procedure e funzioni. Scambio dei parametri.
6. I DATI: Informazione e dato; La classificazione dei tipi; I tipi atomici; tipo booleano; tipo carattere; tipo
intero; tipo reale: tipi strutturati. Array monodimensionali; Matrici; Il tipo stringa di caratteri; Il record; Array di
record; puntatori; file testo, puntatori.
7. ASTRAZIONE SUI DATI: Il tipo pila; Lista a puntatori
8. IL LINGUAGGIO C++: Introduzione: Le caratteristiche generali del linguaggio C; Programmi e gestione
tipi; typedef; funzioni; Meccanismi di sostituzione per valore, per riferimento e per indirizzo; array; struct;;
libreri per la gestione delle stringhe di caratteri; Puntatori; Scope e Visibilità, tempo di legame (binding),
Variabili globali e locali: Classi di memorizzazione; Specifica dell’algoritmo in C: Strutture di Controllo; La
gestione dell’I/O in C++; File testo in C++.
9. ALGORITMI DI BASE IN C++:Inserimento in un vettore.; Eliminazione in un vettore;
Eliminazione di una colonna da una matrice; Eliminazione di una riga da una matrice; Ricerca incerta (o
sequenziale); Ricerca binaria; La ricerca del valore massimo in un vettore.; La posizione del valore minimo in
un vettore; Ordinamento di un vettore con i metodi selection sort, insertion sort e ”bubble sort”;
Esempi di programmi completi in C++: gestione di un elenco telefonico.
10. LA TRADUZIONE DEI PROGRAMMI: Il processo di traduzione; La compilazione;collegamento; Il
caricamento; Gli interpreti; La verifica della correttezza dei programmi; Gli ambienti integrati; L’ambiente
DEV-C++; Progettazione ed implementazione di librerie di programmi.
LIBRI CONSIGLIATI
Chianese, Moscato, Picariello - Alla scoperta dei fondamenti dell’informatica: un viaggio nel mondo
dei bit, Liguori editore
Burattini, Chianese, Moscato, Picariello, Sansone - Che C serve, Maggioli Editore