==== Academic Year 2016-2017 ==== * Sept 20, 2016: {{:magistraleinformatica:tdp:dp-l01-introduction2016.pdf|Introduction}} * Sept 21, 2016: {{:magistraleinformatica:tdp:dp-l02-designprinciples2016.pdf|Design Principles}}: SOLID and {{:magistraleinformatica:tdp:applying-uml-and-patternscpt16.pdf|GRASP chapter 16}}. * Sept 22, 2016: {{:magistraleinformatica:tdp:dp-l03-designprinciples2016.pdf|Design principles continued (with homework)}} and {{:magistraleinformatica:tdp:applying-uml-and-patternscpt22.pdf|GRASP chapter 22}} * Sept 28, 2016: homework analysis, {{:magistraleinformatica:tdp:dp-l04a-strategy2016.pdf|Strategy}} and {{:magistraleinformatica:tdp:dp-l04b-state2016.pdf|State}} (both include homework) * Sept 29, 2016: {{:magistraleinformatica:tdp:dp-l05-observer2016.pdf|Observer}} * Oct 5, 2016: homework analysis, {{:magistraleinformatica:tdp:dp-l06a-mvc-observer.pdf|MVC}} and {{:magistraleinformatica:tdp:dp-l06b-decorator2016.pdf|Decorator}} * Oct 6, 2016: {{:magistraleinformatica:tdp:dp-l07-factory2016.pdf|Factory method and abstarct factory}}, {{:magistraleinformatica:tdp:dp-l07b-singleton2016.pdf|Singleton}} (as promised, {{:magistraleinformatica:tdp:toggl-how-to-save-the-princess-in-8-programming-languages.jpg?linkonly|save the princess}}) * Oct 12 and 13, 2016: Lessons cancelled * Oct 19, 2016: Homework analysis and discussion on Singleton * Oct 20, 2106: Laboratory, {{:magistraleinformatica:tdp:dp-l09-command2016.pdf|Command}} * Oct 26, 2016: Homework analysis, {{:magistraleinformatica:tdp:dp-l10a-adapter2016.pdf|Adapter}}, {{:magistraleinformatica:tdp:dp-l10b-facade2016.pdf|Façade}} * Oct 27, 2016: {{:magistraleinformatica:tdp:dp-l11visitor2016.pdf|Visitor}} and presentation of {{:magistraleinformatica:tdp:gameoflife.pdf|project}} to be done in group partly at home and partly in class. * Nov 9, 2016 Homework analysis, {{:magistraleinformatica:tdp:dp-l12-bridge2016.pdf|Bridge}}. * Nov 10, 2016 Lab: Design the home theatre example using Stategy and Adapter to make a compact remote control. * Nov 16, 2016: Homework analysis, {{:magistraleinformatica:tdp:dp-l14-template2016.pdf|Template method}} * Nov 17, 2016: {{:magistraleinformatica:tdp:dp-l15a-iterator2016.pdf|Iterator}} and {{:magistraleinformatica:tdp:dp-l15b-composite2016.pdf|Composite}}. {{:magistraleinformatica:tdp:menuhfcodeinternaliterator.zip|Code}} with internal iterator. {{:magistraleinformatica:tdp:menuiteratorhfcodecompositeiterator.zip|Code}} with composite iterator to be fixed. * Nov 23, 2016: Homework analysis, {{:magistraleinformatica:tdp:dp-l16a-builder2016.pdf|Builder}}, {{:magistraleinformatica:tdp:dp-l16b-chain2016.pdf|CoR}} * Nov 24, 2016: {{:magistraleinformatica:tdp:dp-l17-flyweight2016.pdf|Flyweight}}, {{:magistraleinformatica:tdp:dp-l17b-lab2016.pdf|Lab}} * Nov 30, 2016:homework analysis and lab, {{:magistraleinformatica:tdp:dp-l17-proxy2016.pdf|Proxy}} * Dec 1, 2106: {{:magistraleinformatica:tdp:dp-l18-interpreter2016.pdf|Interpreter}}, with examples: {{:magistraleinformatica:tdp:interpretercalculatorwithaconstant.zip|calculator}}, {{:magistraleinformatica:tdp:interpretertiny.zip|tiny}}, {{:magistraleinformatica:tdp:interpreterboolean.zip|boolean}} * Dec 7, 2106: homework analysis, {{:magistraleinformatica:tdp:dp-l19-mediator2016.pdf|Mediator}}, {{:magistraleinformatica:tdp:dp-l19-memento2016.pdf|Memento}}, {{:magistraleinformatica:tdp:commanddacombinareconmemento.zip|code for Memento's homework}} * Dec 8, 2106: Holiday * Dec 14, 2106: homework analysis, {{:magistraleinformatica:tdp:dp-l19-prototype2016.pdf|Prototype}} * Dec 15, 2016: ==== Academic Year 2015-2016 ==== * Sept 22, 2015: {{:magistraleinformatica:tdp:dp-l01-introduction2015.pdf|Introduction}}, Design Principles (first part of the slides Up to SOLID 2) * Sept 23, 2015: Design Principles * Sept 29: ({{:magistraleinformatica:tdp:applying-uml-and-patternscpt16.pdf|Ch16}}, {{:magistraleinformatica:tdp:applying-uml-and-patternscpt22.pdf|Ch22}}) {{:magistraleinformatica:tdp:dp-l03-designprinciples2015.pdf|SlidesA}}, {{:magistraleinformatica:tdp:dp-l04-designprinciples2015.pdf|SlidesB}}. * Sept 30: {{:magistraleinformatica:tdp:dp-l04a-strategy2015.pdf|Strategy}} and {{:magistraleinformatica:tdp:dp-l04b-state2015.pdf|State}} (both include homework) * Oct 06: homework analysis; {{:magistraleinformatica:tdp:dp-l05-observer2015.pdf|Observer}} (with homework for the next week) * Oct 07: {{:magistraleinformatica:tdp:dp-l06a-mvc-observer.pdf|MVC}}, {{:magistraleinformatica:tdp:dp-l06b-decorator2015.pdf|Decorator (with homework)}} * Oct 13: Homework analysis * Oct 14: {{:magistraleinformatica:tdp:dp-l08-factory2015.pdf|Factories}} (with homework) * Oct 20: Lecture cancelled due to students assembly * Oct 21: Homework analysis, {{:magistraleinformatica:tdp:dp-l09a-singleton2015.pdf|Singleton}} and {{:magistraleinformatica:tdp:dp-l09b-command2015.pdf|Command}} * Oct 27: Homework analysis, {{:magistraleinformatica:tdp:dp-l10a-adapter2015.pdf|Adapter}} and {{:magistraleinformatica:tdp:dp-l10b-facade2015.pdf|Façade}} * Oct 28: {{:magistraleinformatica:tdp:dp-l11visitor2015.pdf|Visitor}}. Project assigned {{:magistraleinformatica:tdp:gameoflife.pdf|game of life}} (due in a few weeks, group project) * Nov 3 and 4: Classes are canceled this week due to mid term. * Nov 10: {{:magistraleinformatica:tdp:dp-l12-bridge2015.pdf|Bridge}}. * Nov 11: Lab: Game of Life. * Nov 17: Homework analysis, {{:magistraleinformatica:tdp:dp-l14-template2015.pdf|Template method}}. * Nov 18: Lab: Game of Life. * Nov 24: {{:magistraleinformatica:tdp:dp-l14b-iterator2015.pdf| }} and {{:magistraleinformatica:tdp:dp-l15-composite2015.pdf|Composite}}. * Nov 25: {{:magistraleinformatica:tdp:dp-l15-builderchain2015.pdf|Builder and Chain of Responsibility}}. * Dec 1: Homework analysis. * Dec 2: {{:magistraleinformatica:tdp:dp-l16-flyweight2015.pdf|Flyweight}}. Since I forgor to put slides and code on dropbox, and I'll not be back in the Department before Tuesday, and considering that this is a long holiday w.e..... no homeworks this week! * Dec 9: {{:magistraleinformatica:tdp:dp-l17-proxy2015.pdf|Proxy}} and {{:magistraleinformatica:tdp:dp-l18-interpreter2015.pdf|Interpreter}}. {{:magistraleinformatica:tdp:interprete_tiny.zip|TinyInterpreter}} for the homework. * Dec 15: {{:magistraleinformatica:tdp:dp-l21-mediatormementoprototype2015.pdf|Mediator, Memento, Prototype}}. ==== Academic Year 2014-2015 ==== * **Contents of the lectures** * Sept 23, 2014: {{:magistraleinformatica:tdp:dp-l01-introduction2014.pdf|Introduction}} * Sept 24, 2014: {{:magistraleinformatica:tdp:dp-l02-designprinciples2014.pdf|General design principles 1}} * Sept 30, 2014: {{:magistraleinformatica:tdp:dp-l03-designprinciples2014.pdf|General design principles 2}} and {{:magistraleinformatica:tdp:dp-l04-designprinciples2014.pdf|General design principles 3}} * Oct 1, 2014: {{:magistraleinformatica:tdp:dp-l04a-strategy2014.pdf|Strategy}} and {{:magistraleinformatica:tdp:dp-l04b-state2014.pdf|State}} * Oct 7 2014: Esercitazione * Oct 8 2014: {{:magistraleinformatica:tdp:dp-l05-observer2014.pdf|Observer}} and {{:magistraleinformatica:tdp:dp-l07a-mvc-observer.pdf|MVC}} * Oct 14 2014: {{:magistraleinformatica:tdp:dp-l07a-decorator2014.pdf|Decorator}} and {{:magistraleinformatica:tdp:dp-l07b-singleton2014.pdf|Singleton}} * Oct 15 2014: {{:magistraleinformatica:tdp:dp-l07-factory2014.pdf|Factories}} * Oct 21 2014: Esercitazione * Oct 22 2014: Esercitazione * Oct 28 2014: {{:magistraleinformatica:tdp:dp-l09a-command2014.pdf|Command}}, {{:magistraleinformatica:tdp:dp-l9b-adapter2014.pdf|Adapter}} * Oct 29 2014: {{:magistraleinformatica:tdp:dp-l10a-facade2014.pdf|Façade}}, {{:magistraleinformatica:tdp:dp-l10b-bridge2014.pdf|Bridge}} * Nov 4,5,11: Sospensione attività didattica per verifiche e assemblea. * Nov 12: Discussione Progetto StarCastle. * Nov 18 esercitazione: Analisi dettagliata progetto StarCastle * Nov 19 esercitazione: Correzione homework * Nov 25 Iterator * Nov 26 Composite * Dic 2 Builder, chain, flyweight * Dic 3 esercitazione: iterator su composite * Dic 9 Mediator, proxy * Dic 10 Interpreter * Dic 16 Memento, prototype, visitor ==== A.A. 2012-2013 ==== * 18 Febbraio. {{:magistraleinformatica:tdp:dp-l01-introduction2013.pdf|Introduzione al corso.}} * 20 Febbraio. {{:magistraleinformatica:tdp:dp-l02-designprinciples2013.pdf|Principi di progettazione 1}} * 25 Febbraio. Sospensione delle lezioni per elezioni politiche. * 27 Febbraio. {{:magistraleinformatica:tdp:dp-l03-designprinciples2013.pdf|Principi di progettazione 2}} * 4 Marzo. Lezione rinviata al 7 per impegno fuori sede. * 6 Marzo. {{:magistraleinformatica:tdp:dp-l04a-designprinciples2013.pdf|Ereditarieta' vs delega}}, {{:magistraleinformatica:tdp:dp-l04-designprinciples2012.pdf|Strategy}} * 7 Marzo, ore 11, recupero della lezione del 4 in aula O1. {{:magistraleinformatica:tdp:dp-l05a-state2013.pdf|State}}, esercitazione {{:magistraleinformatica:tdp:delegstrastate.zip|ex1}}, {{:magistraleinformatica:tdp:headfirststrastate.zip|ex2}}. * 11 Marzo. {{:magistraleinformatica:tdp:dp-l06-observer2013.pdf|Observer}}. * 13 Marzo. {{:magistraleinformatica:tdp:dp-l07b-decorator2013.pdf|Decorator}}. * 18 Marzo. {{:magistraleinformatica:tdp:dp-l08-factory2013.pdf|Factory Method and Abstract Factory}}. * 20 Marzo. {{:magistraleinformatica:tdp:dp-l09a-singleton2013.pdf|Singleton}} e {{:magistraleinformatica:tdp:dp-l09b-command2013.pdf|Command}}. * 25 Marzo. Esercitazione e {{:magistraleinformatica:tdp:dp-l10b-template2013.pdf|Template method}} * 27 Marzo. {{:magistraleinformatica:tdp:dp-l11a-adapter2013.pdf|Adapter}} con {{:magistraleinformatica:tdp:adaptersetstack2013.zip|esercizio}}, {{:magistraleinformatica:tdp:dp-l11b-facade2013.pdf|Façade}}, {{:magistraleinformatica:tdp:dp-l11c-bridge2013.pdf|Bridge}}. * 1 Aprile. Festivita' * 3 Aprile. Sospensione della didattica per verifiche intermedie. * 8 Aprile. {{:magistraleinformatica:tdp:dp-l12-iterator_2013.pdf|Itearator}} e {{:magistraleinformatica:tdp:dp-l12-composite2013.pdf|Composite}}. * 10 Aprile. {{:magistraleinformatica:tdp:dp-l13-builderchainflyweight2013.pdf|Builder, CoR, Flyweight}}. * 15 Aprile. {{:magistraleinformatica:tdp:14._esercitazione.zip|Esercitazione}}. * 17 Aprile. {{:magistraleinformatica:tdp:15._proxy.zip|Proxy}} e Interpreter. * 22 Aprile. {{:magistraleinformatica:tdp:dp-l17-mediatormementoprototypevisitor2013.pdf|Mediator, Memento, Prototype, Visitor}}. * 24 Aprile. Esercitazione. {{:magistraleinformatica:tdp:p487-wickgameoflife.pdf|Articolo GameOfLife}}. * 29 Aprile. Fetures and Policies * 6 Maggio. Matteo Mucci: {{:magistraleinformatica:tdp:presentazionemucci.pdf|Design Patterns e calcolo dei sequenti}}. * 8 Maggio. Scrum {{:magistraleinformatica:tdp:scrum_seminar_part_1.pdf|parte1}} e {{:magistraleinformatica:tdp:scrum_seminar_part_2.pdf|parte2}} * 13 Maggio: Esercitazione * 15 Maggio: Non c'è lezione * 20 Maggio: Andrea Tarquini: {{:magistraleinformatica:tdp:presentazionetarquini.pdf|Javascript Patterns}} Codice {{:magistraleinformatica:tdp:headfirstdesignpatterns_code102507.zip|Java esempi Libro HeadFirst}}. Lo trovate anche C++ e C#, alla pagina http://www.headfirstlabs.com/books/hfdp/. .... ==== A.A. 2011-2012 ==== === Lezioni e lucidi === * {{:magistraleinformatica:tdp:dp-l01-introduction2012.pdf|20 Febbraio}}. Introduzione al corso. * {{:magistraleinformatica:tdp:dp-l02-designprinciples2012.pdf|22 Febbraio}}. GRASP * {{:magistraleinformatica:tdp:dp-l03-designprinciples2012.pdf|27 Febbraio.}} GRASP * {{:magistraleinformatica:tdp:dp-l04-designprinciples2012.pdf|29 Febbraio.}} GRASP * 6 Marzo. {{:magistraleinformatica:tdp:dp-l05a-strategy2012.pdf|Strategy}} e {{:magistraleinformatica:tdp:dp-l05b-state2012.pdf|State}} * 8 Marzo. {{:magistraleinformatica:tdp:dp-l06-observer2012.pdf|Observer}}. * 13 Marzo. {{:magistraleinformatica:tdp:dp-l07b-decorator2012.pdf|Decorator}} * 15 Marzo. {{:magistraleinformatica:tdp:dp-l08-factory2012.pdf|Factory}}. {{:magistraleinformatica:tdp:lab1_maze.zip|Esercizio}} * 20 Marzo. {{:magistraleinformatica:tdp:dp-l09a-singleton2012.pdf|Singleton}} e {{:magistraleinformatica:tdp:dp-l09b-command2012.pdf|Command}}. * 22 Marzo. {{:magistraleinformatica:tdp:dp-l10a-adapter2012.pdf|Adapter}}, {{:magistraleinformatica:tdp:dp-l10b-facade2012.pdf|Facade}}, {{:magistraleinformatica:tdp:dp-l10c-bridge2012.pdf|Bridge}}. * 27 Marzo. {{:magistraleinformatica:tdp:dp-l12-esercitazione.pdf|Esercitazione}}. * 29 Marzo. Esercitazione e {{:magistraleinformatica:tdp:dp-l11a-template.pdf|Template method}}. * 12 Aprile. {{:magistraleinformatica:tdp:dp-l11b-iterator.pdf|Iterator}}, {{:magistraleinformatica:tdp:dp-l11c-composite.pdf|Composite}}. * 17 Aprile. {{:magistraleinformatica:tdp:dp-l14-builderchainflyweight.pdf|BuilderChainFlyweight}}. * 19 aprile. {{:magistraleinformatica:tdp:dp-l16-interpreter.pdf|Interpreter}}. * 24 Aprile: lezione non tenuta * 26 Aprile: {{:magistraleinformatica:tdp:dp-l15-proxy.pdf|Proxy}}. * 3 Maggio: Scrum, seminario tenuto da Davide Spano * 7 Maggio: (anticipa la lezione dell'8 maggio) Scrum, seminario tenuto da Davide Spano * 10 Maggio. {{:magistraleinformatica:tdp:dp-l17-mediatorcoordination.pdf|Mediator e modelli di coordinazione.}} * 15 Maggio. {{:magistraleinformatica:tdp:dp-l17a-mementoprototype.pdf|Memento e Prototype.}} * 17 Maggio. {{:magistraleinformatica:tdp:dp-l17b-visitor.pdf|Visitor}}. {{:magistraleinformatica:tdp:visitoremployeecriticized.zip|Esempio di come non si fa}}. Esempio Cars: {{:magistraleinformatica:tdp:doubledispatchcarsoriginale.zip|senzaVisitor}}, {{:magistraleinformatica:tdp:doubledispatchcarsconvisitor.zip|conVisitor}}. * 22 Maggio. Sistemi basati su eventi.