====== Course Outline ====== The course outline is a guideline to topics that will be discussed in the course, and when they will be discussed. It will be updated with materials, readings and additional information as we proceed with our classes. ====== Week 1 ====== Context for design; What is design; Eiffel programming; classes; and objects. Software Quality & Engineering -- Abstract data types; * Readings required: Chapters 7, 8, Chapter 11 Section 10 * Readings background: Chapters 1, 2, 6 -- Also see links under Eiffel on the resources page on estudio guided tour Slides: *[[http://www.cse.yorku.ca/course_archive/2012-13/F/3311/01-W11-Administrivia.pptx|Administrativa]] * [[http://www.cse.yorku.ca/course_archive/2012-13/F/3311/02-DesignContext.pdf|Design Context]] * [[http://www.cse.yorku.ca/course_archive/2012-13/F/3311/03-Notes-on-Eiffel.pdf|Notes-on-Eiffel]] * [[http://www.cse.yorku.ca/course_archive/2012-13/F/3311/04-Classes.pdf|Classes]] * [[http://www.cse.yorku.ca/course_archive/2012-13/F/3311/05-Objects.pdf|Objects]] Case studies: * [[http://www.cse.yorku.ca/course_archive/2012-13/F/3311/bank1.zip|Bank 1]] * [[http://www.cse.yorku.ca/course_archive/2012-13/F/3311/twin_study.zip|Twin Study]] ====== Week 2 ====== Bottom up design; Documentation; BON static model; Design patterns: Adapter pattern * Readings required: Chapter 27 Section 7 * Readings background: Chapters 6, 26, 27 Slides: * [[http://www.cse.yorku.ca/course_archive/2012-13/F/3311/12-BottomUpADT.pdf|BottomUp Design]] *[[http://www.cse.yorku.ca/course_archive/2012-13/F/3311/13-ADTdocumentation.pdf|ADT Documentation]] * [[http://www.cse.yorku.ca/course_archive/2012-13/F/3311/17c-BON-Method.pdf|BON - Method]] * [[http://www.cse.yorku.ca/course_archive/2012-13/F/3311/17-BON.pdf|BON - Introduction]] Structural Pattern: * [[http://www.cse.yorku.ca/course_archive/2012-13/F/3311/27-1-Structure-Adapter.pdf|Adapter]] ====== Week 3 ====== Design patterns:BON dynamic model; Assertions; * Readings required: Chapter 11 Sections 1 to 9 Slides: * [[http://www.cse.yorku.ca/course_archive/2012-13/F/3311/17b-BON-Dynamic-Model.pdf| BON - Dynamic Model]] * [[http://www.cse.yorku.ca/course_archive/2012-13/F/3311/08-Assertions.pdf| Assertions]] ====== Week 4 ====== Agents & tuples;Basis of Design by Contract; Genericity; Criteria for Modularity (Design rules to Ensure Modularity, and Software Construction Principles); *Readings required: Chapter 11 , Chapter 3, 10 (Modularity and Genericity) Slides: * [[http://www.cse.yorku.ca/course_archive/2012-13/F/3311/09-TuplesAgents.pdf| Agents and Tuples]] * [[http://www.cse.yorku.ca/course_archive/2012-13/F/3311/A5-StructuredDesign.pdf| Design by Contract]] * [[http://www.cse.yorku.ca/course_archive/2012-13/F/3311/15-DesignContract.pdf| Design by Contract 2]] * [[http://www.cse.yorku.ca/course_archive/2012-13/F/3311/07-Genericity.pdf| Genericity]] * [[http://www.cse.yorku.ca/course_archive/2012-13/F/3311/14-Modularity.pdf| Modularity]] Quiz 1 (September 27, 2012): * BON * ADT * Adapter pattern ====== Week 5 ====== Memory Management; Design rules and principles: Exceptions and Exceptions Handling Referential transparency; Active data structures; Testing with Espec; * Readings required: Chapter 12 Slides: * [[http://www.cse.yorku.ca/course_archive/2012-13/F/3311/06-MemoryMan.pdf| Memory Management]] * [[http://www.cse.yorku.ca/course_archive/2012-13/F/3311/16-Exceptions.pdf| Exceptions]] * [[http://www.cse.yorku.ca/course_archive/2012-13/F/3311/10-Espec.pdf| Testing with ESpec]] Resources: * [[http://www.cse.yorku.ca/course_archive/2012-13/F/3311/Proof_example.pdf| Proof Example]] ====== Week 6 ====== Inheritance; Inheritance and adaptation * Readings required: Chapter 14 Slides: * [[http://www.cse.yorku.ca/course_archive/2012-13/F/3311/19-Inheritance.pdf|Inheritance]] * [[http://www.cse.yorku.ca/course_archive/2012-13/F/3311/20a-PolyAndDynamic.pdf|Polymorphism]] * [[http://www.cse.yorku.ca/course_archive/2012-13/F/3311/20b-InheritAdaptation.pdf|Adaptation]] * [[http://www.cse.yorku.ca/course_archive/2012-13/F/3311/21-InheritMultiple.pdf|Multiple Inheritance]] Quiz 2: * Agents and Tuples * Assertions * Design by contract ====== Week 7 ====== Multiple and Repeated Inheritance, * Readings required: Chapter 14 Slides: * [[http://www.cse.yorku.ca/course_archive/2012-13/F/3311/22-InheritDBC.pdf|Inheritance and design by contract and genericity (DBC)]] __**Mid-Term**__ Thursday Oct. 18 2012, during the lecture (90min). Covers everything including Introduction to Inheritance. ====== Week 8 ====== Global objects; Singleton design pattern * Readings required: Chapters 15, 16 & 18 Slides: * [[http://www.cse.yorku.ca/course_archive/2012-13/F/3311/23-GlobalObjects.pdf|Global Objects]] * [[http://www.cse.yorku.ca/course_archive/2012-13/F/3311/29-4-Create-Singleton.pdf|Singleton]] * [[http://www.cse.yorku.ca/course_archive/2012-13/F/3311/26-ClassesDesign-2.pdf|Class Design with Inheritance]] * [[http://www.cse.yorku.ca/course_archive/2012-13/F/3311/24-CSmultiPanel.pdf|Case study]] Quiz 3 (Oct 26): * Memory Management; * Design rules and principles * Exceptions ====== Week 9 ====== Designing classes; Design Patterns -- Decorator, Composite Slides: * [[http://www.cse.yorku.ca/course_archive/2012-13/F/3311/27-2-Structure-Composite.pdf|Composite]] * [[http://www.cse.yorku.ca/course_archive/2012-13/F/3311/27-3-Structure-Decorator.pdf|Decorator]] ====== Week 10 ====== Design patterns -- Facade, Command, Iterator, Visitor Quiz 4 (Tuesday, Nov 6, 2012): * Inheritance Slides: * [[http://www.cse.yorku.ca/course_archive/2012-13/F/3311/27-4-Structure-Facade.pdf|Facade]] * [[http://www.cse.yorku.ca/course_archive/2012-13/F/3311/28-1-Behave-Command.pdf|Command]] * [[http://www.cse.yorku.ca/course_archive/2012-13/F/3311/28-2-Behave-Iterator.pdf|Iterator]] * [[http://www.cse.yorku.ca/course_archive/2012-13/F/3311/28-5-Behave-Visitor.pdf|Visitor]] * [[http://www.cse.yorku.ca/course_archive/2012-13/F/3311/12-W11-State.ppt|State]] ====== Week 11 ====== Design patterns -- Abstract Factory & Builder Slides: * [[http://www.cse.yorku.ca/course_archive/2012-13/F/3311/29-1-Create-AbsFactory.pdf|Abstract Factory]] * [[http://www.cse.yorku.ca/course_archive/2012-13/F/3311/29-2-Create-Builder.pdf|Builder]] Quiz 5 (Thursday): * Design patterns ====== Week 12 ====== Quality First, Review of material Slides: * [[http://www.cse.yorku.ca/course_archive/2012-13/F/3311/16-W11-Quality-First.ppt|Quality First]]