====== LPR-B - A.A. 2009-10====== [[..:|Torna alla pagina principale di LPR-B]] **Docenti**: [[http://www.di.unipi.it/~andrea/|Andrea Corradini]] e [[http://www.di.unipi.it/~daniele/|Daniele Sgandurra]] ===== Avvisi ===== **[16 dicembre 2010]** E' stato pubblicato il testo del **[[progetto4|quarto e ultimo progetto]]**, con le relative istruzioni. La scadenza è fissata per **Lunedì 31 gennaio 2011 alle ore 24:00**: non saranno concesse proroghe. Sia gli studenti del Corso A che quelli del Corso B dovranno inviare il progetto, secondo le istruzioni, al Prof. Corradini. Gli studenti che non sosterranno LPR con questo progetto potranno mutuarlo dal modulo di Laboratorio del corso di RCL, che verrà erogato nel secondo semestre dell'A.A. 2010/11. **[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: [[http://www.di.unipi.it/~andrea/Didattica/LPR09/Progetto-LPR09-3.pdf|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]** **[[orali2|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 **[[lpr-a/progetto2|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 . ===== 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 **[[progetto|primo progetto]]**, pubblicato il 18/12/2009, la scadenza è stata il 31/01/2010. Il progetti sottomessi sono stati testati collegialmente in una **[[orali1|gara]]** svoltasi il 5/02/2010, e gli orali si sono svolti nei giorni successivi. Il **[[lpr-a/progetto2|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 **[[orali2|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|01-Threads.pdf}}, primi 9 lucidi| | 2 | Mer 23/09 | 9-13 | Esercitazioni | Lab M | Test di Ingresso |[[esercizi#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|01-Threads.pdf}} tutto e {{02-ThreadPoolingCallable.pdf|02-ThreadPoolingCallable.pdf}} primi 19 lucidi | | 4 | Mer 30/09 | 9-13 | Esercitazioni | Lab M | Esercizi su Task e Thread | [[esercizi#Tasks e Threads|Link agli esercizi]] (con alcune soluzioni)| | 5 | Mar 6/10 | 14-16 | Teoria | C | Pool di Thread |{{02-ThreadPoolingCallable.pdf|02-ThreadPoolingCallable.pdf}} e {{03-ThreadSynchronization.pdf|03-ThreadSynchronization.pdf}} primi 12 lucidi | | 6 | Mer 7/10 | 9-13 | Esercitazioni | Lab M | Esercizi su Pool di Thread | [[esercizi#Thread Pool|Link agli esercizi]] (con alcune soluzioni)| | 7 | Mar 13/10 | 14-16 | Teoria | **E** | Indirizzi IP, Java API per URL|{{04-InetAddressesUrl.pdf|04-ProgReteIndirizziIP.pdf}} | | 8 | Mer 14/10 | 9-13 | Esercitazioni | Lab M | Esercizi su Indirizzi IP e Callable | [[esercizi#Indirizzi IP e Callable|Link agli esercizi]] (con alcune soluzioni)| | 9 | Mar 20/10 | 14-16 | Teoria | C | Sincronizzazione di Thread |{{03-ThreadSynchronization.pdf|03-ThreadSynchronization.pdf}} | | 10 | Mer 21/10 | 9-13 | Esercitazioni | Lab M | Esercizi su Sincronizzazione di Thread | [[esercizi#Sincronizzazione di Thread|Link agli esercizi]]| | 11 | Mar 27/10 | 14-16 | Teoria | C | Il protocollo UDP: Socket e Datagram|{{05-UDP-Sockets.pdf|05-UDP-Sockets.pdf}} | | 12 | Mer 28/10 | 9-13 | Esercitazioni | Lab M | Esercizi su UDP, Sockets e Datagrams | [[esercizi#Il protocollo UPD|Link agli esercizi]]| | 13 | Mar 10/11 | 14-16 | Teoria | C | UDP: Costruzione di pacchetti, invio di oggetti |{{06-UDP-Packets.pdf|06-UDP-Packets.pdf}} | | 14 | Mer 11/11 | 9-13 | Esercitazioni | Lab M | Esercizi con UDP su Serializzazione, MiniTalk e File Transfer | [[esercizi#Il protocollo UPD (2)|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|07-TCP-StreamSockets.pdf}}| | 16 | Mer 18/11 | 9-13 | Esercitazioni | Lab M | Esercizi su TCP (**Sospensione per Assemblea dalle 10 alle 12 **) | [[esercizi#Il Protocollo TCP|Link agli esercizi]] | | 17 | Mar 24/11 | 14-16 | Teoria | C | Sockets TCP e Multicast | {{08-TCP-Sockets-Multicast.pdf|08-TCP-Sockets-Multicast.pdf}} | | 18 | Mer 25/11 | 11-13 | Esercitazioni | Lab M | Altri esercizi su TCP e su Multicast | [[esercizi#Protocollo TCP e multicast|Link agli esercizi]] | | 19 | Mar 1/12 | 14-16 | Teoria | C | Remote Method Invocation | {{09-RMI.pdf|09-RMI.pdf}}| | 20 | Mer 2/12 | 11-13 | Esercitazioni | Lab M | Esercizi su RMI | [[esercizi#Remote Method Invocation|Link agli esercizi]] | | | Mar 8/12 | | Festivo | | | | | 21 | Mer 9/12 | 9-11 | Teoria | **Aula N1** | RMI e Callback | {{10-RMI-Callback.pdf|10-RMI-Callback.pdf}} | | 22 | Mer 9/12 | 11-13 | Esercitazioni | Lab M | Esercizi su RMI e Callback | [[esercizi#RMI e Callback|Link agli esercizi]] | | 23 | Mar 15/12 | 14-15 | Teoria | C | Collezioni sincronizzate, Deadlock | {{11-CollezSynchr.pdf|11-CollezSynchr.pdf}} | | | | 15-16 | Teoria | **E** | **Presentazione progetto** | | ===== Materiale didattico ===== * [[start#lezioni|Lucidi delle lezioni]] * 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. * [[http://java.sun.com/javase/6/docs/api/|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 - [[http://www.apogeonline.com/libri/9788850326617/scheda|Programmazione in Java]]** * **Cay Horstmann – Concetti di Informatica e Fondamenti di Java 2** * Pagine del corso di [[http://projects.cli.di.unipi.it/LIP/|Laboratorio di Introduzione alla Programmazione]] * **Esercizi** * La pagina degli [[esercizi|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|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 è [[http://www.eclipse.org/|Eclipse]] ma al fine del superamento dell’esame è fondamentale conoscere anche il funzionamento dell’ambiente standard Java da riga di comando. ===== ===== [[..:|Torna alla pagina principale di LPR-B]]