376/97 A.A. 1997/98 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 ai concetti introduttivi di algoritmo ed elementi di ingegneria del software. Si forniscono agli allievi le conoscenze fondamentali di un linguaggio di programmazione strutturato (Pascal) e dell'uso di un sistema di elaborazione (MS-Windows e DOS). Vengono trattati gli argomenti relativi alle nozioni fondamentali sull'architettura dei sistemi di elaborazione delle informazioni e sui sistemi operativi. Infine viene data una descrizione essenziale del Fortran77. PROGRAMMA Concetti di base Descrizione dei concetti fondamentali di algoritmo, di linguaggio e di sistema di elaborazione dell'informazione. Principi di programmazione Rappresentazione diagrammata degli algoritmi. Principi fondamentali della programmazione strutturata: sequenza, selezione, iterazione. Descrizione di un linguaggio di programmazione strutturato (Pascal). Tipi di dati semplici e strutturati: array, record, insiemi, puntatori, file. Strutture di dati: liste, pile, code, matrici sparse e loro rappresentazioni più comuni. Tecniche di progetto delle procedure, meccanismi di passaggio dei parametri, ricorsione. 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. Il concetto di complessità di un algoritmo. Descrizione essenziale del linguaggio Fortran77 e delle principali caratteristiche del Fortran90. Introduzione ai sistemi di elaborazione Rappresentazione interna dell'informazione: codifica binaria, decimale, esadecimale, conversioni di codifica; aritmetica intera e reale; codifica dei caratteri. Il modello di von Neumann. Descrizione dell'architettura di un calcolatore ed analisi del funzionamento dei suoi componenti fondamentali: memoria principale, processore, memoria di massa, periferiche. L'accesso alla memoria ed il ciclo di esecuzione. Pipeline. Architetture parallele SIMD e MIMD. Sistemi operativi Descrizione introduttiva di un sistema operativo: interrupt e gestione delle periferiche; multiprogrammazione; gestione della memoria: memoria a pagine, memoria virtuale; file system e gestione del disco. Esempi di algoritmi Sono presentati i principali algoritmi di ordinamento (a bolle, per fusione, veloce) e di gestione di archivi su file. ESERCITAZIONI Sono previste esercitazioni guidate per l’introduzione all’uso dei sistemi Windows e MS-DOS e dell’ambiente di programmazione Turbo-Pascal. Esempi di analisi di problemi e progettazione di programmi. Assistenza nel progetto e messa a punto di programmi sviluppati dagli allievi. TESTI CONSIGLIATI: M. Maiocchi, "Teoria ed Applicazioni delle Macchine Calcolatrici", Casa Editrice Ambrosiana, Milano. C. Batini e altri, "Fondamenti di Programmazione dei Calcolatori Elettronici", Franco Angeli. Ellis, "Programmazione Strutturata in Fortran77", Zanichelli.