Programmazione A.A. 2002/2003 (9 CFU)


Il corso dell'A.A. 2003/2004 sarà tenuto dalla Dott.ssa Maria Rita Di Berardini: mdiberar@di.univaq.it

Docente: Luca Tesei

Indirizzo e-mail: luca.tesei@unicam.it
Home Page: http://www.di.unipi.it/~tesei/
Attività Camerino: http://www.di.unipi.it/~tesei/unicam/

Obiettivi formativi

L'obiettivo del corso è quello di illustrare i principi, gli strumenti e le tecniche della programmazione di applicazioni informatiche. A questo scopo sono illustrate le tecniche formali per descrivere le caratteristiche dei linguaggi di programmazione: grammatiche e automi per descrivere la sintassi e sistemi di transizione per descrivere la semantica. Le tecniche sono esemplificate su un sottoinsieme di Java. Sono poi introdotte, tramite esempi di strutture dati e di algoritmi, alcune tecniche fondamentali di programmazione iterativa e ricorsiva.
Il corso si articola in 45 ore di didattica frontale classica e 45 ore di esercitazioni/esempi in aula. In parallello al corso è previsto un laboratorio (3 CFU) i cui obiettivi sono la conoscenza e l'uso del linguaggio Java per programmare semplici applicazioni.

Contenuti

Programma dettagliato (45 ore)


Un numero uguale di ore per ogni argomento è dedicato alle esercitazioni in aula.

Guarda le lezioni effettivamente svolte con tutti gli argomenti nel Registro delle lezioni

Calendario

Inizio corso Mar 1/10/2002, ore 8:00 Aula Lab. di Inf. SdT
Fine corso Mer 20/11/2002.

