Metodologie di Programmazione - Canale P-Z

Corso di Laurea in Informatica

Anno Accademico 2008/09

Diario delle lezioni

ven 27 feb

Presentazione del corso. Il primo progamma Java (Hello, World) e come lo avremmo scritto in C. Il main. La piattaforma Java. Comilazione ed esecuzione di programmi Java: la JVM.

Trasparenti: IJ1. Introduzione a Java 1 (pdf)

Sorgenti: S00. Hello0 (tgz)

Sorgenti: S01. Hello (tgz)


lun 2 mar

Gli oggetti. I costruttori. Metodi e messaggi. Lo stato di un oggetto: campi o attributi di istanza. Le classi. Esempio: Ticket Machine. Accesso indiretto allo stato degli oggetti: setter e getter.

Trasparenti: IJ1. Introduzione a Java 1 (pdf)

Sorgenti: S02. Greeter (tgz)

Sorgenti: S03. Ticket Machine (tgz)


ven 6 mar

Semplice Input/Output: System.in e System.out; le classi PrintStream e Scanner. Tipi primitivi. Char. Cast. Operatori. Controllo del flusso.

Trasparenti: IJ2. Introduzione a Java 2 (pdf)

Sorgenti: S04. Prodotto (tgz)


lun 9 mar

References. Passaggio di parametri. Attributi e emtodi static. Overloading. I package: spazi di nomi, struttura, uso (import) e crezione. Alcuni package nella Java API.

Trasparenti: IJ2. Introduzione a Java 2 (pdf)


ven 13 mar

Liste collegate in Java: definizione di lista collegata; implementazione in Java; inserimento di elementi in testa; prime funzioni su liste.

Sorgenti: S05. Liste (tgz)


lun 16 mar

Liste collegate in Java: iterazione e ricorsione su liste; differente implementazione delle funzioni base su liste come metodi di istanza o metodi di classe.

Sorgenti: S05. Liste (tgz)


ven 20 mar

La classe String. Le eccezioni. Eccezioni checked e unchecked. Gestione delle eccezioni. Passare le eccezioni. Cattuarer le eccezioni (try/catch/finally).

Trasparenti: IJ3. Introduzione a Java 3 (pdf)


lun 23 mar

Esempi di gestione delle eccezioni. Array, ArrayList e LinkedList. Iteratori.

Trasparenti: IJ3. Introduzione a Java 3 (pdf)

Sorgenti: S06. Eccezioni (tgz)


ven 27 mar

Interfaccia e implementazione di una classe. Definizione di interfacce Java. Interfacce e polimorfismo.

Trasparenti: HBJ211. Interfacce e polimorfismo (Sino a "Using Interfaces for Callbacks", zip)

Sorgenti: S07. Interfacce (tgz)


lun 30 mar

Esempio di un piccolo progetto Java: asta di più lotti. Introduzione alle sottoclassi.

Sorgenti: S08. Auction (tgz)


ven 3 apr

Estensioni delle classi. Sottoclassi ed ereditarietà. Metodi ed attributi ereditati. Sovrascrittura di metodi ed oscuramento di attributi. Chiamare i costruttori della superclasse: catena dei costruttori.

Trasparenti: HBJ213. Ereditarietà (Sino a "Object: The Cosmic Superclass", zip)

Sorgenti: S09. Banca (tgz)


lun 6 apr

Ripasso e approfondimento delle nozioni di sottoclasse ed ereditarietà. Costruzione di gerarchie di classi: generalizzazione di classi con attributi e comportamenti comuni; specificazione di una classe. Polimorfismo ed esempi di utilizzo della sovrascrittura dei metodi. Introduzione al problema dell'ereditarietà multipla.


ven 17 apr

Ripasso con esercizi di preparazione alla prova intermedia.

Esercizi svolti in classe: Testo Soluzioni

Altri esercizi: Testo

NB. Gli esercizi proposti non esauriscono completmante i temi che potranno essere coperti nella prova intermedia, che potrà prevedere anche esercizi su altri argomenti trattati a lezione (ad esempio, le eccezioni). La soluzione dell'esercizio sulla gestione dei c/c usa un array, ma una soluzione più semplice prevede l'uso di una lista (ad esempio, un ArrayList). L'esercizio è stato dato in comune con il canale e-o, che non ha ancora visto ArrayList o LinkedList.


lun 20 apr

Sospensione della didattica per le prove intermedie.


