Laboratorio di Programmazione

C.L. Matematica

 

 

Obiettivi Formativi Il corso intende introdurre alle metodologie ed agli strumenti hardware e software per la risoluzione di un problema matematico con il calcolatore.

 
Contenuti Il corso si articola in 5 ore settimanali di lezione per l'intero primo semestre (ottobre-gennaio). Delle 5 ore di lezione, 3 sono di lezioni frontali e 2 di attivita' di laboratorio.

 
Esame L'esame consiste in:

una prova di laboratorio in cui lo studente dovra' essere in grado di progettare un semplice algoritmo e di implementarlo su un calcolatore;

dalla prova di laboratorio si puo' essere esonerati seguendo in maniera assidua e con profitto  l'attivita' di laboratorio

una prova orale in cui lo studente dovra' mostrare di aver acquisito le capacita' di progettazione e di valutazione degli algoritmi, nonche' di conoscere l'influenza che l'ambiente di calcolo esercita sullo sviluppo stesso.

 

Date di esame
  •  

Le date riportate si riferiscono alle PROVE  ORALI. Per accedere alle sedute e' necessario prenotarsi presso la segretia didattica.

 

 

PROGRAMMA  
1) Introduzione al Calcolatore ed al suo uso.
Definizione e proprieta` di un algoritmo. Tipi di dati, variabili, istruzioni, costrutti di controllo. Il
linguaggio Pascal-like per la descrizione degli algoritmi. Tipi di dati strutturati. Metodologia di progettazione di un algoritmo per raffinamenti successivi. la progettazione modulare. Caratteristiche di un calcolatore. Architettura di tipo Von Neumann. Rappresentazione dei dati e delle istruzioni in un calcolatore. [1]

2) Strumenti software per il calcolo scientifico.
I sistemi operativi: funzioni e struttura. Il sistema operativo Unix: struttura e principali comandi per la gestione del file system [2]. Linguaggi di programmazione ad alto livello. Compilatori e Interpreti. Il linguaggio di programmazione Fortran 95: tipi di dati, espressioni aritmetiche, strutture di controllo, array e loro memorizzazione, subroutine. [3]

3) Approccio computazionale alla risoluzione di un problema.
Fasi di risoluzione di un problema: modelli, metodi numerici, algoritmi, software. Fonti di errore. Errore assoluto ed errore relativo. Sistemi aritmetici floating-point a precisione finita. Errore di round-off e sua propagazione. Massima accuratezza relativa e epsilon macchina. l'aritmetica IEEE. Criterio di arresto naturale per algoritmi iterativi. La stabilita' degli algoritmi. Complessita` computazionale di un algoritmo. [4]



ATTIVITA' DI LABORATORIO

1) Algoritmi fondamentali: somma e massimo di n numeri
2) Algoritmo di compattamento di un array
3) Algoritmi di ricerca, ordinamento e merging
4) Algoritmi di Base per l'Algebra Lineare numerica: prodotto tra matrice e vettore, prodotto tra matrici, trasposta di una matrice,
5) Calcolo dell'epsilon macchina e del minimo numero reale rappresentabile
6) case studies sui criteri di arresto e sulla stabilita' degli algoritmi

Gli elaborati di cui ai punti 3, 4,  5  e  6 vanno consegnati in sede di colloquio orale corredati da esempi di programma chiamante e almeno 3 test significativi (elaborati ai punti  3 e 4)



BIBLIOGRAFIA GENERALE

[1] A. Murli - Lezioni di Laboratorio di Programmazione e Calcolo - ed. Liguori, 1999.

[2] H. McGilton, R. Morgan - Il sistema operativo Unix System V - McGraw Hill, 1987. (Cap. 1, 2, 3, 7)

[3] M. Metcalf, J. Reid - Fortran 95 - Oxford science publ.

[4] A. Murli - Approccio Computazionale nella Risoluzione di un Problema: Alcune Sorgenti di Errore - Rapporto Tecnico del Centro di Ricerche sul Calcolo Parallelo e i Supercalcolatori, TR-96-18,
dicembre 1996. puoi trovarlo qui

[5] G.Giunta, G.Laccetti, A.Murli R.Rizzardi - Laboratorio di programmazione 1 - Liguori ed.