Attenzione: nella settimana dal 7/10 al 11/10 non ci sarà lezione.
Le ore saranno recuperate nel corso della prima, terza e quarta settimana di corso.
Attenzione: Martedì 22/10 pomeriggio e Mercoledì 23/10 pomeriggio non c'è stata lezione per Occupazione Aula per il test di Inglese (Mar) e "Festa della matricola" (Mer).
Inoltre Lunedì 4/11 ci sarà la sospensione didattica a causa della chiusura dei collegi ERSU.
Ergo
dobbiamo recuperare in tutto 18 ore di lezione (quelle già recuperate sono segnalate con un asterisco nella tabellina che segue) e quindi purtroppo le ultime settimane saranno un po' pesanti. Di seguito c'è l'elenco dei giorni, ore, aule in cui ci saranno le lezioni di recupero. Rimangono valide le ore già assegnate dall'orario ufficiale (tranne ovviamente quelle della settimana 7/10-11/10 e dei giorni in cui ho detto che non c'è lezione).

Attenzione!!!
Nella settimana dal 11/11 al 15/11 ci sarà uno scambio di ore con il corso di Analisi.
Mar 12/11 dalle 15 alle 17 ci saranno due ore di Analisi (prof. Giannotti in aula Lab Inf SdT). Restano valide le due ore seguenti di recupero di Programmazione nella stessa aula.
Ven 15/11 dalle 10 alle 12 a posto di Analisi ci saranno due ore di Programmazione sempre in aula Lab Inf SdT.

Giorno Ore Aula
*Gio 3/10 10-12 Lab. di Inf. SdT
*Ven 4/10 8-10 Lab. di Inf. SdT
*Mar 15/10 17-19 Lab. di Inf. SdT (Ascoli E)
*Mar 29/10 17-19 Lab. di Inf. SdT (Ascoli E)
*Mar 5/11 17-19 Lab. di Inf. SdT (Ascoli E)
*Mer 6/11 15-17 Aula A (Ascoli ?)
*Mar 12/11 17-19 Lab. di Inf. SdT (Ascoli E)
*Mar 19/11 17-19 Lab. di Inf. SdT (Ascoli E)
*Mer 20/11 15-17 Aula A (Ascoli ?)

Computo delle ore

Num Settimana Totale Ore
I 2/10-4/10 12
II 7/10-11/10 0
III 14/10-18/10 14
IV 21/10-25/10 8
V 28/10-31/10 14
VI 4/11-8/11 12
VII 11/11-15/11 14
VIII 18/11-22/11 16
--- Totale 90

Orario di ricevimento

Settimana Giorno/Ora Aula
III Mer 16/10 ore 15-17 C (Ascoli ?)
IV Lun 21/10 ore 17-19 C (Ascoli ?)
V Mer 30/10 ore 15-17 C (Ascoli ?)
VI Mar 5/11 ore 11-13 D (Ascoli ?)
VII Mer 13/11 ore 15-17 C (Ascoli ?)
VIII Lun 18/11 ore 17-19 C (Ascoli ?)
IX Lun 25/11 ore 17-19 C (Ascoli ?)
X Lun 2/12 ore 11-13 B (Ascoli ?)
XI Lun 9/12 ore 17-19 C (Ascoli ?)
XII Lun 6/12 ore 17-19 C (Ascoli ?)
XIII Mar 11/03/2003 ore 14-17 C (Ascoli ?)
XIII Ven 14/03/2003 ore 15-18 C (Ascoli chiedere in portineria)

Nota: Il ricevimento del 4/11 è stato spostato alla mattina successiva a causa della sospensione delle lezioni il 4/11.

Materiale didattico

Dispense: http://www.di.unipi.it/~paolo/FP/materiale.html
Il software necessario per visualizzare e stampare files PostScript è scaricabile dal seguente sito: http://www.cs.wisc.edu/~ghost/
Durante il corso potranno essere distribuite altre dispense su argomenti particolari e/o per approfondimento.

Nuova Dispensa 20/10/2002

Supplemento alla dispensa di Sintassi. La trovate qui.

Esercizi con soluzione


Si possono scaricare all'indirizzo: http://www.di.unipi.it/~paolo/FP/scritti/aa0102/index.html

Nuova Dispensa 18/11/2002

Supplemento alla dispensa di Semantica. La trovate qui.
Si possono scaricare i sorgenti dei programmini illustrati nella dispensa:
Point.java
Set_of_Points.java
Pixel.java
La documentazione delle tre classi generata con l'utility javadoc della jdk si può vedere qui: Documentazione

Testi/materiali *solo di consultazione*


Per Java:

Per familiarizzare con Java e la programmazione ad oggetti:

Tutorato

Il tutore del corso è Gianluca Gerini. La pagina web del tutorato del corso di Programmazione si trova all'indirizzo: http://webtutor.unicam.it/corsi/programmazione/index.html.
Gli studenti sono pregati di accordarsi con il tutore per usufruire delle 30 ore di esercizi/ripasso/spiegazioni/approfondimenti offerte dal tutorato.
La prima lezione esercitazione del tutore sarà Gio 21/11 dalle 17 alle 19 in aula Lab. Inf. Sdt

Modalità di svolgimento dell'esame

L'esame è composto da uno scritto (esercizi da risolvere con domande anche teoriche) e da un orale opzionale. La valutazione finale è in congiunzione con la valutazione del corso di Laboratorio (progetto) tenuto dalla dott.ssa Maria Rita Di Berardini: mdiberard@di.univaq.it.

Ogni appello consisterà in una prova scritta. Se il voto è sufficiente (>= 18) lo studente può decidere di terminare la prova con il voto dello scritto oppure cercare di migliorare il voto con la prova orale. Se il voto è insufficiente, ma maggiore di 14 (quindi da 15 a 17 compresi) lo studente può provare a fare la prova orale per raggiungere la sufficienza. In ogni caso lo studente può decidere di rinunciare alla prova scritta e tornare all'appello successivo.

Tutti quelli che hanno sostenuto con successo la prova di Programmazione e anche quella di Laboratorio otterranno la registrazione definitiva del voto da 12 CFU. Il voto è ottenuto con una media pesata delle due prove (3/4 Programmazione + 1/4 Laboratorio) arrotondata per eccesso.

Testi e soluzioni degli appelli passati

Prova scritta del 3/12/2002:
Testo 1
Testo 2
Soluzione Testo 1
Soluzione Testo 2

Prova scritta del 13/12/2002:
Testo 1
Testo 2
Soluzione Testo 1
Soluzione Testo 2

Prova Scritta del 7/3/2003
Testo
Soluzione Testo

Prova Scritta del 17/3/2003
Testo
Soluzione Testo

Prova Scritta del 9/6/2003
Testo
Soluzione Testo

Prova Scritta del 14/7/2003
Testo
Soluzione Testo

Prova Scritta del 2-3/9/2003
Non svolta per mancanza di iscritti.

Prova Scritta del 23-24/9/2003
Testo Camerino
Soluzione Camerino
Testo Ascoli
Soluzione Ascoli    Corretto il 14/12/2004 (Errore nella soluzione dell'ultimo esercizio)



Luca Tesei
Last modified: Tue Dec 12 11:44:28 CET 2004