![Page 1: Informatica A.A. 2009/2010 Parte 1 Introduzione al corso Corso A: Prof. Stefano Berardi stefano Corso B: Prof. Ugo de’ Liguoro](https://reader035.vdocuments.pub/reader035/viewer/2022081400/5542eb6a497959361e8d69a2/html5/thumbnails/1.jpg)
Informatica A.A. 2009/2010
Parte 1Introduzione al corso
Corso A: Prof. Stefano Berardi http://www.di.unito.it/~stefano Corso B: Prof. Ugo de’ Liguoro http://www.di.unito.it/~deligu
![Page 2: Informatica A.A. 2009/2010 Parte 1 Introduzione al corso Corso A: Prof. Stefano Berardi stefano Corso B: Prof. Ugo de’ Liguoro](https://reader035.vdocuments.pub/reader035/viewer/2022081400/5542eb6a497959361e8d69a2/html5/thumbnails/2.jpg)
1-Introduzione
Una definizione ricorsiva:“La curva di Peano”
![Page 3: Informatica A.A. 2009/2010 Parte 1 Introduzione al corso Corso A: Prof. Stefano Berardi stefano Corso B: Prof. Ugo de’ Liguoro](https://reader035.vdocuments.pub/reader035/viewer/2022081400/5542eb6a497959361e8d69a2/html5/thumbnails/3.jpg)
Indice Parte 1: Introduzione al corso
1. Matematica e Calcolo: perchè studiare la programmazione?
2. Programmazione e nuovi argomenti della Matematica.
3. Problemi, algoritmi e programmi.4. Un cenno sul programma del
corso.5. Struttura del corso: dettagli.
1-Introduzione
![Page 4: Informatica A.A. 2009/2010 Parte 1 Introduzione al corso Corso A: Prof. Stefano Berardi stefano Corso B: Prof. Ugo de’ Liguoro](https://reader035.vdocuments.pub/reader035/viewer/2022081400/5542eb6a497959361e8d69a2/html5/thumbnails/4.jpg)
1. Matematica e Calcolo
• E’ vero, la Matematica non è solo calcolo …• … ma il calcolo serve al matematico, e non
solo al matematico applicato.
“Il matematico, come il pittore ed il poeta è un creatore di forme … Certi rami della
matematica applicata sono di una bruttezza ripugnante, e di
una noia intollerabile.”Godfrey H. Hardy,
matematico
1-Introduzione
![Page 5: Informatica A.A. 2009/2010 Parte 1 Introduzione al corso Corso A: Prof. Stefano Berardi stefano Corso B: Prof. Ugo de’ Liguoro](https://reader035.vdocuments.pub/reader035/viewer/2022081400/5542eb6a497959361e8d69a2/html5/thumbnails/5.jpg)
Di cosa tratta questo corso
• Il corso (nonostante il suo nome …) tratta solo marginalmente di Informatica, ossia della scienza dei calcolatori, e verte invece sulla Programmazione, ossia sulle tecniche per tradurre un algoritmo o un’idea in un programma per calcolatoriMa se voglio diventare un
matematico, a che mi serve saper
programmare? 1-Introduzione
![Page 6: Informatica A.A. 2009/2010 Parte 1 Introduzione al corso Corso A: Prof. Stefano Berardi stefano Corso B: Prof. Ugo de’ Liguoro](https://reader035.vdocuments.pub/reader035/viewer/2022081400/5542eb6a497959361e8d69a2/html5/thumbnails/6.jpg)
La Programmazione serve per
fare i calcoli• L’Analisi, la Geometria e molti campi della Matematica richiedono calcoli lunghi e complessi, che è meglio delegare alle macchine.• Come esempio, in questo corso vedremo un programma che risolve i sistemi di equazioni di 1o grado con il metodo Gauss-Jordan.
1-Introduzione
![Page 7: Informatica A.A. 2009/2010 Parte 1 Introduzione al corso Corso A: Prof. Stefano Berardi stefano Corso B: Prof. Ugo de’ Liguoro](https://reader035.vdocuments.pub/reader035/viewer/2022081400/5542eb6a497959361e8d69a2/html5/thumbnails/7.jpg)
La Programmazione serve per
la grafica•Attraverso la programmazione, è possibile dare rappresentazioni grafiche di concetti geometrici che altrimenti sarebbero molto difficili da assimilare.
Tuttavia esistono dei pacchetti già pronti, dotati
di programmi per tutto quanto mi serve
1-Introduzione
![Page 8: Informatica A.A. 2009/2010 Parte 1 Introduzione al corso Corso A: Prof. Stefano Berardi stefano Corso B: Prof. Ugo de’ Liguoro](https://reader035.vdocuments.pub/reader035/viewer/2022081400/5542eb6a497959361e8d69a2/html5/thumbnails/8.jpg)
Anche i software gia’ pronti come i fogli elettronici …
Esempio di interpolazione: per calcolare i valori di una tabella …
1-Introduzione
![Page 9: Informatica A.A. 2009/2010 Parte 1 Introduzione al corso Corso A: Prof. Stefano Berardi stefano Corso B: Prof. Ugo de’ Liguoro](https://reader035.vdocuments.pub/reader035/viewer/2022081400/5542eb6a497959361e8d69a2/html5/thumbnails/9.jpg)
… richiedono da noi un po’ di programmazione .
Esempio di interpolazione: per calcolare i valori di una tabella si usa una “Macro”, ovvero un semplice programma.1-Introduzione
![Page 10: Informatica A.A. 2009/2010 Parte 1 Introduzione al corso Corso A: Prof. Stefano Berardi stefano Corso B: Prof. Ugo de’ Liguoro](https://reader035.vdocuments.pub/reader035/viewer/2022081400/5542eb6a497959361e8d69a2/html5/thumbnails/10.jpg)
Ecco un esempio di una Macro in Excel
Questo e’ un esempio di macro Excel: un programma Visual Basic, che deve essere scritto (o piu’ spesso, scaricato e poi modificato) da noi.
1-Introduzione
![Page 11: Informatica A.A. 2009/2010 Parte 1 Introduzione al corso Corso A: Prof. Stefano Berardi stefano Corso B: Prof. Ugo de’ Liguoro](https://reader035.vdocuments.pub/reader035/viewer/2022081400/5542eb6a497959361e8d69a2/html5/thumbnails/11.jpg)
Altri esempi di programmi di calcolo
Anche i programmi di calcolo…
… come Matlab e Mathematica hanno propri linguaggi di programmazione
1-Introduzione
![Page 12: Informatica A.A. 2009/2010 Parte 1 Introduzione al corso Corso A: Prof. Stefano Berardi stefano Corso B: Prof. Ugo de’ Liguoro](https://reader035.vdocuments.pub/reader035/viewer/2022081400/5542eb6a497959361e8d69a2/html5/thumbnails/12.jpg)
2. Programmazione e nuovi argomenti della
MatematicaTecniche studiate in programmazione, come le definizioni per ricorsione, sono state usate anche per definire figure di nuovo tipo, e hanno avuto un ruolo nell’evoluzione dei concetti di area (la curva di Peano) e di derivata (la curva di Koch).
1-Introduzionela curva di Peano
la curva di Koch
![Page 13: Informatica A.A. 2009/2010 Parte 1 Introduzione al corso Corso A: Prof. Stefano Berardi stefano Corso B: Prof. Ugo de’ Liguoro](https://reader035.vdocuments.pub/reader035/viewer/2022081400/5542eb6a497959361e8d69a2/html5/thumbnails/13.jpg)
Programmazione e nuovi argomenti della
Matematica• Ci sono poi campi della matematica che si sono sviluppati solo da quando i computers ci hanno consentito di rappresentarli.• Per esempio, la Teoria dei Frattali si e’ sviluppata solo da quando si sono scritti programmi in grado di disegnare queste figure.
Il frattale di Maldenbrot
1-Introduzione
![Page 14: Informatica A.A. 2009/2010 Parte 1 Introduzione al corso Corso A: Prof. Stefano Berardi stefano Corso B: Prof. Ugo de’ Liguoro](https://reader035.vdocuments.pub/reader035/viewer/2022081400/5542eb6a497959361e8d69a2/html5/thumbnails/14.jpg)
Programmazione e nuovi argomenti della
MatematicaGli Automi Cellulari sono un modello della capacita’ di auto-organizzazione della vita. Lo studio degli automi cellulari non sarebbe concepibile senza scrivere dei programmi capaci di simularne l’evoluzione
A lato, una tappa dell’evoluzione di un “Cyclic Cellular Automaton” definito da Griffeath David
1-Introduzione
![Page 15: Informatica A.A. 2009/2010 Parte 1 Introduzione al corso Corso A: Prof. Stefano Berardi stefano Corso B: Prof. Ugo de’ Liguoro](https://reader035.vdocuments.pub/reader035/viewer/2022081400/5542eb6a497959361e8d69a2/html5/thumbnails/15.jpg)
Programmi per formulare e refutare congetture
• Un programma può servire per formulare una congettura (di solito, non per trovare la prova), o al contrario per refutare una congettura (con certezza).• Es. con quale probabilità due interi sono primi tra loro? Una prova al calcolatore su 100 milioni di coppie interi direbbe: 60,8% circa. Questa è la nostra prima congettura.• Se studiamo il problema, possiamo poi dimostrare che la probabilita’ esatta e’
6/2 = 0.60792710 …
1-Introduzione
![Page 16: Informatica A.A. 2009/2010 Parte 1 Introduzione al corso Corso A: Prof. Stefano Berardi stefano Corso B: Prof. Ugo de’ Liguoro](https://reader035.vdocuments.pub/reader035/viewer/2022081400/5542eb6a497959361e8d69a2/html5/thumbnails/16.jpg)
Esistono dimostrazioni con uso essenziale del
computer• Per dimostrare che ogni cartina geografica può essere colorata con 4 colori in modo che regioni confinanti per più di un punto abbiano colori diversi, ci si riduce al problema della colorabilità con 4 colori di 633 cartine (Appel e Haken, 1976). Ma per controllare la colorabilità di queste ultime dobbiamo scrivere un programma!
1-Introduzione
![Page 17: Informatica A.A. 2009/2010 Parte 1 Introduzione al corso Corso A: Prof. Stefano Berardi stefano Corso B: Prof. Ugo de’ Liguoro](https://reader035.vdocuments.pub/reader035/viewer/2022081400/5542eb6a497959361e8d69a2/html5/thumbnails/17.jpg)
Esistono dimostrazioni con uso essenziale del
computerCongettura di Keplero (provata nel 2002): “la disposizione di sfere di egual diametro nello spazio, che consente di occupare il massimo di spazio, si ottiene quando le sfere sono tangenti, e quando i loro centri formano un reticolo tetraedrico” (vedi fig. qui sotto)
Nel 2002 si e’ dimostrato che congettura è vera se e solo se vale nel caso di 5128 disposizioni (poi ridotte a 2771). Il controllo di queste ultime si fa scrivendo un programma.
![Page 18: Informatica A.A. 2009/2010 Parte 1 Introduzione al corso Corso A: Prof. Stefano Berardi stefano Corso B: Prof. Ugo de’ Liguoro](https://reader035.vdocuments.pub/reader035/viewer/2022081400/5542eb6a497959361e8d69a2/html5/thumbnails/18.jpg)
3. Problemi, algoritmi e programmi
• Un problema di calcolo è definito da una relazione ingresso/uscita
• Gli ingressi possibili si dicono istanze• Un algoritmo è un metodo
meccanico di calcolo che associa un’uscita ad ogni entrata.
• Un programma è la codifica di un algoritmo in un opportuno linguaggio di programmazione.
1-Introduzione
![Page 19: Informatica A.A. 2009/2010 Parte 1 Introduzione al corso Corso A: Prof. Stefano Berardi stefano Corso B: Prof. Ugo de’ Liguoro](https://reader035.vdocuments.pub/reader035/viewer/2022081400/5542eb6a497959361e8d69a2/html5/thumbnails/19.jpg)
Dall’astratto al concreto
Non è ovvio come tradurre in un programma concetti matematici, e talvolta neppure un algoritmo
1-Introduzione
![Page 20: Informatica A.A. 2009/2010 Parte 1 Introduzione al corso Corso A: Prof. Stefano Berardi stefano Corso B: Prof. Ugo de’ Liguoro](https://reader035.vdocuments.pub/reader035/viewer/2022081400/5542eb6a497959361e8d69a2/html5/thumbnails/20.jpg)
Algoritmi e programmi
Un programma è la codifica di un algoritmo in un opportuno linguaggio di programmazione. A sinistra vediamo un algoritmo per il calcolo di ex, a destra la sua codifica in un programma C++:
for (i=0, t=1; i <= n; i++){t = t * x/i; y = y + t;}
n
ixn/i!
0
Sia data un’approssimazione di ex calcolata con la formula:
1-Introduzione
![Page 21: Informatica A.A. 2009/2010 Parte 1 Introduzione al corso Corso A: Prof. Stefano Berardi stefano Corso B: Prof. Ugo de’ Liguoro](https://reader035.vdocuments.pub/reader035/viewer/2022081400/5542eb6a497959361e8d69a2/html5/thumbnails/21.jpg)
Un programma si codifica attraverso un particolare linguaggio di programmazione
1-Introduzione
Linguaggi di programmazione
![Page 22: Informatica A.A. 2009/2010 Parte 1 Introduzione al corso Corso A: Prof. Stefano Berardi stefano Corso B: Prof. Ugo de’ Liguoro](https://reader035.vdocuments.pub/reader035/viewer/2022081400/5542eb6a497959361e8d69a2/html5/thumbnails/22.jpg)
Compilatori
1-Introduzione
Un programma scritto in qualche linguaggio di programmazione deve essere tradotto prima nel linguaggio “assembly” del sistema operativo, attraverso un processo detto di “compilazione”, poi in un linguaggio detto “linguaggio macchina”.
total =num1+num1;
ADD 20 20 24
00000010 10011000 10100000 00100000
Linguaggio di programmazione
Linguaggio assembler
Rappresentazione binaria
![Page 23: Informatica A.A. 2009/2010 Parte 1 Introduzione al corso Corso A: Prof. Stefano Berardi stefano Corso B: Prof. Ugo de’ Liguoro](https://reader035.vdocuments.pub/reader035/viewer/2022081400/5542eb6a497959361e8d69a2/html5/thumbnails/23.jpg)
La struttura dell’elaboratore
Anche se il programma che scriviamo noi e quello in linguaggio macchina sono ormai distanti, è utile sapere com’è fatto il calcolatore per dare un significato alla nozione di “indirizzo di memoria”, che usiamo per programmare. Sotto: un’immagine dell’elaboratore.
![Page 24: Informatica A.A. 2009/2010 Parte 1 Introduzione al corso Corso A: Prof. Stefano Berardi stefano Corso B: Prof. Ugo de’ Liguoro](https://reader035.vdocuments.pub/reader035/viewer/2022081400/5542eb6a497959361e8d69a2/html5/thumbnails/24.jpg)
In questo corso usiamo il linguaggio C/C++
Usiamo il C/C++ perché:• è un linguaggio “universale”, non
legato a particolari applicazioni;• è molto usato nel calcolo
scientifico, dunque esistono numerose librerie;
• La maggior parte dei linguaggi di programmazione (come Java) esistente discende dal C/C++.
1-Introduzione
![Page 25: Informatica A.A. 2009/2010 Parte 1 Introduzione al corso Corso A: Prof. Stefano Berardi stefano Corso B: Prof. Ugo de’ Liguoro](https://reader035.vdocuments.pub/reader035/viewer/2022081400/5542eb6a497959361e8d69a2/html5/thumbnails/25.jpg)
Tuttavia, lo scopo non è imparare il C++ in quanto
taleNon è vero che per saper programmare bastino una buona cultura scientifica e un manuale di un linguaggio di programmazione. E non basta impare le regole del linguaggio C++ per imparare a programmare.
1-Introduzione
![Page 26: Informatica A.A. 2009/2010 Parte 1 Introduzione al corso Corso A: Prof. Stefano Berardi stefano Corso B: Prof. Ugo de’ Liguoro](https://reader035.vdocuments.pub/reader035/viewer/2022081400/5542eb6a497959361e8d69a2/html5/thumbnails/26.jpg)
L’obbiettivo è imparare la “logica dei programmi”
Il vero obiettivo del corso è impadronirsi della logica dei programmi e delle tecniche fondamentali della programmazione.
A sinistra: un “diagramma di flusso” usato per spiegare la logica di un semplice programma
inizio
leggi a, b
true false
stampa b/a stampa “indet. o imposs.”
fine
a0
![Page 27: Informatica A.A. 2009/2010 Parte 1 Introduzione al corso Corso A: Prof. Stefano Berardi stefano Corso B: Prof. Ugo de’ Liguoro](https://reader035.vdocuments.pub/reader035/viewer/2022081400/5542eb6a497959361e8d69a2/html5/thumbnails/27.jpg)
4. Il programma del corso in 10 punti
1. Introduzione al corso (oggi).2. La macchina di Von Neumann.3. Variabili, espressioni assegnazioni4. Controllo del flusso: programmazione strutturata.5. Le funzioni6. Strutture dati statiche: vettori e matrici7. Iterazione8. Memoria dinamica.9. Tempo di calcolo10. Ricorsione. Algoritmi “Divide et Impera”.
1-Introduzione
![Page 28: Informatica A.A. 2009/2010 Parte 1 Introduzione al corso Corso A: Prof. Stefano Berardi stefano Corso B: Prof. Ugo de’ Liguoro](https://reader035.vdocuments.pub/reader035/viewer/2022081400/5542eb6a497959361e8d69a2/html5/thumbnails/28.jpg)
L’inizio: le variabili
x
int
0x0064fddc
x
int
0x0064fddc
nome
Indirizzo
tipo
Le variabili e le “assegnazioni” di valori a variabili sono la base dei linguaggi basati su comandi (detti anche “imperativi”), come il C++. Sopra: una rappresentazione delle principali caratteristiche di una variabile C++.1-Introduzione
![Page 29: Informatica A.A. 2009/2010 Parte 1 Introduzione al corso Corso A: Prof. Stefano Berardi stefano Corso B: Prof. Ugo de’ Liguoro](https://reader035.vdocuments.pub/reader035/viewer/2022081400/5542eb6a497959361e8d69a2/html5/thumbnails/29.jpg)
Organizzare un programma:la programmazione strutturata
• Un modo di descrivere programmi molto brevi sono i diagrammi di flusso.
• La programmazione strutturata sceglie i diagrammi di flusso piu’ comuni e introduce dei comandi che li rappresentano: if, for, while, …, detti le strutture di controllo.
if … else, for, while
1-Introduzione
![Page 30: Informatica A.A. 2009/2010 Parte 1 Introduzione al corso Corso A: Prof. Stefano Berardi stefano Corso B: Prof. Ugo de’ Liguoro](https://reader035.vdocuments.pub/reader035/viewer/2022081400/5542eb6a497959361e8d69a2/html5/thumbnails/30.jpg)
Le componenti di un programma:
le funzioni• Un programma ben organizzato delega compiti
ripetitivi a parti specializzate che possono essere eseguite molte volte: i sottoprogrammi
• Una funzione è un sottoprogramma che comunica col resto del programma attraverso speciali variabili dette “parametri”.
• Per imparare a programmare, è essenziale la capacita’ di saper scomporre il programma in funzioni, che possano essere usate senza conoscere i dettagli di come sono state definite.
1-Introduzione
![Page 31: Informatica A.A. 2009/2010 Parte 1 Introduzione al corso Corso A: Prof. Stefano Berardi stefano Corso B: Prof. Ugo de’ Liguoro](https://reader035.vdocuments.pub/reader035/viewer/2022081400/5542eb6a497959361e8d69a2/html5/thumbnails/31.jpg)
Un programma non scomposto in funzioni spesso
è illeggibile
1-Introduzione
main() { INPUT(&OK, X, Q, &N); if (OK) {/* STEP 1 */ for (I=0; I<=N; I++) { /* STEP 2 */ Z[2*I] = X[I]; Z[2*I+1] = X[I]; Q[2*I+1][0] = Q[2*I][0]; /* STEP 3 */ if (I != 0) Q[2*I][1] = (Q[2*I][0] - Q[2*I-1][0]) / (Z[2*I] -Z[2*I-1]);} /* STEP 4 */ K = 2 * N + 1; for (I=2; I<=K; I++) for (J=2; J<=I; J++) Q[I][J] = ( Q[I][J - 1] - Q[I - 1][J - 1] )/ ( Z[I] - Z[I - J] );}
Questo è un esempio di Un programma caotico
![Page 32: Informatica A.A. 2009/2010 Parte 1 Introduzione al corso Corso A: Prof. Stefano Berardi stefano Corso B: Prof. Ugo de’ Liguoro](https://reader035.vdocuments.pub/reader035/viewer/2022081400/5542eb6a497959361e8d69a2/html5/thumbnails/32.jpg)
Lo stesso programma scomposto in funzioni è più
comprensibilevoid ReadMatrix (Matrix M){…}bool Quadrata (Matrix M){…}real Det (Matrix M)// pre: M e’ quadrata// post: calcola il determinante di M{…}
int main(){ReadMatrix (M); if (Quadrata(M) && Det(M) != 0) real x = 1/ Det(M); … }
1-Introduzione
Questo è un esempio di un programma meglio organizzato
![Page 33: Informatica A.A. 2009/2010 Parte 1 Introduzione al corso Corso A: Prof. Stefano Berardi stefano Corso B: Prof. Ugo de’ Liguoro](https://reader035.vdocuments.pub/reader035/viewer/2022081400/5542eb6a497959361e8d69a2/html5/thumbnails/33.jpg)
Programmi = algoritmi + strutture dati (citazione da N. Wirth)
• Raramente in un programma si manipolano semplici numeri o caratteri: in generale bisogna organizzare i dati in opportune strutture dati, contenenti molti dati collegati tra loro.
• La scelta delle strutture dati influenza la definizione e l’efficienza degli dei metodi di calcolo o algoritmi.
1-Introduzione
![Page 34: Informatica A.A. 2009/2010 Parte 1 Introduzione al corso Corso A: Prof. Stefano Berardi stefano Corso B: Prof. Ugo de’ Liguoro](https://reader035.vdocuments.pub/reader035/viewer/2022081400/5542eb6a497959361e8d69a2/html5/thumbnails/34.jpg)
Strutture dati: come e’ organizzata la memoria
2 5 1 9
2 5 9 1
Sotto, una rappresentazione di un “vettore” di numeri nella memoria del computer, attraverso celle di memoria con indirizzi consecutivi
Più sotto, una rappresentazione degli stessi dati attraverso celle di memoria aventi indirizzi non consecutivi, ma collegate tra loro con una tecnica che spiegheremo nel corso.
1-Introduzione
![Page 35: Informatica A.A. 2009/2010 Parte 1 Introduzione al corso Corso A: Prof. Stefano Berardi stefano Corso B: Prof. Ugo de’ Liguoro](https://reader035.vdocuments.pub/reader035/viewer/2022081400/5542eb6a497959361e8d69a2/html5/thumbnails/35.jpg)
Tempo di calcolo: come la matematica studia l’efficienza
n0
f (n)
c g(n)
In che senso un programma è più efficiente di un altro? Una risposta è che, a meno di costanti moltiplicative, la funzione che ne esprime il tempo di calcolo del primo programma cresce più lentamente di quella che esprime il tempo di calcolo del secondo programma, quando l’argomento tende all’infinito.
![Page 36: Informatica A.A. 2009/2010 Parte 1 Introduzione al corso Corso A: Prof. Stefano Berardi stefano Corso B: Prof. Ugo de’ Liguoro](https://reader035.vdocuments.pub/reader035/viewer/2022081400/5542eb6a497959361e8d69a2/html5/thumbnails/36.jpg)
L’iterazione
L’iterazione è un percorso lineare dai dati al risultato, possiamo immaginarla come una strada che percorriamo andando sempre avanti, un passo dopo l’altro.
1-Introduzione
Sotto: un’immagine della iterazione.
![Page 37: Informatica A.A. 2009/2010 Parte 1 Introduzione al corso Corso A: Prof. Stefano Berardi stefano Corso B: Prof. Ugo de’ Liguoro](https://reader035.vdocuments.pub/reader035/viewer/2022081400/5542eb6a497959361e8d69a2/html5/thumbnails/37.jpg)
La ricorsione
La ricorsione utilizza un meccanismo di semplificazione dei casi più complessi a casi più semplici. I casi più complessi di un problema vengono inizialmente “lasciati in sospeso” finché non siamo in grado di risolverli partendo dalla soluzione di quelli più semplici.
1-Introduzione
Sotto: un’immagine della ricorsione.
![Page 38: Informatica A.A. 2009/2010 Parte 1 Introduzione al corso Corso A: Prof. Stefano Berardi stefano Corso B: Prof. Ugo de’ Liguoro](https://reader035.vdocuments.pub/reader035/viewer/2022081400/5542eb6a497959361e8d69a2/html5/thumbnails/38.jpg)
5. Struttura del corso nel 2010/2011
Corso teorico in aula
4 ore settimanaliMercoledi’ 11-13Giovedi’ 09-11dal 7 Marzo
Esercitazioni in laboratorio
2 ore settimanaliIl Lunedi’ 11-13
a partire dal 14 Marzo
Tutorato2 ore settimanaliIl Lunedi’ 14-16
a partire dal 28 Marzo
1-Introduzione
![Page 39: Informatica A.A. 2009/2010 Parte 1 Introduzione al corso Corso A: Prof. Stefano Berardi stefano Corso B: Prof. Ugo de’ Liguoro](https://reader035.vdocuments.pub/reader035/viewer/2022081400/5542eb6a497959361e8d69a2/html5/thumbnails/39.jpg)
Il laboratorio
• Il laboratorio, che si svolgerà per 2 ore e per 11 settimane nelle aule informatizzate il Lunedi’ ore 11-13, farà uso del C++
• Alcuni esercizi faranno uso di contesti, ossia di programmi con “lacune”, forniti via web dal docente e che lo studente deve completare.
1-Introduzione
![Page 40: Informatica A.A. 2009/2010 Parte 1 Introduzione al corso Corso A: Prof. Stefano Berardi stefano Corso B: Prof. Ugo de’ Liguoro](https://reader035.vdocuments.pub/reader035/viewer/2022081400/5542eb6a497959361e8d69a2/html5/thumbnails/40.jpg)
C++ versus C
Chi conosce il C puo’ chiedersi perche’ abbiamo scelto il C++. Qualche risposta:
1.Il C++ include il C2.Il C++ aggiunge al C caratteristiche di alto
livello (a cominciare da una migliore gestione dell’Input/Ouput)
3.Il C++ estende il C con le “classi”. Questo aspetto `e importante per chi continua lo studio della programmazione, anche se in questo corso non lo vedremo.
1-Introduzione
![Page 41: Informatica A.A. 2009/2010 Parte 1 Introduzione al corso Corso A: Prof. Stefano Berardi stefano Corso B: Prof. Ugo de’ Liguoro](https://reader035.vdocuments.pub/reader035/viewer/2022081400/5542eb6a497959361e8d69a2/html5/thumbnails/41.jpg)
Il Dev-C++
• E’ obbligatorio scaricare e istallare il wxDev-C++. Tutte le istruzioni si trovano sul sito del corso (vedi oltre).
1-Introduzione
![Page 42: Informatica A.A. 2009/2010 Parte 1 Introduzione al corso Corso A: Prof. Stefano Berardi stefano Corso B: Prof. Ugo de’ Liguoro](https://reader035.vdocuments.pub/reader035/viewer/2022081400/5542eb6a497959361e8d69a2/html5/thumbnails/42.jpg)
Un testo di consultazione per il linguaggio C++
Il testo di consultazione per il C++ scelto per il corso è J. R. Hubbard, Programmare in C++ 2a ed. McGraw-Hill 2001È fuori stampa, ma dovrestetrovarlo usato. In alternativa …
1-Introduzione
![Page 43: Informatica A.A. 2009/2010 Parte 1 Introduzione al corso Corso A: Prof. Stefano Berardi stefano Corso B: Prof. Ugo de’ Liguoro](https://reader035.vdocuments.pub/reader035/viewer/2022081400/5542eb6a497959361e8d69a2/html5/thumbnails/43.jpg)
Un testo di consultazione alternativo
La nuova versione dell’Hubbard è Joyanes Aguilar Luis Fondamenti di programmazione C++ The McGraw-Hill Companies
È in stampa, di circa 600 pagine, ne usiamo la prima metà.
1-Introduzione
![Page 44: Informatica A.A. 2009/2010 Parte 1 Introduzione al corso Corso A: Prof. Stefano Berardi stefano Corso B: Prof. Ugo de’ Liguoro](https://reader035.vdocuments.pub/reader035/viewer/2022081400/5542eb6a497959361e8d69a2/html5/thumbnails/44.jpg)
Pagine web del corso nel 2010/2011
Tutto il materiale del corso (dispense, compilatore, grafica, esercizi, registrazione delle lezioni del 2009/2010 e se possibile di quest’anno) puo’ essere trovato sul Web all’indirizzo:
math.i-learn.unito.it“Piattaforma”: MOODLENome: Informatica 1 a.a. 2010/2011 (inf12011)
E’ OBBLIGATORIA L’ ISCRIZIONEA MOODLE
1-Introduzione
![Page 45: Informatica A.A. 2009/2010 Parte 1 Introduzione al corso Corso A: Prof. Stefano Berardi stefano Corso B: Prof. Ugo de’ Liguoro](https://reader035.vdocuments.pub/reader035/viewer/2022081400/5542eb6a497959361e8d69a2/html5/thumbnails/45.jpg)
Orario Corso del 2010/2011
Dal 7 all’11/03/2011 solo lezione: 1. 11-13 Lunedi’ Aula Magna2. 11-13 Giovedi’ Aula Magna3. 09-11 Venerdi’ Aula MagnaDal 14/03/2010 al 04/06/2010 anche
laboratorio:1. 11-13 Lunedi' Laboratorio
Aula 52. 11-13 Giovedi’ Aula Magna3. 09-11 Venerdi’ Aula Magna
1-Introduzione
![Page 46: Informatica A.A. 2009/2010 Parte 1 Introduzione al corso Corso A: Prof. Stefano Berardi stefano Corso B: Prof. Ugo de’ Liguoro](https://reader035.vdocuments.pub/reader035/viewer/2022081400/5542eb6a497959361e8d69a2/html5/thumbnails/46.jpg)
Modalità d’esame
• Test (max. 5 pt.): 10 domande da 0.5 pt. a risposta chiusa. Minimo: 5 esatte (2.5 pt.)
• Esercizi (max. 20 punti): 4 programmi, valgono 5 punti ciascuno se: (a) compilano correttamente; (b) funzionano su esempi; (c) soddisfano eventuali richieste extra. Altrimenti 0 pt. Minimo: 2 esatti (10 pt.)
• Domanda scritta di teoria (max. 6 punti).
1-Introduzione
![Page 47: Informatica A.A. 2009/2010 Parte 1 Introduzione al corso Corso A: Prof. Stefano Berardi stefano Corso B: Prof. Ugo de’ Liguoro](https://reader035.vdocuments.pub/reader035/viewer/2022081400/5542eb6a497959361e8d69a2/html5/thumbnails/47.jpg)
Test (max. 5 punti, min. 2.5)
Consiste di 10 domande a risposta chiusa da 0.5 punti ciascuna
1. Alcune prese dal testo di Hubbard (alla fine di ogni capitolo), ma per la maggior parte …
2. ispirate dagli errori piu’ comuni degli studenti dell’anno precedente.
1-Introduzione
![Page 48: Informatica A.A. 2009/2010 Parte 1 Introduzione al corso Corso A: Prof. Stefano Berardi stefano Corso B: Prof. Ugo de’ Liguoro](https://reader035.vdocuments.pub/reader035/viewer/2022081400/5542eb6a497959361e8d69a2/html5/thumbnails/48.jpg)
Scritto (max. 20 pt., min. 10)
Consiste nello svolgimento di 4 esercizi, simili alle esercitazioni fatte durante il corso. La valutazione e’ sempre 0 o 5 pt.
real Exp_x (real x, int n)
// pre: n intero >= 0
// post: calcola e^x con la formula …
{ /*codice da inserire dallo studente*/ }
Il “main” del programma contiene esempi su cui provare il programma ed è sempre dato allo studente. Il programma deve funzionare anche su esempi non inclusi. 1-Introduzione
![Page 49: Informatica A.A. 2009/2010 Parte 1 Introduzione al corso Corso A: Prof. Stefano Berardi stefano Corso B: Prof. Ugo de’ Liguoro](https://reader035.vdocuments.pub/reader035/viewer/2022081400/5542eb6a497959361e8d69a2/html5/thumbnails/49.jpg)
Domanda Scritta di Teoria (max. 6 punti)
• Verte sul programma del corso, programma che forniremo nella sua versione definitiva a fine semestre.
• Il punteggio finale dell’esame e’ la somma dei punti delle 3 prove, arrotondata per eccesso: per esempio, 17.5 diventa 18 (la sufficienza), mentre 17 o meno resta insufficiente.
• 30.5 e 31 corrispondono a 30 e lode.
1-Introduzione
![Page 50: Informatica A.A. 2009/2010 Parte 1 Introduzione al corso Corso A: Prof. Stefano Berardi stefano Corso B: Prof. Ugo de’ Liguoro](https://reader035.vdocuments.pub/reader035/viewer/2022081400/5542eb6a497959361e8d69a2/html5/thumbnails/50.jpg)
Tutorato
• Due ore alla settimana il Lunedi’ 14-16 dal 28 Marzo sono dedicate al tutorato
• Consiste nella discussione degli esercizi svolti e/o nello svolgimento di ulteriori esercizi, ed ha lo scopo di sostenere chi ne ha bisogno
È facoltativo!1-Introduzione
![Page 51: Informatica A.A. 2009/2010 Parte 1 Introduzione al corso Corso A: Prof. Stefano Berardi stefano Corso B: Prof. Ugo de’ Liguoro](https://reader035.vdocuments.pub/reader035/viewer/2022081400/5542eb6a497959361e8d69a2/html5/thumbnails/51.jpg)
Domande?
1-Introduzione