Questa è una vecchia versione del documento!
Indice
LPR-B - A.A. 2009-10
Avvisi
Il secondo progetto, relativo alla sessione estiva di esami, verrà pubblicato il 10 maggio 2010, e la scadenza sarà 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.
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.