Programmazione ad Oggetti

From Agentgroup

Jump to: navigation, search

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)


Contents

News

Ultime news

 È 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.

Vecchie news

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

Docente.png

Prof. Giacomo Cabri

Dipartimento di Scienze Fisiche, Informatiche e Matematiche

Università di Modena e Reggio Emilia, Via Campi 213/B - 41125 Modena

Telefono 0592058320 - Fax 0592055216

giacomo.cabri@unimore.it

Orario delle Lezioni

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à Del Corso 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, il corso 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 del corso. 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 Del Corso

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

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

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.

NOTE:

  1. l'esame scritto è solo per l'insegnamento da 9 CFU;
  2. per l'iscrizione all'esame scritto è necessario utilizzare ESSE3 e iscriversi entro 2 giorni prima dell'appello scritto stesso;
  3. è necessario aver superato lo scritto per presentare il progetto;
  4. la presentazione del progetto può avvenire anche in un appello diverso da quello dello scritto;
  5. la consegna di uno scritto cancella il voto precedente; la partecipazione ad uno scritto senza consegnare non cancella il voto precedente;
  6. 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).
  • Sfrutti i generics.

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 una applicazione Java e NON una applet. 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 in laboratorio prima di presentarlo in sede d'esame.

Il software deve essere accompagnato da pagine di documentazione HTML (tipicamente le pagine generate tramite Javadoc) che descrivano le scelte di progetto effettuate e la struttura del sistema software.

A progetto realizzato, si valuterà il progetto (e il voto conseguente), ferma restando la possibilità del docente (e dello studente) di richiedere l'integrazione nel progetto di ulteriori funzionalità/caratteristiche.

Il progetto va portato il giorno dell'esame, su un supporto tipo chiavetta USB o CD.

In casi eccezionali 6egrave; 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

Tesina.png

È disponibile il testo della traccia da svolgere per l'anno accademico 2017/18. Chi decide di svolgere il progetto proposto dalla traccia, non ha bisogno di approvazione.

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

Iscrizione.png

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 Del Corso

Textbook.png
  • G. Cabri, F. Zambonelli, "Programmazione a oggetti in Java: dai fondamenti a Internet", Pitagora editrice, 2003.

Altri Testi

  • 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.
  • C.S. Horstmann, G. Cornell, "Java 2: i Fondamenti", Mc Graw Hill, The Sun Microsystems Press.

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.



Lucidi del Corso

Lucidi.png

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 riportati alcuni lucidi usati a lezione.

  1. Motivazioni
  2. Limiti della programmazione tradizionale
  3. Introduzione alla programmazione ad oggetti
  4. Introduzione al linguaggio Java
  5. OOP in Java
  6. Classi astratte e interfacce
  7. I/O in Java
  8. GUI in Java
  9. Applet in Java (non fatte nell'AA 2016/17)
  10. Generics in Java
  11. J2SE5
  12. Thread in Java
  13. Strutture dati in Java
  14. UML (prima parte - fatta nell'AA 2016/17)
  15. 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)



Esercizi presentati a lezione

EserciziLezione.png

Gli esercizi 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

Le Classi File
Download.png
Counter.java, Esempio0.java, Esempio1.java, Esempio2.java, Esempio2bis.java, Esempio3.java, Esempio4.java, Esempio5.java, Esempio5bis.java, Esempio6.java, Esempio7.java, Point.java

Java: Classi Astratte e Interfacce

Java: Ereditarietà

Java: Le Eccezioni

Java: Input e Output

Java: Programmazione Grafica e ad Eventi

Grafica File
Download.png
CalcButton.java, CalcPanel.java, Calculator.java, Es10Panel.java, Es11Panel.java, Es12Panel.java, Es13Panel.java, Es14Panel.java, Es15Panel.java, Es16Panel.java, Es7Panel.java, Es8Panel.java, Es9Panel.java, EsSwing1.java, EsSwing10.java, EsSwing11.java, EsSwing12.java, EsSwing13.java, EsSwing14.java, EsSwing15.java, EsSwing16.java, EsSwing2.java, EsSwing3.java, EsSwing4.java, EsSwing5.java, EsSwing6.java, EsSwing7.java, EsSwing8.java, EsSwing9.java, EsSwingCalculator.java, FunctionPanel.java, ImgPanel.java, MyFrame.java, MyPanel.java, Terminator.java

Java: Le Applet

Le Applet File
Download.png
Applet1.java, Applet2.java, Applet2Listener.java, Applet3.java, Applet3Listener.java,

Applet4.java, Applet5.java, Application2.java



Strumenti Software

Strumenti.png

Si indicano di seguito gli strumenti software che si utilizzano durante il corso e si indica dove e' possibile reperirli.

  • Per sviluppare programmi in Java si utilizza il JDK (Java Development Kit). È di pubblico domino e si puo' scaricare dal sito Java at Oracle.
  • NOTA: È necessario utilizzare una versione del JDK maggiore o uguale alla 1.5 .
  • 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.

Personal tools
Pagine riservate ai CdS di Ing. Informatica