Elementi di Informatica e Laboratorio di Informatica (C.d.L. Triennale in Biotecnologie)
(1^ ciclo, 1^ anno)
Esame scritto e orale integrato con Istituzioni di Matematica
Crediti4
Docente Prof. Giulio Casciola
Scopo
Dare gli elementi di base della programmazione strutturata
e del calcolo numerico.
Contenuto
Il sistema di calcolo dall'hardware al software;
progettazione degli algoritmi con elementi di linguaggio Matlab;
elementi di calcolo numerico quali: numeri finiti, aritmetica
floating point, condizionamento di un problema, stabilità di un
algoritmo, interpolazione polinomiale, retta di regressione
lineare, equazioni non lineari, sistemi di equazioni lineari, integrazione
numerica.
Il corso prevede un'attività di laboratorio che ne costituisce
parte integrante.
Testi Consigliati
- S.Ceri, D.Mandrioli, L.Sbattella, Informatica Arte e Mestiere, McGraw-Hill.
- F.Mazzia, D.Trigiante, Laboratorio di programmazione
e calcolo, Pitagora Editrice Bologna.
- R.Bevilacqua, D.Bini, M.Capovani, O.Menchi, Introduzione alla
matematica computazionale, Zanichelli.
programma completo A.A.2001/2002
Argomenti trattati a Lezione
- Mar.09/10/01, ore 09-11, Lezione 1: Introduzione al corso, obiettivi del
corso, informazioni sull'esame, ecc., cenni su Internet
e accesso ai siti di maggior interesse.
- Lun.15/10/01, ore 11-13: Lezione 2: Schema del corso, algoritmi per
calcolatore, architettura di calcolatore secondo Von Neumann, operazioni
elementari per un calcolatore: memorizzazione di un'informazione, bit, byte,
codici ASCII,
Kb, Mb, Gb, registro degli indirizzi, nomi logici per aree di memoria,
linguaggio dei diagrammi di flusso, istruzione di assegnazione, esempi di
istruzione per memorizzare costanti numeriche, per duplicare informazioni,
per memorizzare informazioni alfanumeriche.
- Mar.16/10/01, ore 09-11, Lezione 3: operazioni elementari per un
calcolatore: operazioni ed espressioni aritmetiche, sequenza, scelta,
operazioni relazionali, operazioni logiche, espressioni miste, lettura e
stampa, inizio e fine. Esempio di problema per cui si e` progettato un
algoritmo nel linguaggio dei diagrammi di flusso utilizzando le operazioni
elementari introdotte, proprieta' degli algoritmi: generale, finito,
non ambiguo; strutture fondamentali: sequenza, alternativa e ciclo;
Riprogettazione dell'algoritmo precedentemente realizzato mediante l'utilizzo
delle strutture fondamentali; simulazione di esecuzione dell'algoritmor;
assegnatii alcuni esercizi.
- Lun.22/10/01, ore 11-13: Lezione 4: Fasi di risoluzione di un problema;
risolto uno degli esercizi assegnati nella lezione precedente (quoziente intero
della divisione fra due interi positivi); simulazione di esecuzione del
diagramma di flusso realizzato; problema del piu' grande fra tre numeri;
soluzione tramite confronto a coppie, due differenti algoritmi che implementano
tale metodo; simulazione dell'esecuzione dei due algoritmi; programmazione
top-down o tecnica delle scomposizione successive al fine della modularita`
degli algoritmi; problema del MCD di due numeri; metodo di Euclide; progettazione
dell'algoritmo mediante la tecnica delle scomposizioni successive, realizzazione
diagramma di flusso con esigenza di richiamare un diagramma di flusso
precedentemente realizzato (necessita' della procedura); simulazione dell'algoritmo
realizzato.
- Mar.23/10/01, ore 09-11, Lezione 5: Procedura, che cos'e' e a cosa serve;
procedura nel lingiaggio dei diagrammi di flusso e chiamata a procedura; esempio
con spiegazione del funzionamento del passaggio dei parametri fra chiamante e
procedura; passaggio delle informazioni per valore e per indirizzo; vari
esempi; la procedura nei principali linguaggi procedurali: Pascal, Fortran,
C e Matlab. Scritta una procedura per il quoziente intero della divisione fra
due numeri positivi, riscritto il diagramma di flusso main per il MCD fra due
numeri che richiama la procedura precedente; simulazione dell'esecuzione.
- Lun.29/10/01, ore 11-13: Lezione 6: Elementi di Algebra Lineare: matrici,
tipi di matrici, vettori, matrice trasposta; strutture dati tabella e lista;
problema di determinare il piu' piccolo elemento di una lista e la sua posizione;
progettato l'algoritmo con procedura e diagramma main, introdotta l'allocazione
e la sintassi con cui usare una lista o tabella; passaggio parametri di liste
o tabelle in una procedura, esecuzione dell'algoritmo progettato. Operazioni
di addizione, moltiplicazione per uno scalare e moltiplicazione fra matrici;
operazioni indotte da queste su vettori, prodotto scalare; assegnati alcuni
esercizi.
- Mar.30/10/01, ore 09-11, Lezione 7: allocazione statica e dinamica della
memoria; esempio di diagramma main con procedura dove si applica allocazione
dinamica di una lista; linguaggio macchina, compilatori e interpreti;
esempio di funzionamento delle fasi di compilazione su un esempio e cenno
alla possibilita` della ricorsivita`; esempio del fattoriale di un numero
come procedura ricorsiva; assegnato il compito di simularne l'esecuzione.
- Lun.05/11/01, ore 11-13: Lezione 8: ordinamento di una lista numerica:
algoritmo di ordinamento a bolla, diagramma di flusso, simulazione, complessita`;
ordinamento di una lista (tabella) di cognomi: utilizzando sempre l'algoritmo di
ordinamento a bolla si sono descritte le modifiche da apportare per generalizzare
quanto fatto per una lista di numeri ad una lista di cognomi; assegnato come
compito di realizzare il diagramma di flusso relativo; matrive inversa: definizione,
osservazioni, casi particolari di matrici, problema di conoscere quando esiste
l'inversa di una matrice e di come calcolarla, determinante di una matrice secondo
Laplace, proprieta`, esempio numerico,
- Mar.06/11/01, ore 09-11, Lezione 9: complessita` del calcolo del determinante:
esempio su una matrice 20x20; regola di Sarrus per matrici 2x2 e 3x3;
calcolo della matrice inversa e corrispondenza
fra determinante diverso da zero ed esistenza della matrice inversa e viceversa,
esempio di calcolo di una matrice inversa; sistemi lineari, definizione di rango,
teorema di Rouche`-Capelli, caso di sistema lineare quadrato, condizioni necessarie
e sufficienti in quest'ultimo caso per avere una ed una sola soluzione; soluzione
di un sistema lineare quadrato mediante matrice inversa, cenno alla regola di Cramer,
impossibilita` di utilizzare questo algoritmo computazionalmente se non per
matrici piccole; metodo di fattorizzazione LU di una matrice dovuta a Gauss e
soluzione di due sistemi lineari piu` semplici; complessita`, applicazione
per il calcolo del determinate e calcolo della matrice inversa.
- Lun.12/11/01, ore 11-13: Lezione 10: organizzazione Laboratorio; hardware e software,
dispositivi esterni come hard-disk e unita` dischetti, Sistemi Operativi (DOS, Windows,
Linux, Mac), file, unita` logiche,
directory, percorsi, linguaggio di comandi di S.O., alcuni comandi DOS, alcuni comandi
DOS da ambiente Matlab.
- Mar.13/11/01, ore 14-16 turno A, ore 16-18 turno B: primo approccio con un PC, accensione,
S.O.Windows, finestre, comandi grafici, icreazione cartella, copia file, cancella file,
modifica file (programma medit), stampa di un file, copia su dischetto, applicazioni,
un breve gito in Internet: alcuni siti utili. Stampa del foglio esercitazione I Settimana,
procedura di spegnimento del PC.
- Gio.15/11/01, ore 14-16 turno B, ore 16-18 turno A: Esercitazione secondo il foglio
I Settimana assegnato, stampa e consegna relazione, stampa foglio esercitazione II Settimana.
- Lun.19/11/01, ore 11-13: Lezione 11: Ambiente Matlab, istruzioni eseguibili al prompt
e scrittura di un programma in linguaggio Matlab. Esempio di programma in linguaggio
Matlab, sintassi delle strutture fondamentali alternativa (if..else..end) e ciclo
(while..end e for.. end).
- Mar.20/11/01, ore 14-16 turno A, ore 16-18 turno B: Esercitazione secondo il foglio
II Settimana assegnato.
- Gio.22/11/01, ore 14-16 turno B, ore 16-18 turno A: Proseguimento esercitazione secondo
il foglio II Settimana assegnato, stampa foglio esercitazione III Settimana.
- Lun.26/11/01, ore 11-13: Lezione 12: istruzione switch e function in
Matlab, esempio di programma per grafico di funzioni (uso di plot),
permutazioni di n elementi, permutazioni pari e dispari, teorema di solubilita`
del gioco del quindici oggetto delle esercitazioni di laboratorio;
varianti del gioco del quindici con commenti, esame del listato del gioco del
quindici con ambito di intervento per le modifiche da apportare.
- Mar.27/11/01, ore 14-16 turno A, ore 16-18 turno B: Esercitazione secondo
il foglio III Settimana assegnato.
- Gio.29/11/01, ore 14-16 turno B, ore 16-18 turno A: Proseguimento esercitazione
secondo il foglio III Settimana assegnato, stampa foglio esercitazione IV Settimana.
- Lun.03/12/01, ore 11-13: Lezione 13: ripreso il problema della soluzione di un
sistema lineare mediante fattorizzazione LU; condizioni per la fattorizzazione LU,
merodo di Gauss per LU, matrici elemntari di Gauss, esempio, complessita`
computazione; esistenza della fattorizzazione per una matrice non singolare
con righe opportunamente permutate. Cenno alla elaborazione con numeri floating
point e approssimazione delle soluzioni.
- Mar.04/12/01, ore 14-16 turno A, ore 16-18 turno B: Esercitazione secondo
il foglio IV Settimana assegnato.
- Gio.06/11/01, ore 14-16 turno B, ore 16-18 turno A: Proseguimento esercitazione
secondo il foglio IV Settimana assegnato.
- Lun.10/12/01, ore 11-13: Lezione 14: Presentazione foglio esercizi della V settiyymana
di Laboratorio, visionati alcuni esercitazioni date durante le settimane precedenti.
- Mar.11/12/01, ore 14-16 turno A, ore 16-18 turno B: Esercitazione secondo
il foglio V Settimana assegnato.
- Gio.13/12/01, ore 14-16 turno B, ore 16-18 turno A: Proseguimento esercitazione
secondo il foglio V Settimana assegnato.
- Lun.17/12/01, ore 15-16 prova scritta per il Turno A; ore 16-17 prova scritta
per il turno B, Aula 14.
- Gio.20/12/01, ore 9.00: primo appello Corso Integrato Matematica, Aula 14.
Torna alla
home page di Giulio Casciola