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.
Presso
il servizio di copisteria sono disponibili tutte le slide presentate a lezione.
2.
E.
Vicario, Fondamenti di programmazione, Società Editrice Esculapio, 2004.
3.
A.
Bellini, A. Guidi, Linguaggio C - Guida alla programmazione – seconda
edizione, McGraw-Hill, 2003.
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.