FONDAMENTI DI INFORMATICA A-L
Corsi di
Laurea in Ingegneria
Informatica
e dell’automazione, Elettronica, Telecomunicazioni, Biomedica
Prof.
Primo Zingaretti
Introduzione al corso e concetti introduttivi.
L’informatica e i suoi campi di applicazione.
Hardware e architettura.
Sistemi di calcolo e principali componenti hardware;
architetture, la macchina di Von Neumann. Reti di calcolatori e internet.
Rappresentazione e codifica dell’informazione.
Insiemi discreti, caratteri, immagini e suoni, numeri
naturali, interi e reali.
Software ed elementi di programmazione.
Il software di base, il sistema operativo e le sue funzioni
principali, e i programmi applicativi.
Algoritmi, programmi e metodologie di progettazione. Strumenti
per lo sviluppo e la verifica di programmi.
Introduzione ai linguaggi di programmazione. Algebra di
Boole.
Il linguaggio C.
Struttura di un programma C, main, identificatori, commenti.
Espressioni: tipi di dato primitivi; costanti; espressioni e operatori: semplici, composti, aritmetici, relazionali, logici, condizionali e di
concatenamento; grammatica e alberi sintattici delle espressioni, priorità e
associatività degli operatori.
Variabili: dichiarazione
e definizioni; inizializzazione;
caratteristiche: scope, tipo, lifetime e valore; effetti
collaterali: assegnamento,
incremento e decremento.
Funzioni: il modello client-server;
dichiarazione e definizione, chiamata e ritorno; binding e environment, tecniche
di legame dei parametri; ricorsione e
iterazione;
il modello a run-time delle funzioni, record di attivazione.
Puntatori: estrazione di indirizzo e dereferenziamento; procedure e passaggio per
puntatore.
Istruzioni: programmazione strutturata, strutture di controllo a basso
livello e in C (blocco, selezione semplice e multipla, iterazione, alterazione
di flusso).
Tipi strutturati: array e aritmetica dei puntatori, strutture,
typedef, enumerazioni.
Progetti: ambienti
integrati di sviluppo; argomenti dalla linea di comando; librerie
di funzioni predefinite, file header;
direttive al preprocessore C; macro.
Input/Output: canali standard; I/O a caratteri, bufferizzato e
formattato; funzioni per la lettura, scrittura e posizionamento su file binari
e di testo.
Ancora sui puntatori: allocazione dinamica; puntatori a
strutture, a puntatori, a funzioni.
Algoritmi di ordinamento e ricerca.
Naive sort, bubble sort, insertion sort, quicksort, merge sort, ricerca
binaria.
Strutture dati classiche.
Definizione tipi di dato astratti (ADT) e loro rappresentazioni
concrete in C; implementazione delle operazioni primitive di liste, stack (pile),
code e alberi binari e di ricerca.
1.
A. Bellini, A. Guidi,
Linguaggio C - Guida alla programmazione – seconda edizione, McGraw-Hill, 2003.
2.
Presso il servizio di
copisteria sono disponibili tutte le slide presentate a lezione.
Altri
testi:
K.
Pohl, C - Didattica e Programmazione, Pearson, 2004.
B.W.Kernigham,
D.M.Ritchie, Linguaggio C- II edizione, Pearson, 2004.
B.Stroustrup,
C++ (terza edizione), Addison-Wesley, 2000.
C.Batini,
L.C.Aiello, M.Lenzerini, A.Marchetti Spaccamela, A.Miola, Fondamenti di programmazione
dei calcolatori elettronici, Franco Angeli, 1993.