mer 22 apr - ore 14.00 - aula 5 mat.

PROVA INTERMEDIA


ven 24 apr

Sospensione della didattica per le prove intermedie.


lun 27 apr

Modificatori di visibilità. Richiami sulle interfacce. Classi astratte. Differenza tra interfacce e classi astratte. La classe Object e i suoi metodi: clone e l'interfaccia Cloneable (copia superficiale e copia profonda); equals; getClass; hashCode (con cenni alla definizione di funzione hash).

Trasparenti: HBJ213. Ereditarietà (Da "Object: The Cosmic Superclass", zip)

URL: JT1. Controllare l'accesso ai membri di una classe (url)

URL: JT2. La classe Object (url)

URL: JT3. Classi e metodi astratti (url)


mer 29 apr

Esercitazione su ereditarietà e classi astratte. Il package Figure2D.


mer 6 mag

Esercitazione su uguaglianza profonda (overriding del metodo boolean Object.equals(Object)). Il package Figure2D aggiornato (attenzione: codice da completare per esercizio).


ven 8 mag

Esempio di uso di interfarcce e eridatarietà. Costruzione di una gerachia di classi per insiemi di stringhe.

Per una descrizione del progetto vedere le note del Prof. Silvestri (il codice presentato a lezione e qui distribuito è però leggermente diverso rispetto a quello descritto da Silvestri).

URL: Nota Silvestri (hmtl) (pdf)

Sorgenti: S10. Insiemi di stringhe (tgz)


lun 11 mag

Introduzione al disegno delle classi. Responsabilità. Dipendenza e accoppiamento di classi. Aggregazioni. Casi d'uso. Introduzione ai diagrammi UML: diagrammi delle classi, diagrammi di stato, diagramma di sequenza. Schede CRC.

Trasparenti: HOODP02. The Object-Oriented Design Process (zip)


ven 15 mag

Semplici linee guida per il disegno delle classi. Qualità dell'interfaccia di una classe. Programmazione per contratti. Precodizioni e postcondizioni. Pile e code implementate con array.

Trasparenti: HOODP03. Guidelines for Class Design (zip)


lun 18 mag

Applicazione delle linee guida per il disegno delle classi al caso dell pile. Introduzione alla definizione di classi generiche: pile generiche.

Sorgenti: S11. Pile e code (tgz)

Trasparenti: HOODP03. Guidelines for Class Design (zip)


mer 20 mag

Esercitazione: "Battaglia Navale". Versione --incompleta-- sviluppata in aula (attenzione: codice da completare e migliorare per esercizio).


ven 22 mag

Gerarchia delle eccezioni. Definire proprie eccezioni. Catena di eccezioni. Approfondimenti sui tipi generici. Classi e emtodi generici. Completamento dell'esempio delle pile e code generiche.

URL: JT4. Le eccezioni (url)

URL: JT5. Tipi generici (argomenti base) (url)

URL: JT6. Tipi generici (argomenti avanzati) (url)

Sorgenti: S11. Pile e code (tgz)


lun 25 mag

Java Collections Framework. Interfacce, implementazioni e algoritmi. Insiemi, liste e code. Oggetti comparabali (interfacce Comparable e Comparator). Collezioni ordinabili.

URL: JT7. Java Collections Framework (url)


ven 29 mag

Lezione cancellata


lun 1 giugno

Cenni sui design patterns.

Trasparenti: HOODP05. Patterns and GUI Programming (zip)


-- StefanoGuerrini - 11 Mar 2009

Topic attachments
I Attachment History Action Size Date Who Comment
Compressed Zip archivezip 2009-04-29.zip r1 manage 13.3 K 2009-04-30 - 19:03 ToniMancini Esercitazione del 29.04.2009. Il package Figure2D
Compressed Zip archivezip 2009-05-06.zip r1 manage 14.7 K 2009-05-09 - 12:20 ToniMancini Esercitazione del 06.05.2009
Compressed Zip archivezip 2009-05-20.zip r1 manage 13.7 K 2009-05-25 - 12:08 ToniMancini Esercitazione del 20.05.2009
Edit | Attach | Watch | Print version | History: r16 < r15 < r14 < r13 < r12 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r16 - 2009-06-04 - StefanoGuerrini






 
Questo sito usa cookies, usandolo ne accettate la presenza. (CookiePolicy)
Torna al Dipartimento di Informatica
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback