Programma

 

 

 

Home
'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:  

  • B. Fadini, C. Savy:  Fondamenti di Informatica I, Liguori Editore

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.