====== Laboratorio di Programmazione di Rete - Anno accademico 2009/2010 - Corso A ====== Docente: **[[http://www.di.unipi.it/~gervasi|Vincenzo Gervasi]]** Assistenza in laboratorio: **Giacomo Baldi** ===== Informazioni generali ===== * **Impegno:** 6 CFU tra teoria ed laboratorio. * **Orario delle lezioni:** ^ Giorno ^ Orario ^ Aula ^ Tipo ^ | Lunedì | 14--16 |H-Lab |Laboratorio (I turno) | | Lunedì | 16--18 |H-Lab |Laboratorio (II turno) | | Martedì |14--16 | E |Lezione | * **Ricevimento studenti:** ogni Martedì alle 17.00, stanza 333 del Dipartimento di Informatica. In casi eccezionali, è possibile fissare un ricevimento su appuntamento via email. * **__Ricevimento straordinario:__** Martedì 2 Febbraio alle 17.00, aula M-Lab, si terrà un ricevimento collettivo in laboratorio; gli studenti sono invitati a testare i loro progetti in preparazione alla "gara" del 5 Febbraio. ===== Modalità di esame ===== L'esame prevede lo svolgimento di un __progetto__, seguito (in caso di esito positivo) da un __orale__. Per ogni a.a. sono previsti tre progetti, uno per sessione; per ogni progetto sono previsti tre turni di orali. Se il progetto viene ritenuto sufficiente, si viene ammessi all'orale; in caso di esito negativo occorre invece svolgere il progetto successivo. In caso di esito negativo dell'orale, è possibile ripetere //il solo orale// entro i tre turni previsti per la sessione. Trascorsi i tre turni senza che si sia superato l'orale, sarà necessario svolgere un nuovo progetto. ==== Primo progetto ==== Il primo progetto va consegnato **entro le ore 24:00 del 31 Gennaio 2010**, con le modalità indicate nella pagina del [[progetto]] stesso. === Primo turno === La "gara" pubblica, con il test concorrente di tutti i progetti, si terrà **il 5 Febbraio 2010 alle ore 14:00 in aula M-Lab**. Si noti che il codice usato per la gara deve essere conforme a quello consegnato, pena la nullità della prova. È disponibile l'elenco delle [[consegne ricevute]] nonché l'[[esito della gara]]. Gli studenti ammessi all'[[orale#Date per il primo turno di orali|orale]] devono contattare il docente per fissare una data, secondo la tabella pubblicata sulla pagina degli orali. === Secondo turno === Il test del progetto, per gli studenti che non avessero partecipato al primo turno, si terrà **il 24 Marzo 2010 alle ore 18:00 in aula H-Lab**. Si noti che il codice usato per il test deve essere conforme a quello consegnato, pena la nullità della prova. Possono partecipare all'[[orale#Date per il secondo turno di orali|orale]] del secondo turno tutti coloro che sono stati ammessi all'orale ma non hanno ancora superato l'esame. Gli studenti ammessi devono contattare il docente per fissare una data, secondo la tabella pubblicata sulla pagina degli orali. === Terzo turno === Possono partecipare all'[[orale#Date per il terzo turno di orali|orale]] del terzo turno tutti coloro che sono stati ammessi all'orale ma non hanno ancora superato l'esame. Gli studenti ammessi devono contattare il docente per fissare una data, secondo la tabella pubblicata sulla pagina degli orali.  ==== Secondo progetto ==== Il secondo progetto va consegnato **entro le ore 24:00 del 21 Giugno 2010**, con le modalità indicate nella pagina del [[progetto2|Progetto]] stesso. === Primo turno === La "gara" pubblica, con il test concorrente di tutti i progetti, si terrà **il 24 Giugno 2010 alle ore 14:00 in aula M-Lab**. Si noti che il codice usato per la gara deve essere conforme a quello consegnato, pena la nullità della prova. È disponibile l'[[consegne2|elenco delle consegne ricevute]] nonché l'[[esito2|esito della gara del 24 Giugno]]. Gli studenti ammessi all'[[orale2|orale]] devono inviare un'email al docente per prenotare una data fra quelle disponibili. === Secondo turno === Il test del progetto, per gli studenti che non avessero partecipato al primo turno, si terrà **il 23 Luglio 2010 alle ore 12:00 in aula H-Lab**. Si noti che il codice usato per il test deve essere conforme a quello consegnato, pena la nullità della prova. Possono partecipare all'orale del secondo turno tutti coloro che sono stati ammessi all'orale ma non hanno ancora superato l'esame. Gli orali si terranno dal 23 al 30 Luglio; gli studenti ammessi devono contattare il docente per email per fissare una data, dopo aver consultato la tabella relativa agli [[http://margot.di.unipi.it/mediawiki/index.php?title=Orali-turno1-progetto1-2009|orali del corso di LLS]] per identificare un orario libero. === Terzo turno === Visto l'esiguo numero di partecipanti attesi, gli orali del terzo turno si svolgeranno su appuntamento nelle prime due settimane di Settembre; gli studenti interessati a sostenere l'orale devono contattare il docente per email per fissare una data. ==== Terzo progetto ==== Il terzo progetto sarà gestito dal docente del corso B, Prof. A. Corradini, che svolgerà anche i relativi orali. Gli studenti sono invitati a consultare gli [[http://www.cli.di.unipi.it/doku/doku.php/lpr-b/lpr-b-09/start|avvisi del corso B]] per i dettagli. Si segnala in particolare che il terzo sarà l'ultimo progetto curato dagli attuali docenti; dalla sessione successiva, gli esami saranno svolti con i docenti di LPR dell'a.a. 2010/11. ==== Esami successivi ==== Contrariamente a quanto precedentemente annunciato, a causa dello spostamento del modulo di Laboratorio del corso di Reti al II semestre per l'a.a. 2010/2011, verrà erogato un quarto progetto nel periodo Gennaio-Febbraio 2011. Gli studenti sono invitati a consultare gli [[http://www.cli.di.unipi.it/doku/doku.php/lpr-b/lpr-b-09/start|avvisi del corso B]] per i dettagli. ===== Materiale didattico ===== **Libri di Testo** * E. Pitt, ** Fundamental Networking in Java**, ISBN 1-84628-030-3, Springer Verlag, 2005 * B. Eckel, ** Thinking in JAVA, Volume 3 - Concorrenza e interfacce grafiche**, Pearson Education Italia, 2006 * Lucidi del Corso **Testi di Consultazione** * Harold, **JAVA Network Programming** 3nd edition O'Reilly, 2004. * K. Calvert, M. Donhaoo, **TCP/IP Sockets in JAVA, Practical Guide for Programmers** **Costrutti di base di JAVA:riferimenti ** * R. Bruni, A. Corradini, V. Gervasi **Programmazione in Java**, ISBN 978-88-503-2661-7, Apogeo * C. Horstmann, **Concetti di Informatica e Fondamenti di Java 2** * [[http://projects.cli.di.unipi.it/LIP/|Corso di LIP: Fondamenti di JAVA]] =====Registro delle lezioni===== Il [[http://unimap.unipi.it/registri/printregistriNEW.php?re=30034:::&ri=361|Registro ufficiale]] delle lezioni del corso è gestito dal sistema [[http://unimap.unipi.it|Unimap]]. Di seguito è invece fornito il materiale presentato a lezione: ^ Giorno ^ Argomenti ^ Riferimenti ^ Lucidi |22/9/2009 |Introduzione al Corso, Thread Programming in JAVA| {{:lpr-a:01-threads.pdf|Lezione 1}} | |28/9/2009 |Laboratorio: Thread| {{:lpr-a:01es_-_threads.pdf|Esercizi 1}} | |30/9/2009 |Ancora sul multithreading, Thread pooling| {{:lpr-a:02-threadpooling.pdf|Lezione 2}} | |5/10/2009 |Laboratorio: Thread e Thread pooling| {{:lpr-a:02es_-_threadpooling.pdf|Esercizi 2}} | |6/10/2009 |Ancora sul multithreading, sincronizzazione fra thread| {{:lpr-a:02b-callablefuture.pdf|Lezione 2b}}, {{:lpr-a:03-threadsynchronization.pdf|Lezione 3}} | |12/10/2009 |Laboratorio: Future e Callable, sincronizzazione fra thread| {{:lpr-a:02bes-callablefuture.pdf|Esercizi 2b}}, {{:lpr-a:03es-threadsynchronization.pdf|Esercizi 3}}| |13/10/2009 |Indirizzi IP e URL| {{:lpr-a:04-inetaddressesurl.pdf|Lezione 4}} | |19/10/2009 |Laboratorio: Indirizzi IP e URL| {{:lpr-a:04es-inetaddressesurl.pdf|Esercizi 4}}| |20/10/2009 |Protocollo UDP: Socket e Datagram| {{:lpr-a:05-udp-sockets.pdf|Lezione 5}}| |26/10/2009 |Laboratorio: Protocollo UDP: Socket e Datagram| {{:lpr-a:05es-udp-sockets.pdf|Esercizi 5}}| |27/10/2009 |Protocollo UDP: DatagramPacket| {{:lpr-a:05b-udp-packets.pdf|Lezione 5b}}| |9/11/2009 |Laboratorio: Protocollo UDP: DatagramPacket| {{:lpr-a:05bes-udp-packets.pdf|Esercizi 5b}}| |10/11/2009 |Protocollo TCP: Socket e stream| {{:lpr-a:06-tcp-streamsockets.pdf|Lezione 6}}| |16/11/2009 |Laboratorio: Protocollo TCP: Socket e stream| {{:lpr-a:06es-tcp-streamsockets.pdf|Esercizi 6}}| |17/11/2009 |Protocollo TCP: Socket e serializzazione| {{:lpr-a:07a-tcp-sockets-multicast.pdf|Lezione 7a}}| |23/11/2009 |Laboratorio: Protocollo TCP: Socket e serializzazione| {{:lpr-a:07aes-tcp-socketsserializzazione.pdf|Esercizi 7a}}| |24/11/2009 |Comunicazioni multicast|{{:lpr-a:07b-tcp-sockets-multicast.pdf|Lezione 7b}} | |30/11/2009 |Laboratorio: Comunicazioni multicast| {{:lpr-a:07bes-tcp-sockets-multicast.pdf|Esercizi 7b}}| |01/12/2009 |Remote Method Invocation| {{:lpr-a:08-rmi.pdf|Lezione 8}} | |07/12/2009 |Laboratorio: Esercitazione di recupero| - | |14/12/2009 |Laboratorio: Remote Method Invocation| {{:lpr-a:08es-rmi.pdf|Esercizi 8}} | |15/12/2009 |Remote Method Invocation e presentazione del progetto| {{:lpr-a:09-rmi-callback.pdf|Lezione 9}}, {{:lpr-a:10-miscellanea.pdf|Miscellanea}}, [[Progetto]]| ===== Riferimenti ai corsi tenuti negli anni accademici precedenti ===== * [[http://www.di.unipi.it/~ricci/labprogrete0607pisa.html|Anno Accademico 2006-2007]] * [[lpr0708|Anno Accademico 2007-2008]] * [[lpr0809|Anno Accademico 2008-2009]]