Anno accademico 2009/2010
Home page
Avvisi
-
Come segnalato dal seguente avviso,
dal febbraio 2011 entrano in vigore le
propedeuticità fra esami.
Per poter sostenere alcuni esami del secondo e terzo anno
(vedi la tabella)
occorre aver superato l'esame di Programmazione.
-
La prova di laboratorio di giovedì 8 luglio (turni A e B)
si svolgerà alle 9.30 presso il
laboratorio SILab di via Comelico 39
(aula sigma).
Gli studenti che non hanno superato l'esame di giugno e che intendono
sostenere l'appello di luglio sono invitati a fissare
un appuntamento per vedere e discutere gli esercizi svolti.
Si raccomanda di leggere attentamente le modalità d'esame sotto riportate.
Modalità d'esame
-
L'esame consiste in una prova individuale pratica da svolgersi
nel laboratorio didattico SILab di via Comelico 39
(tempo massimo 4 ore) e una prova orale obbligatoria (discussione degli esercizi svolti) .
-
È necessario iscriversi tramite
SIFA online
(viene aperta un'unica lista di iscrizione valida per tutti gli studenti dell'Edizione 1).
Le iscrizioni si chiudono circa una settimana
prima della data dell'appello
-
È consigliato fare l'esame di laboratorio dopo avere fatto l'esame scritto di Programmazione.
L'orale di Programmazione (con verbalizzazione del voto) può essere fatto solo dopo
aver sostenuto con esito positivo l'esame di laboratorio.
-
Prima dell'esame, prendere visione del
materiale di supporto
(che sarà disponibile anche durante la prova d'esame).
Le macchine sono configurate in modo tale che siano utilizzabili solamente
gli strumenti necessari per la programmazione (editor, compilatore).
Non occorre avere un account sulle macchine del laboratorio.
Sono disponibili le API Java (e non la libreria
libreria prog del libro di testo) con la documentazione in inglese.
-
Durante l'esame è possibile consultare il libro di testo (oppure un manuale
di Java) e il vocabolario d'Inglese (per la documentazione).
Non è possibile usare altro materiale.
Verranno anche distribuiti fogli di carta per appunti personali.
-
La valutazione e l'esame orale verranno fatti
dal docente del turno a cui si è iscritti.
Gli studenti non iscritti
verranno assegnati a un docente durante la prova in laboratorio.
Risultano iscritti al turno B: elenco.
- Potete iscrivervi al massimo a due dei tre appelli fissati tra gennaio e febbraio.
Preparazione alla prova pratica d'esame
L'esame consiste nella soluzione di 4 o 5 esercizi di programmazione
in Java. Il primo è un esercizio molto semplice con funzione di
filtro (cioè obbligatorio, se non viene fatto gli altri esercizi
non verranno valutati); gli altri esercizi richiedono la
progettazione e l'implementazione di semplici algoritmi, di classi o
gerarchie di classi ed eventualmente l'uso di una classe Java non vista a
lezione e quindi la consultazione della documentazione sulle API.
Qui trovate un
esempio di
prova d'esame.
Date appelli per l'esame in laboratorio
26 gennaio, 10 febbraio, 24 febbraio, 16 giugno, 8 luglio, 23 settembre.
Ricevimento
Nel mio ufficio, via Comelico 39
(ufficio S.202 al secondo piano, corridoio sopra l'ingresso del Dipartimento)
su appuntamento
(fiorenti@dsi.unimi.it).
NOTA
Quando si scrive a un docente, usare preferibilemente l'indirizzo di posta di ateneo
(della forma nome.cognome@studenti.unimi.it).
Indicare sempre il proprio nome e cognome.
Account sulle macchine del laboratorio
Per poter utilizzare le macchine del laboratorio SILab
di via Comelico in cui si svolgono le lezioni di laboratorio
è necessario crearsi un account personale.
È stata predisposta nel SILab (davanti all'ufficio) una postazione self-service per la creazione degli account.
Occorre utilizzare la propria tessera universitaria magnetica
Breve guida
(a cura del Prof. Santini) sull'utilizzo delle risorse di calcolo del Silab.
Materiale relativo alle lezioni
Le soluzioni di alcuni esercizi sono pubblicate
sulla pagina del
Turno A.
-
8 ottobre - Laboratorio 1
Introduzione al corso. Introduzione all'uso di Linux:
file system, principali comandi, variabili d'ambiente.
Il primo programma.
Esempio di script di shell:
esempio
Esempio di file di configurazione per bash:
.bashrc
-
15 ottobre - Laboratorio 2
Basi del linguaggio (tipi primitivi e tipi riferimento, creazione di oggetti,
invocazione di metodi).
Esercizi da svolgere in laboratorio:
dividi parola,
2.9, 2.7 (la numerazione si riferisca alla terza edizione del libro di testo).
Esercizi da svolgere a casa: 2.6, 2.8, 2.10.
-
22 ottobre - Laboratorio 3
Strutture di controllo (selezione). Espressioni booleane.
Alcune osservazioni all'esercizio 2.9: esempio.pdf.
Esercizi da svolgere in laboratorio:
numeri,
abbonamento,
3.15.
Esercizi da svolgere a casa:
completare esercizio 3.15 (leggere la nota), 3.21, 3.27.
-
29 ottobre - Laboratorio 4
Strutture di controllo (cicli).
Esercizi da svolgere in laboratorio:
Tabella 1,
Tabella 2,
Tabella 3.
3.17 (leggere la nota),
3.23.
Nota all'esercizio Tabella 3.
Esercizi da svolgere a casa:
Tabella 4,
esercizi su uso di
strutture di controllo,
3.9.
-
5 novembre - Laboratorio 5
Esercizi da svolgere in laboratorio:
esercizi sull'uso
caratteri.
Gli esercizi 3 e 4 sono esempi di possibili esercizi d'esame.
Esercizio 4.24 (esercizio importante in quanto richiede l'uso della classe
StringTokenizer e del metodo statico
Integer.parseInt spesso usati nella lettura dell'input).
Si raccomanda di terminare a casa gli esercizi proposti.
Altri esercizi utili: 4.17, 4.25, 4.28.
-
12 novembre - Laboratorio 6
Esercizi da svolgere in laboratorio: esercizi sulla
rappresentazione
di numeri naturali
(per un approfondimento,
dispense
del
Prof. Boldi).
Script di shell per l'esecuzione di alcuni test:
testNumeri.
Output corretto:
outNumeri.txt.
Esercizio in preparzione per il compitino:
merge di sequenze non-decrescenti di interi.
Script per l'esecuzione di alcuni test:
testMerge.
Output corretto:
outMerge.txt.
-
19 novembre - Laboratorio 7
Input e Output usando le API Java.
Esempi:
EsempioLetturaArgs.java
(argomenti sulla linea di comando),
EsempioLetturaCaratteri.java
(lettura da standard input di caratteri),
EsempioBufferedReader.java
(lettura da standard input usando classe BufferedReader).
NOTA:
negli esercizi da svolgere durante la prova d'esame, la lettura dell'input
avviene in una delle modalità degli esempi.
Per ulteriori approfondimenti:
Cap. 13 del libro, sezione
Basic I/O
in The Java Tutorials.
Esercizi da svolgere in laboratorio:
SommaMatrici,
5.19 (vedi nota),
5.24 (Crivello di Eratostene, vedi
nota).
Esercizi da fare a casa:
5.3 (leggere la parola in input da linea di comando),
5.18 (leggere la sequenza di numeri da standard input).
-
26 novembre - Laboratorio 8
Introduzione all'implementazione di classi.
Esercizio da svolgere in laboratorio e completare a casa:
Campo minato.
-
3 dicembre - Laboratorio 9
Estensione delle classi, overloading e overriding, il metodo equals.
Esercizio da svolgere in laboratorio e completare a casa:
Rettangoli nel piano cartesiano.
File da utilizzare:
Punto.java,
Rettangolo.java,
Quadrato.java.
-
10 dicembre - Laboratorio 10
Introduzione all'uso di Collection.
Esercizio da svolgere in laboratorio e completare a casa:
Cestino della spesa.
File da utilizzare:
Prezzo.java,
Prodotto.java,
Cestino.java,
ProdottoScontato.java.
-
17 dicembre - Laboratorio 11
Collection.
Esercizio da svolgere in laboratorio e completare a casa:
Rubrica telefonica.
File da utilizzare:
Persona.java (classe completamente implementata),
Contatto.java,
ContattoAmico.java,
RubricaTelefonica.java.
Approfondimenti: sezione
Collections
di The Java Tutorials.
Ulteriori esempi
Uso corretto del metodo contains:
Pagella.java (contiene testo esercizio),
Valutazione.java (classe da completare).
Uso corretto del metodo remove:
Eratostene.java.
Esercizio sull'uso del metodo sort della classe Collections:
pagella.
-
7 gennaio - Laboratorio 12
Esercizi riassuntivi.
-
Sequenze di Kaprekar
(una sola classe con metodi statici).
-
Torneo
(gerarchia di classi con uso di Collection).
-
Problema delle regine
(esercizio più difficile dei precedenti, viene usata la ricorsione).
Libro di testo di riferimento
G. Pighizzini e M. Ferrari.
Dai fondamenti agli oggetti. Corso di programmazione Java (terza edizione).
Pearson Education, 2008.
Dalla home page del libro è possibile scaricare le
librerie
utilizzate nel corso.
Software
Viene utilizzato Java Developer Kit (compilatore e macchina virtuale per Java),
disponibile sul sito dedicato a Java della
Sun.
In particolare, occorre scaricare:
-
La versione 6 di JDK
- La libreria prog del libro di testo
Il materiale si trova anche nel CD allegato al libro.
Materiale di supporto
Nota
I file in formato PostScript possono
essere visualizzati utilizzando i programmi
Ghostscript, Ghostview e GSview,
i file in formato PDF possono essere visualizzati utilizzando
Acrobat Reader.
Camillo Fiorentini