Avvisi:
[03apr2018] Dal 4 Aprile 2018 le lezioni saranno tenute dal Prof. Romani. Il materiale didattico del Prof. Romani è disponibile in QUESTA PAGINA.
[06mar2018] La lezione del 14 marzo è ANNULLATA (causa impegno del docente).
[19feb2018] Domani prima lezione del secondo semestre alle 8.30 in Lab. H!
[19dic2017] I RISULTATI della prova in itinere sono disponibili in questa pagina
[15dic2017] Disponibile il TESTO e la SOLUZIONE della prova in itinere nella sezione Esami di questa pagina web
[14dic2017] La prova in itinere di domani, 15 dicembre, si terrà alle 14.00 in AULA E.
[12dic2017] La lezione di recupero di quella annullata ieri si terrà il 13/12/2017 dalle 11.00 alle 12.30 in aula F1.
[10dic2017] La lezione di domani 11 dicembre è ANNULLATA! a causa della sospensione della didattica di tutto l'Ateneo per allerta meteo. Visto l'approssimarsi della prova in itinere si cercherà di recuperare la lezione entro la settimana. La data precisa della lezione di recupero non è ancora stata fissata. Tutti gli studenti interessati sono invitati a indicare la propria disponibilità rispetto ad alcune date possibili tramite QUESTO DOODLE. La lezione di recupero sarà fissata sulla base delle disponibilità espresse incrociate con le disponibilità di aule.
[26nov2017] Nella sezione Esami di questa pagina web ono disponibili le DISPENSE e i TESTI delle prove in itinere degli scorsi anni
[25set2017] Prima lezione in Laboratorio H!
Breve descrizione del corso:
Il corso ha lo scopo di preparare gli studenti all'uso di un linguaggio di programmazione orientato agli oggetti per la realizzazione di applicazioni informatiche. Alla fine del corso gli studenti avranno acquisito le basi necessarie al corretto sviluppo di programmi, nonché alla loro compilazione, esecuzione e debugging. Il linguaggio di programmazione utilizzato è Java, di cui verranno introdotti i concetti essenziali. L'ambiente di sviluppo è Eclipse, disponibile per diverse piattaforme.
Buona parte delle lezioni consisteranno in esercitazioni in cui si utilizzeranno le tecnologie descritte.
Torna all'inizioCalendario del corso
Il modulo di Programmazione Java ha un carico didattico di 6 CFU a cui si aggiungono 3 CFU del modulo di Esperienze di Programmazione tenuto dal Prof. Romani. Questa l'organizzazione del corso:
- 3 CFU svolti nel primo semestre;
- 3 CFU svolti all'inizio secondo semestre (in parallelo al modulo di Analisi di Dati tenuto dal Prof. Turini).
- 3 CFU tenuti dal Prof. Romani nella seconda parte del secondo semestre (in parallelo al modulo di Analisi di Dati tenuto dal Prof. Turini).
Orario delle lezioni (secondo semestre):
- Martedì: 8.30-10.00 (Laboratorio H)
- Mercoledì: 8.30-10.00 (Laboratorio H)
Ricevimento docente:
- Martedì 14.00-16.00
- Oppure: su appuntamento (da concordare via email)
Diario delle lezioni:
- Lezione 1 (lun. 25 settembre 2017, ore 08.30)
- Introduzione al corso. (slides)
Background: parte I - Architettura di un elaboratore e rappresentazione binaria dell'informazione (slides) - Lezione 2 (lun. 2 ottobre 2017, ore 08.30)
- Background: parte II - Linguaggi di programmazione e algoritmi (cont.lez.prec.)
- Lezione 3 (lun. 9 ottobre 2017, ore 08.30)
- Introduzione a Java (slides)
Introduzione a Eclipse (note) - Lezione 4 (lun. 16 ottobre 2017, ore 08.30)
- Espressioni, variabili e input dall'utente (slides)
LAB: Esercitazione 1 (testo) - Lezione 5 (lun. 23 ottobre 2017, ore 08.30)
- Tipi primitivi di Java (slides)
Istruzioni condizionali ed espressioni booleane (slides)
LAB: Esercitazione 2 (testo)
LAB: Esercitazione 3 (testo) - Lezione 6 (lun. 30 ottobre 2017, ore 08.30)
- Istruzioni condizionali ed espressioni booleane (cont. lez. prec.)
- Lezione 7 (lun. 6 novembre 2017, ore 08.30)
- Blocchi e cicli (slides)
LAB: Esercitazione 4 (testo) - Lezione 8 (lun. 13 novembre 2017, ore 08.30)
- Programmazione procedurale: metodi ausiliari (slides)
LAB: Esercitazione 5 (testo, soluzione parziale esercizio 5) - Lezione 9 (lun. 20 novembre 2017, ore 08.30)
- Stringhe e altre classi della Java API(slides)
LAB: Esercitazione 6 (testo) - Lezione 10 (lun. 27 novembre 2017, ore 08.30)
- Stringhe e altre classi della Java API(cont.lez.prec.)
Array (slides)
LAB: Esercitazione 7 (testo)
Presentazione prova in itinere (dispense e testi delle prove degli scorsi anni disponibili nella sezione Esami) - Lezione 11 (lun. 04 dicembre 2017, ore 08.30)
- Schemi di programmi iterativi (slides)
LAB: Esercitazione 7bis (testo) - Lezione 12 (mer. 13 dicembre 2017, ore 11.00)
- Esercitazione per la prova in itinere
- Lezione 13 (ven. 15 dicembre 2017, ore 14.00 -- AULA E)
- Prova in itinere
LEZIONI DEL SECONDO SEMESTRE - Lezione 14 (mar. 20 febbraio 2018, ore 08.30)
- Introduzione alla programmazione orientata agli oggetti (slides)
- Lezione 15 (mer. 21 febbraio 2018, ore 08.30)
- Gestione della memoria nella programmazione orientata agli oggetti (slides, Codice esempio complesso)
LAB: Esercitazione su Programmazione a Oggetti (testo) - Lezione 16 (mar. 27 febbraio 2018, ore 08.30)
- Gestione della memoria nella programmazione orientata agli oggetti (cont. lez. prec.)
LAB: Seconda esercitazione su Programmazione a Oggetti (testo) - Lezione 17 (mer. 28 febbraio 2018, ore 08.30)
- Metodi, costruttori, overloading e altro... (slides)
- Lezione 18 (mar. 6 marzo 2018, ore 08.30)
- Packages (slides)
Ereditarietà (slides) - Lezione 19 (mer. 7 marzo 2018, ore 08.30)
- LAB: Esercitazione 9 (testo, soluzione)
- Lezione 20 (mar. 13 marzo 2018, ore 08.30)
- Ereditarietà, tipi e gerarchie (slides)
LAB: Uno sguardo a Greenfoot
LAB: Esercitazione 9 (testo)
- Lezione 21 (mar. 20 marzo 2018, ore 08.30)
- Ereditarietà, tipi e gerarchie (cont.lez.prec.)
LAB: Esempio complesso - simulatore di gioco da tavolo (file java,possibili estensioni)
Vettori (slides)
LAB: Esercitazione 10 (testo) - Lezione 22 (mar. 21 marzo 2018, ore 08.30)
- Eccezioni (slides)
Input/Ouput su file e serializzazione di oggetti (slides, Codice esempio serializzazione) - Lezione 23 (mar. 27 marzo 2018, ore 8.30)
- Graphical User Interface (GUI) - Cenni (slides, Dispensa, Esempi: ContatoreGUI, Addizionatore, Finestra1, Scrollabile)
Regole per l'esame: progetto e prova orale (slides)
Elenco degli argomenti per la prova orale (elenco) - Lezione 24 (mer. 28 marzo 2018, ore 8.30)
- Ricevimento collettivo
DAL 4 APRILE LE LEZIONI CONTINUERANNO CON IL PROF. ROMANI PAGINA CON IL MATERIALE DELLE LEZIONI DI ROMANI
Materiale didattico:
Testi consigliati (a scelta):
- Savitch. Programmazione di base e avanzata con Java. PEARSON, Prentice Hall.
- Horstmann. Concetti di informatica e fondamenti di Java. APOGEO.
- Bruni, Corradini, Gervasi. Programmazione in Java. APOGEO.
Inoltre, come letture di approfondimento si suggeriscono:
- Ferragina, Luccio. Il pensiero computazionale. Dagli algoritmi al coding. Il Mulino.
- Grescenzi, Gambosi, Grossi, Rossi. Strutture dati e algoritmi. Pearson.
Link Utili:
- Pagina di download di Java (versione JDK)
- Pagina di download di Eclipse
- Java API Specifications Ver. 8
- Java API Specifications Ver. 9 (ultima versione)
- Convenzioni per la scrittura di programmi Java (in Inglese)
- Breve guida al sistema MS-DOS
- Breve guida al sistema Linux (bash shell) -- N.B. la prima parte è obsoleta!
- Dispensa di Introduzione alle Interfacce Grafiche (GUI) in Java
Esami:
L'esame consisterà nello svolgimento di un progetto in Java (in piccoli gruppi) e in una prova orale (discussione del progetto + domande/esercizi).
Il progetto può essere richiesto in qualunque periodo dell'anno, dopo il termine delle lezioni del modulo. Dal momento della richiesta, il progetto dovrà essere svolto entro un mese circa. A seguire si terrà la prova orale su appuntamento (senza necessariamente rientrare nei periodi delle sessioni d'esame).
Gli studenti che frequentano il corso potranno sostenere una prova in itinere (scritta) prima di Natale, che sostituirà parte dell'orale.
[Istruzioni esame] Le istruzioni dettagliate per lo svolgimento del progetto d'esame e della prova orale sono disponibili qui
[Elenco argomenti orale] L'elenco degli argomenti per la prova orale è disponibile qui
[Importante] Per la preparazione della prova in itinere è disponibile questa prima dispensa che contiene numerosi esercizi svolti. Inoltre, il testo e la soluzione della prova in itinere degli ultimi tre anni sono disponibili qui:
- Compito A - 2013, Compito B - 2013, Soluzioni 2013
- Compito A - 2014, Compito B - 2014, Soluzioni 2014
- Compito A - 2015, Compito B - 2015, Soluzioni 2015
- Compito A - 2016, Compito B - 2016, Soluzioni 2016
Altri esercizi (senza soluzione) sono inoltre disponibili in questa seconda dispensa.
[TESTO 2017] Il testo della prova in itinere 2017 è disponibile qui: Compito
[SOLUZIONI 2017] Le soluzioni della prova in itinere 2017 sono disponibili qui: Soluzioni 2017
Torna all'inizio