376/98
A.A. 1998/99
UNIVERSITA’ DEGLI STUDI DI TRIESTE
_______________________________________________________________________________
CORSI DI LAUREA
ING. CIVILE, EDILE, MECCANICA,
NAVALE, AMBIENTE E TERRITORIO
PROGRAMMA DEL CORSO DI
FONDAMENTI DI INFORMATICA
DOCENTE
Claudio CHIARUTTINI
FINALITÀ: Il corso ha lo scopo di consentire all'allievo di affrontare la soluzione algoritmica di
problemi ingegneristici mediante l’uso di strumenti di programmazione strutturata. A tale scopo il
corso copre argomenti relativi al concetto intuitivo di algoritmo ed ai principi di progettazione degli
algoritmi. Si forniscono agli allievi le conoscenze fondamentali di un linguaggio di
programmazione strutturato (Fortran 90) e dell'uso di un sistema di elaborazione, con riferimento al
sistema operativo Windows. Il corso mette in particolare rilievo l’impiego delle nozioni trattate al
fine di una ordinata progettazione degli algoritmi.
PROGRAMMA:
Teoria degli algoritmi: Concetti intuitivi di algoritmo, esecutore, linguaggio di programmazione,
programma. Complessità di un algoritmo.
Programmazione: Rappresentazione diagrammata degli algoritmi. Principi fondamentali della
programmazione strutturata: le strutture di sequenza, selezione, iterazione e le regole di
composizione. Descrizione di un linguaggio di programmazione strutturato (Fortran 90). Tipi di dati
semplici e strutturati: array, record (o tipi derivati), file, puntatori. Strutture astratte di dati: liste,
pile, code, matrici e loro rappresentazioni più comuni. Sottoprogrammi: meccanismi di passaggio
dei parametri, ricorsione, variabili locali e globali. Metodologia di progettazione top-down.
Preparazione ed esecuzione dei programmi: editor, interpreti, compilatori, linker, loader. Aspetti
pratici del problema della correttezza dei programmi e metodi di verifica empirica. I principali
algoritmi di ordinamento (per selezione, a bolle, per fusione, veloce) e la loro complessità.
I sistemi di elaborazione: Rappresentazioni posizionali dei numeri naturali (binaria, decimale,
esadecimale), conversione di base; rappresentazioni binarie dei numeri reali e dei caratteri.
Aritmetica intera in complemento a due. Descrizione dell'architettura di un calcolatore dal punto di
vista del modello di von Neumann. Analisi del funzionamento dei suoi componenti fondamentali:
processore, gerarchia di memorie (di massa, principale, cache), bus, periferiche. Modalità di accesso
alla memoria; ciclo del processore. Cenni sulla pipeline aritmetica e sulle architetture parallele con
riferimento alla tassonomia di Flynn (SISD, SIMD, MIMD).
Sistemi operativi: Descrizione introduttiva di un sistema operativo: gestione del processore,
allocazione della memoria, file system, interrupt e gestione delle periferiche, multiprogrammazione,
memoria virtuale. Questi argomenti sono illustrati per lo più con riferimento al sistema Windows.
Esercitazioni: Sono previste esercitazioni guidate per l’introduzione all’uso dei sistemi Windows e
DOS, nonché di alcuni compilatori Fortran 90; esempi di analisi di problemi e progettazione di
programmi; assistenza nella progettazione e messa a punto di programmi sviluppati dagli allievi.
Testi consigliati:
C. Batini e altri, Fondamenti di Programmazione dei Calcolatori Elettronici, Franco Angeli.
J.S. Morgan e J.L. Schonfelder, Programming in Fortran 90, Alfred Waller.
L. Goldschlager e A. Lister, Introduzione all’informatica: algoritmi, strutture, sistemi, SEI.