Programma del corso di Elementi di Informatica aa

Programma del corso di Elementi di Informatica
a.a. 2007/2008
docente: Alessandro CILARDO
Libro di testo: Fadini-Savy, "Fondamenti di Informatica I", Liguori Editore, I ed. Marzo 1997.
Argomenti del corso (ed in parentesi i riferimenti al libro di testo):
ƒ Introduzione. (Introduzione)
o L’informatica e i suoi fondamenti
ƒ I modelli fondamentali (Parte Prima : Fondamenti Teorici, Cap. I TUTTO tranne parr.
6, 7, 8 e 9)
o Informatica: approccio teorico e tecnico
o
Il concetto di elaborazione
o
Il concetto di algoritmo
o
Il modello di automa
o
Stati e registri: grandezze numeriche ed analogiche
o
Algoritmi Linguaggi e Programmi
o
Modello penna e carta
o
Il modello di Von Neumann
ƒ La macchina astratta generalizzata (Parte Prima : Fondamenti Teorici, Cap. II TUTTO
tranne par. 6)
o Valore, tipo e attributo di un’informazione
o
Informazione e dati. Il bit
o
Tipi semplici e strutturati
o
Le azioni elaborative della macchina di Von Neumann
o
Un esempio di elaborazione
o
Hardware e software. Macchina base e macchine virtuali
o
Memoria, processore e registro PI
o
Gli strati di un sistema di elaborazione
ƒ Struttura fondamentale degli elaboratori (Parte Terza : Fondamenti di Architettura,
Cap. I TUTTO)
o Gli elaboratori numerici
o
Schema di principio di un elaboratore
o
Organi di un calcolatore: unità di ingresso e uscita
o
Organi di un elaboratore: la memoria centrale
o
Memorie di massa
o
Unità logico-aritmetica
o
Il processore e l’unità centrale
o
Linguaggi macchina ed assemblativo
o
Le istruzioni del linguaggio macchina
o
Esempio: l’istruzione move.
ƒ I modelli dell’algebra di Boole (Parte Prima : Fondamenti Teorici, Cap. III TUTTO,
tranne paragrafo 6)
o Definizione di algebra di Boole.
o
Variabili e funzioni booleane.
o
Eguaglianze notevoli e Teorema di De Morgan
o
L’algebra degli insiemi
o
L’algebra della logica delle proposizioni
ƒ Introduzione alla programmazione ed ai linguaggi (Parte Seconda : Fondamenti di
Programmazione, Cap. I TUTTO)
ƒ
ƒ
ƒ
ƒ
o Elaborazione
o
Campi di impiego degli elaboratori
o
Un elenco di applicazioni
o
Linguaggi simbolici
o
Caratteristiche dei linguaggi più diffusi: C e C++
o
Hardware e software
o
Sistemi operativi
I Tipi Semplici (Parte Seconda : Fondamenti di Programmazione, Cap. II TUTTO)
o I tipi: introduzione
o
Variabili e costanti
o
I tipi nei linguaggi di programmazione
o
Definizioni e notazioni per le operazioni sui tipi
o
Tipo intero
o
Tipo reale
o
Tipo carattere
o
Tipo enumerativo
o
Tipo sottocampo
o
Tipo booleano
o
Relazioni e predicati
o
Funzioni per la trasformazione di tipo (leggere)
I Tipi Strutturati Fondamentali (Parte Seconda : Fondamenti di Programmazione, Cap.
III TUTTO tranne par. 8)
o I tipi strutturati
o
Gli array
o
Allocazione degli array
o
Gli array nel linguaggio C++
o
Il tipo record o struttura
o
Il tipo record in C
o
Dimensioni delle strutture dati in C++
o
Il tipo astratto stringa di caratteri
o
La stringa nei linguaggi di programmazione
o
Riepilogo
Le Istruzioni Semplici (Parte Seconda : Fondamenti di Programmazione, Cap. IV
TUTTO)
o Dati ed istruzioni
o
Istruzioni di ingresso
o
Istruzioni di uscita
o
Esempi di istruzioni di ingresso e uscita
o
Istruzioni di calcolo
o
Istruzioni di calcolo e assegnazione nel C++
o
Esempi di istruzioni di assegnazioni
o
Sottoprogrammi procedure e funzioni
o
I sottoprogrammi nel linguaggio C++
o
Istruzioni per il controllo di sequenza
o
Istruzioni di controllo non strutturate (leggere)
o
Riepilogo
Le Istruzioni Strutturate (Parte Seconda : Fondamenti di Programmazione, Cap. V
TUTTO)
o La programmazione strutturata
o
Il costrutto sequenza
o
Costrutti di selezione
o
Esempi di istruzione di selezione
o
Costrutti di iterazione
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
o
Esempi di strutture di iterazione
o
Equivalenza dei programmi
o
Altri costrutti per il controllo di sequenza
o
Modalità di scrittura
o
Riepilogo
Programmi con struttura di selezione (Parte Seconda : Fondamenti di Programmazione,
Cap. VI TUTTO)
o Caratteristiche de programmi
o
Uso di sottoprogrammi
o
Problemi ed algoritmi
o
Esempi di programmi semplici
o
Esempio di programmi con strutture di selezione
o
Esempi di sottoprogrammi
Programmi con cicli (Parte Seconda : Fondamenti di Programmazione, Cap. VII TUTTO
tranne parr. 5, 6, 7, 8, 9 e 10)
o Generalità
o
Schemi di programmi con cicli ripetitivi
o
Cicli ripetitivi: esempi introduttivi
o
Cicli ripetitivi: tabellazione di funzioni
Programmi con array (Parte Seconda : Fondamenti di Programmazione, Cap. VIII parr.
1, 2, 3, 4)
o Introduzione
o
Elaborazione di vettori
o
Elaborazione su vettori. Esempi
o
Elaborazione su matrici. Esempi
o
Ordinamento di vettori: algoritmi selection sort, bubble sort, insertion sort.
Programmi con files (Slides distribuite al corso)
o L’input-output su file
o
La libreria fstream.h
o
Le classi ifstream e ofstream
o
Esempi di semplici programmi C++ che utilizzano files
Struttura dei programmi (Parte Seconda : Fondamenti di Programmazione, Cap. XIII
TUTTO)
o I linguaggi di programmazione
o
Compilatori, interpreti e supporto al run time
o
Il ciclo di vita di un programma
o
Le unità strutturali di un programma
o
Portata, visibilità e tempo di legame
o
Ciclo di vita delle variabili
o
Struttura del programma
o
Struttura dei programmi C++
o
Preelaborazione del testo origine: il caso del C++
Sviluppo dei programmi (Parte Seconda : Fondamenti di Programmazione, Cap. XIV
TUTTO)
o Ambiente di sviluppo del software
o
Le fasi di sviluppo del programma
o
La documentazione dei programmi
o
Sviluppo dei programmi basato sulla documentazione
o
Uno schema di documentazione dei programmi
o
Errori di programmazione
o
Errori nei programmi
o
Tecniche per limitare gli errori
Rappresentazione e codifica dei dati (Parte Terza: Fondamenti di Architettura, Cap. III
TUTTO)
ƒ
o La funzione intero ed il resto in modulo
o
Il bit: tipo elementare e misura dell’informazione
o
La codifica
o
Rappresentazione in macchina dei dati
o
Il bit: tipo atomico assoluto. Il flip-flop
o
Codifica in bit diretta ed indiretta
o
Codici ridondanti. Il bit di parità
o
Il sistema di numerazione posizionale
o
La numerazione binaria. Il bit come cifra binaria
o
Le numerazioni ottale ed esadecimale
o
La numerazione decimale. Sistemi BCD
o
Conversione di base
o
Rappresentazione dei caratteri. Codice ASCII
Rappresentazione dei numeri ed elementi di aritmetica (Parte Terza: Fondamenti di
Architettura, Cap. IV parr. da 1 a 7, 10, 11)
o Rappresentazione dei numeri. Generalità
o
Rappresentazione dei numeri naturali
o
Aritmetica dei numeri naturali
o
Rappresentazione in segno e modulo
o
Classi dei resti modulo-M
o
Rappresentazione dei numeri negativi in complementi
o
Rappresentazione in complementi alla base
o
Rappresentazione dei frazionari
o
Virgola fissa e virgola mobile