Questa è una vecchia versione del documento!
Indice
LPR-B - A.A. 2009-10
Avvisi
[24 ottobre 2010] Contrariamente a quanto annunciato in precedenza, verrà proposto un quarto progetto per gli studenti dei vecchi ordinamenti (classe 26 o precedenti), poiché il modulo di Laboratorio del corso di RCL (da cui LPR sarà mutuato) verrà erogato nell'A.A. 2010/11 nel secondo semestre. La data di pubblicazione del quarto progetto sarà indicata nei prossimi giorni: ma sarà orientativamente verso metà dicembre 2010.
Attenzione: Questo è l'ultimo progetto dei corsi di LPR (A e B) dell'A.A. 2009/10: gli studenti che non faranno questo progetto (oppure che non supereranno la successiva discussione) dovranno sostenere l'esame di LPR àmutuandolo dal modulo di laboratorio dell'esame RCL del nuovo ordinamento.
[2 agosto 2010] Il testo del terzo progetto, con le relative istruzioni, può essere scaricato dal seguente link: Progetto-LPR09-3.pdf. La scadenza è fissata per Domenica 3 ottobre 2010 alle ore 24:00: non saranno concesse proroghe. Per eventuali problemi di comprensione del testo scrivere un email al Prof. Corradini.
[16 luglio 2010] Il testo del terzo progetto sarà pubblicato nell'ultima settimana di luglio. La scadenza cadrà orientativamente nella seconda metà di settembre.
[23 giugno 2010] Istruzioni per la valutazione del secondo progetto e corrispondente orale.
[18 maggio 2010] La gara per testare i progetti sottomessi è fissata per il giorno Giovedì 24 Giugno alle ore 14:00 nel Laboratorio M.
[10 maggio 2010] E' stato pubblicato il testo del secondo progetto. La scadenza per la consegna è alle ore 24 del 21 giugno 2010.
Orario di lezione
Giorno | Orario | Aula | Tipo |
---|---|---|---|
Martedì | 14–16 | C | lezione |
Mercoledì | 9–11 | Lab-M | esercitazione (Gruppo I) |
Mercoledì | 11–13 | Lab-M | esercitazione (Gruppo II) |
Orario di ricevimento
Giorno | Orario | Luogo |
---|---|---|
Martedì | 16:15-19:15 | presso Studio Prof. Corradini (Dipartimento di Informatica) |
oppure su appuntamento: mandare un email all'indirizzo acorradi [at] cli [dot] di [dot] unipi [dot] it.
Modalità di esame
L'esame prevede lo svolgimento di un progetto, seguito da un orale. Per ogni a.a. sono previsti tre progetti, uno per sessione. La prima parte dell'orale è dedicata alla discussione del progetto: se il progetto viene ritenuto insufficiente, occorre svolgere il progetto successivo. Altrimenti si prosegue l'orale con un'interrogazione su punti salienti affrontati nel corso. In caso di esito negativo dell'orale, è possibile ripetere il solo orale per una volta a distanza di almeno tre settimane. In caso di esito negativo anche per il secondo orale, lo studente dovrà svolgere il progetto successivo.
Per il primo progetto, pubblicato il 18/12/2009, la scadenza è stata il 31/01/2010. Il progetti sottomessi sono stati testati collegialmente in una gara svoltasi il 5/02/2010, e gli orali si sono svolti nei giorni successivi.
Il secondo progetto è stato pubblicato il 10 maggio 2010. Il progetto va consegnato entro le ore 24 del 21 giugno 2010, sencondo le modalità indicate nella pagina del progetto. La gara per testare i progetti sottomessi è fissata per il giorno Giovedì 24 Giugno alle ore 14:00 nel Laboratorio M. Ho pubblicato le istruzioni per la valutazione del secondo progetto e il corrispondente orale.
Lezioni
Per questo corso non c'è obbligo di frequenza, ma la frequenza è fortemente consigliata.
Gli studenti possono scegliere liberamente se frequentare il corso LPR-A oppure LPR-B, ma devono sostenere l'esame con il docente del priprio corso. I corsi LPR-A e LPR-B avranno identici contenuti e identiche modalità di esame.
N | Data | Ora | Tipo lezione | Aula | Argomento | Link |
---|---|---|---|---|---|---|
1 | Mar 22/09 | 14-16 | Teoria | C | Introduzione corso; Task e thread in java | 01-Threads.pdf, primi 9 lucidi |
2 | Mer 23/09 | 9-13 | Esercitazioni | Lab M | Test di Ingresso | Link agli esercizi |
3 | Mar 29/09 | 14-16 | Teoria | C | Attivazione di thread; Interruzione di thread; Priorità; Introduzione ai Thread Pool | 01-Threads.pdf tutto e 02-ThreadPoolingCallable.pdf primi 19 lucidi |
4 | Mer 30/09 | 9-13 | Esercitazioni | Lab M | Esercizi su Task e Thread | Link agli esercizi (con alcune soluzioni) |
5 | Mar 6/10 | 14-16 | Teoria | C | Pool di Thread | 02-ThreadPoolingCallable.pdf e 03-ThreadSynchronization.pdf primi 12 lucidi |
6 | Mer 7/10 | 9-13 | Esercitazioni | Lab M | Esercizi su Pool di Thread | Link agli esercizi (con alcune soluzioni) |
7 | Mar 13/10 | 14-16 | Teoria | E | Indirizzi IP, Java API per URL | 04-ProgReteIndirizziIP.pdf |
8 | Mer 14/10 | 9-13 | Esercitazioni | Lab M | Esercizi su Indirizzi IP e Callable | Link agli esercizi (con alcune soluzioni) |
9 | Mar 20/10 | 14-16 | Teoria | C | Sincronizzazione di Thread | 03-ThreadSynchronization.pdf |
10 | Mer 21/10 | 9-13 | Esercitazioni | Lab M | Esercizi su Sincronizzazione di Thread | Link agli esercizi |
11 | Mar 27/10 | 14-16 | Teoria | C | Il protocollo UDP: Socket e Datagram | 05-UDP-Sockets.pdf |
12 | Mer 28/10 | 9-13 | Esercitazioni | Lab M | Esercizi su UDP, Sockets e Datagrams | Link agli esercizi |
13 | Mar 10/11 | 14-16 | Teoria | C | UDP: Costruzione di pacchetti, invio di oggetti | 06-UDP-Packets.pdf |
14 | Mer 11/11 | 9-13 | Esercitazioni | Lab M | Esercizi con UDP su Serializzazione, MiniTalk e File Transfer | Link agli esercizi |
15 | Mar 17/11 | 14-16 | Teoria | C | Il protocollo TCP: Sockets, Server Sockets e comunicazione tramite streams | 07-TCP-StreamSockets.pdf |
16 | Mer 18/11 | 9-13 | Esercitazioni | Lab M | Esercizi su TCP (Sospensione per Assemblea dalle 10 alle 12 ) | Link agli esercizi |
17 | Mar 24/11 | 14-16 | Teoria | C | Sockets TCP e Multicast | 08-TCP-Sockets-Multicast.pdf |
18 | Mer 25/11 | 11-13 | Esercitazioni | Lab M | Altri esercizi su TCP e su Multicast | Link agli esercizi |
19 | Mar 1/12 | 14-16 | Teoria | C | Remote Method Invocation | 09-RMI.pdf |
20 | Mer 2/12 | 11-13 | Esercitazioni | Lab M | Esercizi su RMI | Link agli esercizi |
Mar 8/12 | Festivo | |||||
21 | Mer 9/12 | 9-11 | Teoria | Aula N1 | RMI e Callback | 10-RMI-Callback.pdf |
22 | Mer 9/12 | 11-13 | Esercitazioni | Lab M | Esercizi su RMI e Callback | Link agli esercizi |
23 | Mar 15/12 | 14-15 | Teoria | C | Collezioni sincronizzate, Deadlock | 11-CollezSynchr.pdf |
15-16 | Teoria | E | Presentazione progetto |
Materiale didattico
- Harold, Java Network Programming Third Edition, October 2004 ISBN 10: 0-596-00721-3 ISBN 13: 9780596007218 Pages: 760, http://oreilly.com/catalog/9780596007218/. Questo libro è da intendersi come un manuale da consultare mentre si realizzano gli esercizi ed il progetto del corso. Non è un libro di reti. Assumeremo durante il corso che le nozioni necessarie siano fornite dal corso di Reti di Calcolatori, parallelo al corso di LPR.
- Documentazione on line (API) di Java.
- Materiale di consultazione
- Esmond Pitt, Fundamental Networking in Java, ISBN 1-84628-030-3, Springer Verlag, 2005
- Bruce Eckel, Thinking in JAVA, Volume 3 - Concorrenza e interfacce grafiche, Pearson Education Italia, 2006
- M.Hughes, M. Shoffner, D.Hammer, Java Network Programming, http://www.libreriauniversitaria.it/java-network-programming-merlin-hughes/book/9781884777493
- K.Calvert, M.Donhaoo, TCP/IP Sockets in JAVA, Practical Guide for Programmers
- Per i costrutti di base:
- Bruni, Corradini, Gervasi - Programmazione in Java
- Cay Horstmann – Concetti di Informatica e Fondamenti di Java 2
- Pagine del corso di Laboratorio di Introduzione alla Programmazione
- Esercizi
- La pagina degli esercizi verrà regolarmente aggiornata con gli esercizi proposti per le esercitazioni in aula H, e eventualmente con soluzioni proposte.
- FAQ (Frequently Asked Questions)
- Sulla pagina delle FAQ verranno pubblicate le risposte alle domande più frequenti e significative, riguardo ai contenuti del corso, alle esercitazioni e al progetto finale.
Ambiente di sviluppo
Ai fini del corso la versione di Java da utilizzare è la 1.5. Si può ovviamente utilizzare la più recente 1.6, senza però utilizzare caratteristiche “nuove”, salvo nei casi indicati esplicitamente dal docente.
L’ambiente di programmazione consigliato è Eclipse ma al fine del superamento dell’esame è fondamentale conoscere anche il funzionamento dell’ambiente standard Java da riga di comando.