Login: password:
Forgot your password?

Linguaggi di Programmazione Modulo 1 - a.a. 2019/20

Informazioni generali | Materiale didattico | Esami 2020
Materiale didattico
GRUPPO A : Matematici (matricola dispari) + Informatici Matricola divisibile per 3 + Informatici Matricola divisibile per 8
GRUPPO B: tutti gli altri informatici

Commento generale
Qui trovate il materiale presentato in classe, ma attenzione:

Le slides NON sono un libro!

Sono una risorsa pensata per facilitare le presentazioni in classe, e per dare un riferimento a quanto si è discusso.

NON sono necessariamente sempre autoconsistenti.

Studiare SOLO sulle slides non è sufficente! Occorre SEMPRE fare riferimento a quanto detto in classe.

Suggerimento: questo non vale solo per questo corso, ma in genere è vero nella maggior parte dei casi.

Calendario delle lezioni e materiale didattico


 1 - Mer 19 febbraio 8:30 aula A101 - 1 - Prima lezione
Introduzione al corso. Richiami di C. Il modello di memoria, allocazione automatica. Storia di Java, Introduzione alla Java Virtual Machine.
2 - Ven 21 febbraio 10:30 aula B107 -  Lezione 2
Richiami di C: strutture, puntatori, allocazione dinamica di memoria. Costruzione di una pila (stack) di dimensione variabile in C.
  • Slides
  • Video (nota: lezione dello scorso anno, per problemi di registrazione)
3a - ON LINE - Seguire il video della lezione 2 (link sopra) a partire dal tempo 1:20:00 (contiene una ventina di minuti non presenti nella lezione svolta in classe il 21 febbraio).

3b - ON LINE
La Pila in Java. Classi e oggetti. Attributi e metodi. Java e i puntatori. Garbage collection. Package e information hiding. String class.

E1.b - 
lunedi 2 marzo - Prima esercitazione (docente: Andrea Rosani): SOLO GRUPPO B (vedi sopra)

NOTA: ALLE ESERCITAZIONI E1a e E1b DOVETE ARRIVARE CON IL VOSTRO LAPTOP, SUL QUALE DOVETE AVER GIA' SCARICATO
NETBEANS 8.2 (NON ALTRE VERSIONI!) - IL BUNDLE  "JAVA SE" E' SUFFICIENTE. - https://netbeans.org/downloads/8.2/
NON SERVE AVERLO GIÀ ANCHE INSTALLATO.

4 - Mercoledi 4 marzo  8:30 aula A101 - Lezione 4
Stesse slides della lezione 3b

5 - Venerdì 6 marzo ON LINE - Lezione 5
E1.a - E2 - Esercitazione -  lunedi 9 marzo e mercoledi 11 marzo.
  • Per il SOLO GRUPPO A, mercoledi 11 marzo ore 8:30 recuperiamo l'esercitazione 1a (Slides). Sperimenteremo una modalità on-line interattiva. Avrete istruzioni tramite e-mail/Piazza) Nel frattempo, provate ad installare da soli Netbeans se non lo avete ancora fatto. Di seguito trovate alcune indicazioni sui probelmi più frequenti occorsi durante l'installazione con il gruppo B.
  • Ultima versione slides di Rosani
  • Siides relative ai possibili problemi. 
  • Per TUTTI: una volta installato Netbeans (il gruppo B lo ha già fatto in classe, il gruppo A provi autonomamente), usiamo in autonomia le ore che abbiamo a disposizione (formalmente lunedi 9 13:30-15:30) per seguire in video una lezione di laboratorio che estende la 1. Gli studenti del gruppo B non dovrebbero avere problemi, quelli del gruppo A possono provare anche subito (appena installato NetBeans), oppure eventualmente attendere DOPO la lezione di mercoledi. La lezione è qui:
  • Slides
  • Video
6 - Venerdì 13 marzo ON LINE - Lezione 6
Overloading e Overriding (slides del 1 marzo).  Costruttori. Classi astratte. Mini introduzione alla grafica in Java con JavaFX.
7- Mercoledi 18 marzo ON LINE - Lezione 7
Polimorfismo, Principio di sostituzione di Liskov, dynamic binding
8 - Venerdì 20 marzo ON LINE - Lezione 8
Upcast e Downcast, Dynamic binding, instanceOf, User  Input con e senza grafica, Conversione di stringhe in numeri, Gestione degli errori (try-catch-finally). Ancora su JavaFX. E3a - Lunedì 23 marzo ON LINE SINCRONO, ORE 14:00 - Esercitazione SOLO GRUPPO A (vedi qui)
Proviamo a fare una esercitazione in sincrono - invierò l'invito via mail entro domenica.
PREPARATEVI SVOLGENDO PRIMA DELL'ESERCITAZIONE L'ESERCIZIO P9.4 che trovate nel seguente file:
http://www.apogeoeducation.com/aggiornamenti/9788891639431/3943_Progetti_prog.pdf (Esercizi tratti dal libro di Horstmann).

