FONDAMENTI DI INFORMATICA A-L

Corsi di Laurea in Ingegneria

Informatica e dell’automazione, Elettronica, Telecomunicazioni, Biomedica

Anno Accademico 2004/2005

Prof. Primo Zingaretti


PROGRAMMA DEL CORSO

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.

 


TESTO DI RIFERIMENTO

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.