Programmazione ad Oggetti: differenze tra le versioni
(→News) |
|||
Riga 332: | Riga 332: | ||
È disponibile il [[ | È disponibile il [[Media:Tesina2324.pdf| testo della traccia]] da svolgere per l'anno accademico 2023/24. | ||
Chi decide di svolgere il progetto proposto dalla traccia, non ha bisogno di approvazione. | Chi decide di svolgere il progetto proposto dalla traccia, non ha bisogno di approvazione. | ||
Versione delle 19:03, 13 nov 2024
Questa pagina fornisce il materiale didattico e le informazioni relative all'insegnamento di Programmazione ad Oggetti (9 CFU) per il Corso di Laurea in Informatica e per l'insegnamento di Introduzione alla Programmazione ad Oggetti (6 CFU) a partire dall'AA 2008/2009.
Si veda questa pagina per informazioni su:
- Programmazione ad Oggetti (6 CFU - 2007/08)
- Linguaggi per la Programmazione ad Oggetti (6 CFU - fino al 2006/2007)
News
Ultime news
Le lezioni dell'AA 2024/25 si svolgeranno in presenza a partire dal 25/9/2024.
Vecchie news
2023/24
È disponibile la traccia per il progetto da presentare all'esame 2023/24.
Le lezioni dell'AA 2023/24 si svolgeranno in presenza a partire dal 27/9/2023.
2022/23
È disponibile la traccia per il progetto da presentare all'esame 2022/23. Le lezioni dell'AA 2022/23 si svolgeranno in presenza a partire dal 28/9/2022.
2021/22
È disponibile la traccia per il progetto da presentare all'esame 2021/22 Le lezioni dell'AA 2021/22 si svolgeranno in presenza.
2020/21
Per l'AA 2020/21 l'esame scritto è sostituito dalla consegna anticipata del progetto. È disponibile la traccia per il progetto da presentare all'esame Le lezioni dell'AA 2020/21 si svolgeranno in modalità a distanza tramite la piattaforma Dolly (https://dolly.fim.unimore.it/2020)
2019/20
È disponibile la traccia per il progetto da presentare all'esame La lezione di martedì 19/11/2019 si terrà alle 14 in aula L1.3. La lezione di venerdì 15/11/2019 non si terrà.
2017/18
È disponibile la traccia per il progetto da presentare all'esame Sono aperte le iscrizioni tramite ESSE3 al preppello scritto che si svolgerà il 18 dicembre 2017 alle ore 8.45 in Aula M1.4.
2016/17
È disponibile la traccia per il progetto da presentare all'esame
2015/16
È disponibile la traccia per il progetto da presentare all'esame La lezione di martedì 29 settembre 2015 si terrà in aula M1.3 (Aula III) dalle 14 alle 17 invece che in laboratorio Il 21/12/15 si terrà un pre-appello scritto; l'iscrizione avviene tramite ESSE3
2014/15
La lezione di martedì 9 dicembre si terrà in aula M2.5 (ex aula X matematica) dalle 14 alle 17 La mattina di lunedì 1 dicembre 2014 sono sospese le lezioni per l'inaugurazione dell'anno accademico È disponibile la traccia per il progetto da presentare all'esame Le lezioni di lunedì 24 novembre e mercoledì 26 novembre 2014 non si terranno a causa di un impegno all'estero del docente La lezione di martedì 30 settembre 2014 si terrà in aula M1.5 (ex aula IV)
2013/14
Il 9/12/13 si terrà un pre-appello scritto; l'iscrizione avviene tramite ESSE3 È disponibile la traccia per il progetto da presentare all'esame La lezione di lunedì 2/12/13 è spostata a martedì 2/12/13 al posto dell'esercitazione Le lezioni di lunedì 25/11/13 e mercoledì 27/11/13 non si terranno a causa di un impegno all'estero del docente La lezione di martedì 24/9/13 si terrà in laboratorio BASE alle ore 14
2012/13
Il 12/12/12 si terrà un pre-appello scritto; l'iscrizione avviene tramite ESSE3, ma chi ha problemi puo' mandare una email al docente entro il 9/12 È disponibile la traccia per il progetto da presentare all'esame La lezione di mercoledì 21 novembre sarà sostituita da Linguaggi Formali e Compilatori del prof. Leoncini. La lezione di martedì 2 ottobre si terrà in aula V. Le lezioni dell'AA 2012/13 inizieranno il 1° ottobre 2012 a causa di un impegno all'estero del docente.
2011/12
La lezione di mercoledì 7 dicembre si terrà regolarmente alle 11, l'ing. Elton Domnori terrà un seminario sulla programmazione dei dispositivi mobili È disponibile la tesina per l'AA 2011/12 Lunedì 5 dicembre si terrà il preappello scritto; è necessario iscriversi tramite ESSE3. La lezione di mercoledì 16 novembre è anticipata alle ore 9. Mercoledì 7 novembre non ci sarà lezione. Mercoledì 5 ottobre non ci sarà lezione. La lezione di martedì 27 settembre si terrà in aula V e NON in laboratorio. È stato definito l'orario delle lezioni. Le lezioni dell'AA 2011/12 inizieranno il 26 settembre 2011.
2010/11
È disponibile la tesina per l'AA 2010/11 Le lezioni del mercoledì si tengono in aula V. La lezione di martedì 21/12/10 si tiene in aula V Lunedì 20 dicembre 2010 alle ore 11 in aula V a Matematica si terrà un preappello valido per l'esame scritto; chi è interessato a partecipare, deve mandare una email al docente ENTRO venerdì 17/12 con nome, cognome e numero di matricola Le lezioni inizieranno l'11 ottobre 2010.
2009/10
L'esame scritto del 15 febbraio 2010 non si terrà per mancanza di iscritti Sono stati pubblicati i risultati del pre-appello scritto del 14/12/09 È disponibile una traccia del progetto da portare all'esame L'ultima lezione dell'AA 2009/10 si terrà il 15 dicembre 2009 Mercoledì 9 dicembre si terrà una esercitazione sull'esame scritto Lunedì 14 dicembre 2009 alle ore 11 in aula V a Matematica si terrà un preappello valido per l'esame scritto; chi è interessato a partecipare deve inviare una email al docente ENTRO giovedì 10 dicembre 2009; La lezione di lunedì 7 dicembre 2009 non si terrà La lezione di martedì 1° dicembre 2009 non si terrà L'esercitazione del 30 settembre 2009 non si terrà L'appello scritto del 15 luglio 2009 non si terrà in quanto non c'è nessun iscritto Venerdì 12 e sabato 13 giugno 2009 il sistema ESSE3 non sarà disponibile per iscriversi agli esami e neanche per compilare il questionario di valutazione Sono stati pubblicati i risultati del pre-appello scritto del 15/12/08 Sono state pubblicate le date degli appelli della sessione straordinaria 2008/2009 Sono disponibili alcuni esercizi per l'appello scritto Lunedì 15 dicembre 2008 si terrà un pre-appello scritto alle ore 11 in aula V a Matematica; per iscriversi contattare il docente I giorni 18 e 19 novembre 2008 non si svolgeranno le lezioni La prima esercitazione si terrà mercoledì 8 ottobre; quindi mercoledì 1 ottobre non ci sarà lezione Le lezione dell'AA 2008/09 inizieranno lunedì 29 settembre 2008
Informazioni sul docente
Dipartimento di Scienze Fisiche, Informatiche e Matematiche
Università di Modena e Reggio Emilia, Via Campi 213/B - 41125 Modena
Telefono 0592058320 - Fax 0592055216
Orario delle Lezioni
L'orario ufficiale è riportato qui: https://www.fim.unimore.it/site/home/didattica/calendario-didattico-e-orario-lezioni.html
Orario dell'AA 2023/24
Le lezioni dell'AA 2023/24 inizieranno il 25 settembre 2023 con il seguente orario:
- Meroledì dalle 11 alle 13 in aula L1.3 presso Fisica
- Giovedì dalle 14 alle 16 in aula L1.3 presso Fisica
- Venerdì dalle 11 alle 14 in aula L1.3 presso Fisica
Orario dell'AA 2022/23
Le lezioni dell'AA 2022/23 inizieranno il 28 settembre 2022 con il seguente orario:
- Meroledì dalle 11 alle 13 in aula L1.3 presso Fisica
- Giovedì dalle 14 alle 16 in aula L1.3 presso Fisica
- Venerdì dalle 11 alle 14 in aula L1.3 presso Fisica
Orario dell'AA 2021/22
Le lezioni dell'AA 2021/22 inizieranno il 20 settembre 2021 con il seguente orario:
- Martedì dalle 14 alle 16 in aula L1.3 presso Fisica
- Meroledì dalle 11 alle 13 in aula L1.3 presso Fisica
- Venerdì dalle 11 alle 14 in aula L1.3 presso Fisica
Orario dell'AA 2020/21
Le lezioni dell'AA 2020/21 inizieranno il 21 settembre 2020 con il seguente orario:
- Luned` dalle 14 alle 17 a distanza
- Meroledì dalle 11 alle 13 a distanza
- Venerdì dalle 11 alle 13 a distanza
Orario dell'AA 2019/20
Le lezioni dell'AA 2019/20 inizieranno il 23 settembre 2019 con il seguente orario:
- Martedì dalle 10 alle 12 in aula L1.3 presso Fisica
- Giovedì dalle 13 alle 16 in laboratorio BASE presso Matematica
- Venerdì dalle 12 alle 14 in aula L1.3 presso Matematica
Orario dell'AA 2018/19
Le lezioni dell'AA 2018/19 inizieranno il 24 settembre 2018 con il seguente orario:
- Lunedì dalla 9 alle 11 in aula M1.4 (ex aula V) presso Matematica
- Martedì dalle 14 alle 17 in laboratorio BASE presso Matematica
- Giovedì dalle 11 alle 13 in aula M1.3 (ex aula III) presso Matematica
Orario dell'AA 2017/18
Le lezioni dell'AA 2017/18 inizieranno il 25 settembre 2017 con il seguente orario:
- Lunedì dalla 9 alle 11 in aula M1.4 (ex aula V) presso Matematica
- Martedì dalle 14 alle 16 in aula M1.4 (ex aula V) presso Matematica
- Mercoledì dalle 14 alle 17 nel Laboratorio Base presso Matematica
Orario dell'AA 2016/17
Le lezioni dell'AA 2016/17 inizieranno il 26 settembre 2016 con il seguente orario:
- Martedì dalle 9 alle 11 in aula M1.4 (ex aula V) presso Matematica
- Mercoledì dalle 14 alle 17 nel Laboratorio Base presso Matematica
- Giovedì dalle 11 alle 13 in aula M1.4 (ex aula V) presso Matematica
Orario dell'AA 2015/16
Le lezioni dell'AA 2015/16 inizieranno il 28 settembre 2015 con il seguente orario:
- Lunedì dalle 9 alle 11 in aula M1.5 (ex aula IV) presso Matematica
- Martedì dalle 14 alle 17 nel Laboratorio Base presso Matematica
- Mercoledì dalle 11 alle 13 in aula M1.5 (ex aula IV) presso Matematica
Orario dell'AA 2014/15
Le lezioni dell'AA 2014/15 avranno il seguente orario:
- Lunedì dalle 11 alle 13 in aula V presso Matematica
- Martedì dalle 14 alle 17 nel Laboratorio Base presso Matematica
- Mercoledì dalle 11 alle 13 in aula V presso Matematica
Orario dell'AA 2013/14
Le lezioni dell'AA 2013/14 avranno il seguente orario:
- Lunedì dalle 11 alle 13 in aula V presso Matematica
- Martedì dalle 14 alle 17 nel Laboratorio Base presso Matematica
- Mercoledì dalle 11 alle 13 in aula V presso Matematica
Orario dell'AA 2012/13
Le lezioni dell'AA 2012/13 inizieranno il 1° ottobre 2012 con il seguente orario:
- Lunedì dalle 11 alle 13 in aula V presso Matematica
- Martedì dalle 14 alle 17 nel Laboratorio Base presso Matematica
- Mercoledì dalle 11 alle 13 in aula V presso Matematica
Orario dell'AA 2011/12
Le lezioni dell'AA 2011/12 inizieranno il 26 settembre 2011 con il seguente orario:
- Lunedì dalle 11 alle 13 in aula V presso il dipartimento di Matematica
- Martedì dalle 14 alle 17 nel Laboratorio Base presso il dipartimento di Matematica
- Mercoledì dalle 11 alle 13 in aula V presso il dipartimento di Matematica
Orario dell'AA 2010/11
Le lezioni dell'AA 2010/11 dovrebbero iniziare il 27 settembre 2010 con il seguente orario:
- Lunedì dalle 11 alle 13 in aula V presso il dipartimento di Matematica
- Martedì dalle 14 alle 17 nel Laboratorio Base presso il dipartimento di Matematica
- Mercoledì dalle 9 alle 11 in aula V presso il dipartimento di Matematica
Orario dell'AA 2009/10
Le lezioni dell'AA 2009/10 inizieranno il 28 settembre 2009 con il seguente orario:
- Lunedì dalle 11 alle 13 in aula V presso il dipartimento di Matematica
- Martedì dalle 11 alle 13 in aula V presso il dipartimento di Matematica
- Mercoledì dalle 14 alle 17 nel Laboratorio Zironi presso il dipartimento di Matematica
Orario dell'AA 2008/09
Le lezioni si tengono dal 29 settembre al 19 dicembre 2008 con il seguente orario:
- Lunedì dalle 11 alle 13 in aula V presso il dipartimento di Matematica
- Martedì dalle 11 alle 13 in aula V presso il dipartimento di Matematica
- Mercoledì dalle 14 alle 17 nel Laboratorio Zironi presso il dipartimento di Matematica
Finalità Dell'Insegnamento e Consigli Utili
L'informatica odierna non consiste solo nel definire algoritmi e programmi che realizzano tali algoritmi, ma anche nel comporre architetture software e hardware sulla base di componenti software o hardware. Partendo da questo motivo dominante, l'insegnamento affronta i seguenti argomenti:
- Programmazione ad Oggetti: verranno illustrati i concetti generali, quali incapsulamento, ereditarietà e polimorfismo; verranno accennati i concetti di riusabilità e di composizione dei componenti software, illustrando il passaggio dalla programmazione modulare alla programmazione ad oggetti.
- Il linguaggio Java: verrà utilizzato come esempio di linguaggio ad oggetti, spiegando come i concetti generali sono implementati in Java; verrà inoltre spiegato come Java può essere sfruttato per lo sviluppo di interfacce grafiche.
Per superare agevolmente l'esame si consiglia agli studenti di seguire con continuità le lezioni e le esercitazioni dell'insegnamento. Inoltre, si consiglia di non focalizzare la preparazione dell'esame esclusivamente sullo studio dei libri e degli appunti, ma piuttosto di preparare l'esame sperimentando direttamente i concetti presentati a lezione sul calcolatore. Può risultare estremamente difficile superare con successo l'esame senza una conoscenza di tipo sperimentale, ottenuta con esercitazioni in laboratorio.
Ambienti di Programmazione Utilizzati: Compilatore C, Java 1.5 di pubblico dominio (disponibili in laboratorio).
Programma dell'insegnamento
Programmazione ad Oggetti
- Concetti generali
- Il Linguaggio Java
- Classi ed ereditarietà in Java
- I/O in Java
- Interfacce grafiche in Java
- Programmazione basata sugli eventi
- Strutture dati in Java
- Thread in Java
Modalità D'Esame
ATTENZIONE: nell'AA 2020/21, a causa della situazione pandemica, la prova scritta è sostituita dalla consegna anticipata del progetto. Le conoscenze che precedentemente erano verificate tramite lo scritto, per il 2020/21 verranno verificate sul progetto realizzato.
L'esame si compone di uno scritto e di una discussione di un programma in Java che lo studente deve presentare all'esame (e la cui proposta di progetto deve essere stata preventivamente approvata dal docente). Per maggiori dettagli, vedere il seguito di questa pagina.
Esame scritto
ATTENZIONE: nell'AA 2020/21 non è prevista la prova scritta.
L'esame scritto serve a verificare che lo studente abbia acquisito le nozioni di astrazione, classificazione, ereditarietà e polimorfismo.
L'esame consiste nella modellazione di alcune entità e la relativa implementazione in Java.
È possibile vedere il testo di alcuni esercizi: EserJava1 EserJava2 EserJava3 SoluzioneEserJava3.
NOTE:
- per l'iscrizione all'esame scritto è necessario utilizzare ESSE3 e iscriversi entro la scadenza (di norma 2-3 giorni prima dell'appello scritto stesso, me è bene controllare su ESSE3);
- è necessario aver superato lo scritto per presentare il progetto;
- la presentazione del progetto può avvenire anche in un appello diverso da quello dello scritto;
- la consegna di uno scritto cancella il voto precedente; la partecipazione ad uno scritto senza consegnare non cancella il voto precedente;
- il voto dello scritto vale orientativamente 1 anno; contattare il docente entro l'anno se non si riesce a presentare il progetto e si richiede una proroga della validità.
Modalità di Sviluppo del Progetto Java
All'esame si deve presentare e discutere un programma realizzato in Java e che presenti le seguenti caratteristiche:
- Sia dotato di interfaccia grafica tramite cui interagire con il programma stesso.
- Sfrutti i meccanismi della programmazione ad oggetti:
- incapsulamento;
- ereditarietà e, se necessario, le classi astratte e le interfacce (si considerano escluse le relazioni di ereditarietà diretta da classi di libreria Java);
- polimorfismo.
- Sfrutti le classi di sistema Java per la gestione dell'input/output (Reader, Writer, InputStream, OutputStream).
- Utilizzi le strutture dati di libreria e i generics, motivando le scelte fatte.
- Sia diviso coerente in package.
Gli studenti sono invitati a seguire la traccia fornita dal docente. In casi particolari, uno studente può proporre una proporia traccia, che deve essere approvata dal docente (anche via email).
Il programma deve essere eseguito da linea di comando; non devono essere usate librerie proprietarie (ad es. quelle degli ambienti integrati) a meno di averlo concordato con il docente. È opportuno provare il proprio programma su un altro computer (ad es. in laboratorio) prima di presentarlo in sede d'esame, per verificare la portabilità.
Il software deve essere accompagnato da pagine di documentazione HTML (tipicamente le pagine generate tramite Javadoc o altri strumenti come Doxygen) che descrivano le scelte di progetto effettuate e la struttura del sistema software.
Il progetto va portato il giorno dell'esame, su un supporto tipo chiavetta USB; portare anche il proprio PC per sicurezza. (ATTENZIONE: nell'AA 2020/21 il progetto va consegnato in anticipo).
In casi eccezionali è possibile presentare progetti di gruppo (2 persone), posto che l'ampiezza del progetto sia tale da giustificare il suo sviluppo cooperativo. In tale caso, comunque, la discussione sarà esplicitamente volta a valutare, per ciascuno dei componenti del gruppo, l'effettiva padronanza d'uso dei concetti di base della programmazione ad oggetti, del linguaggio Java e delle sue librerie Java, oltre naturalmente all'apporto individuale dato al progetto globale da ogni singolo membro del gruppo.
Problemi DA EVITARE in sede di esame:
- Il programma non funziona
- Manca qualcosa (di solito, la documentazione)
- Il progetto è diviso su più programmi (eventualmente da concordare con il docente)
- L’ereditarietà è usata male
- "Non mi ricordo come funziona perché ho fatto il programma tempo fa"
Traccia
È disponibile il testo della traccia da svolgere per l'anno accademico 2023/24.
Chi decide di svolgere il progetto proposto dalla traccia, non ha bisogno di approvazione.
Testo della traccia da svolgere per l'anno accademico 2023/24.
Testo della traccia da svolgere per l'anno accademico 2022/23.
Testo della traccia da svolgere per l'anno accademico 2021/22.
Testo della traccia da svolgere per l'anno accademico 2020/21.
Testo della traccia da svolgere per l'anno accademico 2019/20.
Testo della traccia da svolgere per l'anno accademico 2018/19.
Testo della traccia da svolgere per l'anno accademico 2017/18.
Testo della traccia da svolgere per l'anno accademico 2016/17.
Testo della traccia da svolgere per l'anno accademico 2015/16.
Testo della traccia da svolgere per l'anno accademico 2014/15.
Testo della traccia da svolgere per l'anno accademico 2013/14.
Testo della traccia da svolgere per l'anno accademico 2012/13.
Testo della traccia da svolgere per l'anno accademico 2011/12.
Testo della traccia da svolgere per l'anno accademico 2010/11.
Testo della traccia da svolgere per l'anno accademico 2009/10.
Appelli
Le date degli appelli sono disponibili sul sito ESSE3 (http://www.esse3.unimore.it).
Risultati
Da settembre 2011 i risultati vengono comunicati tramite ESSE3.
Testi Consigliati
Testo Dell'Insegnamento
- G. Cabri, F. Zambonelli, "Programmazione a oggetti in Java: dai fondamenti a Internet", Pitagora editrice, 2003.
Altri Testi
- C.S. Horstmann, "Concetti di informatica e fondamenti di Java", Apogeo.
- B. Eckel, "Thinking in Java", 4 edizione italiana, Pearson, (scaricabile gratuitamente da Internet la versione inglese http://www.BruceEckel.com).
- Arnold, Gosling, Holmes, "Il linguaggio Java. Manuale ufficiale", Pearson.
Per chi vuole approfondire:
- Mazzanti, Milanese, "Programmazione di applicazioni grafiche in Java", Apogeo.
- Gamma, Helm, Johnson, Vlissides, "Design Patterns", Addison-Wesley.
- J.R. Hubbard, "Strutture dati in Java", McGraw-Hill.
- M.A. Weiss, "Data Structures And Problem Solving Using Java", 2nd Edition, Addison Wesley.
Slide Dell'Insegnamento
Il materiale degli insegnamenti di Programmazione ad Oggetti e Introduzione alla Programmazione ad Oggetti è contenuto nel libro "Programmazione a oggetti in Java: dai fondamenti a Internet", Pitagora editrice, 2003.
In questa pagina sono riportate le slide usate a lezione.
- Motivazioni
- Limiti della programmazione tradizionale
- Introduzione alla programmazione ad oggetti
- Introduzione al linguaggio Java
- OOP in Java
- Classi astratte e interfacce
- I/O in Java
- GUI in Java
- Costrutti avanzati Java
- Generics in Java
- Strutture dati in Java
- Thread in Java
Vecchie slide
- Applet in Java (fatte fino all'AA 2015/16)
- UML (prima parte - fatta nell'AA 2016/17)
- UML (seconda parte - fatta nell'AA 2016/17)
Seminari
Seminario sull'uso di Java in azienda (Infolog, 9/12/2015)
Seminario su C# (Paolo Burgio, 5/12/2017)
Seminario su C# (Paolo Burgio, 3/12/2018)
Seminario su C# (Paolo Burgio, 5/12/2019) - Codice presentato durante il seminario
Esempi presentati a lezione
Gli esempi sono forniti alcuni in formato pdf, visualizzabili e stampabili con il programma Adobe Acrobat, di pubblico domino, altri in semplice formato testo. Tutti gli esercizi sono stati realizzati in collaborazione con la Prof. Letizia Leonardi.
Programmazione ad Oggetti e Java
Gli esercizi sono gli stessi contenuti nei lucidi della parte teorica, ma da qui e' possibile salvare su un file (facendo "salva link con nome") il sorgente della gran parte degli esercizi.
Java: Le Classi
Java: Classi Astratte e Interfacce
Java: Ereditarietà
Java: Le Eccezioni
Java: Input e Output
Java: Programmazione Grafica e ad Eventi
Strumenti Software
Si indicano di seguito gli strumenti software che si utilizzano durante l'insegnamento e si indica dove e' possibile reperirli.
- Per sviluppare programmi in Java si utilizza il JDK (Java Development Kit). Si può scaricare:
- dal sito Java at Oracle
- dal sito OpenJDK
- NOTA: È necessario utilizzare una versione del JDK maggiore o uguale alla 1.5 (Java J2SE 5). Si consiglia almeno la versione 11.
- Come ambiente integrato (IDE) è possibile utilizzare quello che si preferisce. Quello consigliato è Eclipse.
Esercitazioni di laboratorio
Gli esercizi di laboratorio si possono trovare nella seguente pagina: Esercizi di Programmazione ad Oggetti.