E3b - Mercoledì 25 marzo ON LINE SINCRONO, ORE 9:00 - Esercitazione SOLO GRUPPO B (vedi qui)
Proviamo a fare una esercitazione in sincrono - invierò l'invito via mail entro martedì.
PREPARATEVI SVOLGENDO PRIMA DELL'ESERCITAZIONE L'ESERCIZIO P9.4 che trovate nel seguente file:
http://www.apogeoeducation.com/aggiornamenti/9788891639431/3943_Progetti_prog.pdf (Esercizi tratti dal libro di Horstmann).

9 - Venerdì 27 marzo ON LINE - Lezione 9
Interfacce. Collections.
E4 - Mercoledi 1 aprile ON LINE - Esercitazione 4
Numeri casuali in Java. Collections.shuffle().
Parte teorica breve - c'e' poi una esercitazione da svolgere autonomamente - sessione asincrona, non con zoom.
10- Venerdì 3 aprile ON LINE - Lezione 10
Uguaglianza e Identità.
11 - Mercoledì 8 aprile ON LINE - Lezione 11
Hashcode, Comparazione
E5 - Venerdì 10 aprile ON LINE - Esercitazione 4, parte 2
Parte 1: Proseguire l'esercitazione con la nuova parte (ultime due slides)
Parte 2: Svolgere l'esercizio P13.1 che trovate nello stesso file dell'esercitazione 3a/3b.

E6 - Esercitazione
Discussione via Zoom delle esercitazioni fatte in autonomia (E4-E5). L'invito con le credenziali sarà inviato martedi 13.
- Mercoledi 15 aprile ON LINE SINCRONO, ORE 9:00   SOLO GRUPPO A (vedi qui)
- Venerdì 17 aprile ON LINE SINCRONO, ORE 11:00  SOLO GRUPPO B (vedi qui)
12 - Settimana del 14-17 aprile ON LINE - Lezione 12
Mercoledi e venerdi' ci sono esercitazioni on line per i due gruppi. Nelle restanti due ore per ciascun gruppo, questa è la lezione da seguire.
Modificatori di visibilità, static.
Una lista di domande per verificare la vostra comprensione degli argomenti trattati.
13 - Mercoledì 22 aprile ON LINE - Lezione 13
Wrappers e autoboxing, Javadoc. Esempio riassuntivo (tombola)
14 - Venerdì 24 aprile ON LINE - Lezione 14
UML. Esempio riassuntivo (tombola). Pattern Publisher-Subscriber. Frameworks
15 - Lunedi 27 aprile ON LINE - Lezione 15
Eventi in JavaFX. Classi interne anonime.

16 - Mercoledì 29 aprile ON LINE - Lezione 16
Layout e posizionamento delle componenti in JavaFX - enum - soluzione esercitazione 3

E7 - Esercitazione - Mercoledi 6 maggio (Gruppo A), ore 9 e venerdi 8 maggio (Gruppo B), ore 10:40.
Discussione via Zoom. E' richiesto di provare in autonomia a svolgere il seguente esercizio PRIMA di partecipare alla discussione. L'invito con le credenziali sarà inviato prima dell'inizio della lezione.

17 - Mercoledi 13 maggio ON LINE - Lezione 17
Keyboard events. Il modello degli eventi.
18 - Venerdi 15 maggio ON LINE - Lezione 18
Argomenti: Tilepane e Gridpane, strutturazione del codice, esame. NOTA: nella lezione si parla di una sperimentazione, che quest'anno non ha luogo.
E8 - Esercitazione - Mercoledi 20 maggio (Gruppo A), ore 9 e venerdi 22 maggio (Gruppo B), ore 10:40.
Discussione via Zoom. E' richiesto di provare in autonomia a svolgere i'esercizio sulla Slot Machine proposto nella lezione 18 PRIMA di partecipare alla discussione. La soluzione dell'esercizio è reperibile qui sotto, ma vi raccomando si fare lo sforzo di arrivare in fondo all'esercizio PRIMA di guardarla!
AC1 - Approfondimenti e complementi
Il programma del corso è ora completo: all'esame verrà richiesto quanto fatto fin qui. Tuttavia vi sono un paio di altri argomenti che è interssante trattare, e vi propongo due lezioni addizionali (facoltative) in proposito.
La prima è in questa settimana:
si tratta di come costruire una copia uguale di un oggetto dato. Ha una prima parte relativa al C++ (nel quale l'argomento è di importanza fondamentale: copy constructor) ed una seconda che discute lo stesso argomento dal punto di vista di Java (clone-cloneable): in questo linguaggio i termini della questione sono assai piu' semplici, ma ciononostante è importante prenderli in considerazione.
 AC2 - Approfondimenti e complementi
Argomenti: lamdba expressions, generics (ignorare quanto detto sull'uso di "lodebox": funzionava solo in presenza).




Esempio della prima parte
(con risposte)


Altri esempi della prima parte:


Testo e correzione di un appello del 2014, seconda parte


Testo e correzione del primo appello 2016, seconda parte:
Testo e correzione del secondo appello 2016, seconda parte.
Come soluzione propongo il compito di Roberto Negro, fatto davvero bene - complimenti! - al quale ho apportato un solo un paio di piccole correzioni.




Informazioni generali | Materiale didattico | Esami 2020

powered by segue
segue_logo