'a.a. 2004/2005
PARTE
TEORICA
I. Fondamenti teorici
I
modelli fondamentali. I
concetti di informazione, dato, codifica, elaborazione, algoritmo. Il modello di
automa a stati finiti. Elaboratori numerici ed analogici. Il bit. Misura
dell’informazione. Le macchine di Turing. Calcolabilità, tesi di Church,
problema dell’arresto. La
Macchina Astratta Generalizzata. Hardware
e software.
Il
modello di Von Neumann. Processore, memoria centrale e di massa, registri,
unità di I/O, ALU. Algoritmo del processore.
II. Fondamenti di architettura
Rappresentazione
e codifica dei dati. La funzione intero ed il resto in modulo. Il bit: tipo
elementare e misura dell’informazione. Codifica a
lunghezza fissa e variabile. Rappresentazione in macchina dei dati:
registri. Codifica diretta e indiretta. Codici ridondanti. Il sistema di
numerazione posizionale. Sistemi di numerazione binaria, ottale, esadecimale,
decimale. Codici BCD. Conversione di
base. Rappresentazione dei caratteri. Codice ASCII.
Rappresentazione
dei numeri. Rappresentazione ed aritmetica dei numeri naturali.
Rappresentazione in segno e modulo. Rappresentazione
in complementi (cenni). Rappresentazione di
numeri reali e frazionari. Virgola fissa. Virgola mobile e lo standard IEEE; singola e doppia precisione.
Impianti
informatici e reti telematiche. Reti locali e
geografiche. La rete Internet. I servizi di rete (cenni).
III. Fondamenti di programmazione
Introduzione
alla programmazione ed ai linguaggi. Elaborazione. Campi di impiego degli
elaboratori. Linguaggi simbolici. Hardware e software. Sistemi operativi.
I
tipi semplici. I tipi: introduzione. Variabili e costanti. I tipi nei
linguaggi di programmazione. Definizioni e notazioni per le operazioni sui tipi.
Tipo intero. Tipo reale. Tipo carattere.
I
tipi strutturati fondamentali. I tipi strutturati. Gli array. Allocazione
degli array. Gli array nel linguaggio C++. Il tipo record. Il tipo record in C++.
Dimensioni delle strutture dati in C++. Il tipo file. Il tipo astratto stringa di caratteri. La stringa nei
linguaggi di programmazione.
Le
istruzioni semplici. Dati ed istruzioni. Istruzioni di ingresso e di uscita.
Istruzioni di calcolo. Istruzioni di calcolo e assegnazione nel C++. Sottoprogrammi, procedure e
funzioni. I sottoprogrammi nel linguaggio C++. Meccanismi di scambio dei
parametri. Istruzioni
per il controllo di sequenza.
Le
istruzioni strutturate. La programmazione strutturata. Il costrutto
sequenza. Costrutti di selezione. Costrutti di iterazione.
Struttura
dei programmi. Ciclo di vita di un
programma. Ciclo di vita, regole di visibilità e durata delle variabili.
III. Esempi
di programmi.
Problemi
di ricerca e ordinamento. Ordinamento e ricerca in un vettore. Lettura dei
parametri di linea. Operazioni sui file. Utilizzo dei sottoprogrammi.
PARTE ESERCITATIVA
Esercitazioni
sullo sviluppo di programmi in linguaggio C++ vengono svolte in aula durante il
corso. Una esercitazione guidata sull’uso di un ambiente di sviluppo in
linguaggio C++ viene svolta in aula e/o presso il laboratorio durante il corso.
MATERIALE DIDATTICO
LIBRI DI TESTO
Testo
adottato:
Testi
consigliati:
-
Brian
Kernighan, Dennis Ritchie: Linguaggio C., Jackson,
-
H.
Schildt: Guida al C++, Mc Graw-Hill
-
Deitel
& Deitel: The complete C++ training course, Prentice Hall
-
Bruce
Eckel: Thinking in C++ - 2nd edition, Prentice Hall
-
Setola,
Vasca: Guida Operativa a Matlab e Simulink, Liguori Editore
DISPENSE:
Trasparenze
dalle lezioni, disponibili sul sito web del corso.
Software didattici
disponibili sul sito web del corso.
|