Programma del corso di Fondamenti di Informatica Anno

Programma del corso di Fondamenti di Informatica
Anno Accademico 2000/2001
1. Informatica generale
- Cenni introduttivi. Automazione e informazione: concetti generali e cenni storici. L'informatica
come strumento per la soluzione di problemi. Il concetto di algoritmo. Rappresentazione ed
elaborazione delle informazioni.
- Circuiti logici programmabili. Reti di interruttori ed espressioni logiche. Circuiti programmabili.
Dati e istruzioni. L'unità aritmetico-logica (ALU) di un personal computer.
- Rappresentazione delle informazioni. Numeri interi: codifica binaria e conversione di base. Numeri
razionali: rappresentazione in virgola mobile e suoi limiti. Caratteri: codice ASCII. Immagini:
digitalizzazione, pixel, risoluzione, codifica. Segnali digitali e analogici. Discretizzazione:
campionamento e quantizzazione.
- Sistemi per l’elaborazione delle informazioni. Architettura di un sistema informatico: hardware e
software. Architettura dell'hardware: microprocessore, memoria principale, memoria di massa,
periferiche, bus, dispositivi di interfaccia (input/output). Architettura del software: sistema operativo,
programmi di utilità, applicazioni. Prestazioni di un calcolatore elettronico. Processi: programmi in
esecuzione.
- Gestione della memoria. Memoria principale: il concetto di cache, struttura gerarchica della
memoria, il concetto di memoria virtuale. Memoria di massa: l'astrazione di file system. Esplorazione e
gestione del file system in ambiente MS Windows 95.
- Applicazioni. Editor, word processor, foglio elettronico, database. Uso elementare di comuni
programmi applicativi: MS WordPad per la creazione di file di testo, MS Word per l’elaborazione di
testi formattati (esempio applicativo ed esercitazione libera), MS Excel per la rappresentazione e
l’elaborazione di dati (esempio applicativo ed esercitazione libera).
- Banche dati. Definizione generale. Database relazionali: tabelle, record, campi. Chiavi e indici.
Forme di indicizzazione ed efficienza dei database: tabelle non ordinate, ordinamento fisico,
ordinamento logico a lista, ordinamento logico ad albero binario. Inserimento, ricerca e aggiornamento
dei dati. Ridondanza e coerenza. Progetto di database: forme normali e normalizzazione di I, II e III
tipo (esercitazione libera).
- Reti di calcolatori. Descrizione strutturale (topologica) e funzionale. Reti commutate e dedicate.
Commutazione di circuito e di pacchetto. Velocità di trasmissione. Protocolli di comunicazione: livelli
ISO-OSI. Gerarchia di reti. Reti di reti. Reti locali e globali.
- Internet. Cenni storici. Domini e indirizzi. Connessione a Internet attravesro MoDem. Servizi
Internet e loro modalità di funzionamento: trasferimento di file (esempio pratico), telnet (esempio
1
pratico), posta elettronica, world-wide web. Client e server. Caratteristiche del World Wide Web:
ipertesto multimediale, aperto e distribuito. Cenni di HTML.
- Sicurezza in Internet. Riservatezza della comunicazione, autenticità dei messaggi, identità degli
interlocutori. Crittografia a chiave pubblica. Certificati e firme digitali. Commercio elettronico:
transazioni elettroniche con carta di credito, denaro elettronico.
2. Elementi di programmazione in C.
- Introduzione. Considerazioni economiche. Algoritmi: pseudolinguaggi e diagrammi di flusso.
Dominio di applicazione di un algoritmo. Linguaggi di programmazione formali. Compilatori e
interpreti. Programmi. Variabili, costanti, espressioni. Valutazione di espressioni. Esecuzione di un
programma. Complessità, efficienza ed equivalenza.
- Linguaggio minimo. Dati e operatori. Istruzioni di input e output. Istruzioni di assegnamento.
Istruzioni condizionali. Cicli. Istruzioni composte. Macroistruzioni.
- Programmazione strutturata. Individuazione di sotto-problemi comuni. Procedure e funzioni:
dichiarazione, definizione e invocazione. Parametri formali e valori attuali. Passaggio di parametri
d’ingresso e valori di ritorno. Stili di programmazione: top-down, bottom-up. Librerie di funzioni.
Estensioni del linguaggio.
- Tipi di variabili e puntatori. Allocazione di memoria. Tipi di variabili e uso della memoria.
Puntatori. Uso dei puntatori nel passaggio di parametri a funzioni e procedure.
- Introduzione al linguaggio C. Ciclo di vita di un programma: progetto, editing, compilazione,
linking, esecuzione, debugging, manutenzione. Codice sorgente, file oggetto, programma eseguibile.
Struttura di un programma C. Programma principale (main), funzioni, librerie.
- Elementi del linguaggio. Dichiarazione di variabili: tipi. Librerie standard. Funzioni printf() e
scanf(). Construtti if(), for() e while(). Uso di puntatori in C: operatori unari & e *.
Vettori mono e multi-dimensionali: dichiarazione e uso.
Testi consigliati:
- Marco Boni, Informatica, Apogeo, Milano, 1996
- Dispense distribuite dal docente
Modalità d’esame
La valutazione del livello d’apprendimento è basata sulle esercitazioni individuali svolte, sull’esito di
una prova scritta e sull’esito di un esame orale. Le esercitazioni, a tema libero, prevedono l’uso di
comuni strumenti software di produttività (quali MS Word e MS Excel) disponibili sui computer del
laboratorio.
2