Contenuti del corso Programmazione ad Oggetti Oggetti, polimorfismo, ereditarieta Metodologie di progetto Astrazione ed incapsulamento ( encapsulation) Contratti e invarianti Asserzioni e documentazione Programmazione ad Eventi Interfacce grafiche Programmazione di strutture dati Collections e streams
Week outline 1.Introduzione: oggetti, e introduzione alla programmazione grafica 2.Definizione di classi e progetto di semplici applicazioni grafiche 3.Tipi di dato fondamentali: primitivi, stringhe, array, arraylists 4.Progetto di classi e interfacce, strutturazione in packages. Sottotipi e polimorfismo. 5.Classi interne, programmazione ad eventi e progetto di interfacce grafiche 6.Ereditarietà 7.Pre/post condizioni, design by contract. Asserzioni vs. eccezioni. Invarianti 8.Streams. 9.Un caso di studio 10.Programmazione parametrica e progetto di strutture dati 11.Collections 12.C# e la piattaforma.net / Design Patterns
Libri di testo Metodologie di progetto OO Object Oriented Software Development using in Java (II Edition) Xiaoping Jia. Pearson Education, 2002 Java Java Concepts (V Edition) Cay Horstmann. Wiley & Sons, 2008 ….
Esame Esercitazioni e progetti consegna durante il corso discussione orale Scritto solo per chi consegna le esercitazioni
Progetti / Homeworks 1.Progetti 2.1 e 2.2 Horstmann 2.Esercizi P3.4, P3.8, Progetti 3.1 e 3.2 Horstmann 3.Esercizi 7.7 e 7.15 Horstmann 4.Cast: compile vs run-time errors 5.Inner classes vs static classes 6.Design Patterns 7.C# e la piattaforma.net
Approfondimenti 1.Costruzione di oggetti, inizializzazione, costruttori annidati, blocchi di inizializzazione 2.Package and protected access. 3.Subtyping, dynamic dispatch, super e static dispatch 4.Overriding e overloading: regole e sottigliezze 5.Cast: compile vs run-time errors 6.Inner classes vs static classes 7.Design Patterns 8.C# e la piattaforma.net