Objekt-orienterad Programmering och Design (2016)

Kursplan

Översiktlig plan (preliminär)

Varje vecka består av två "moduler", vardera bestående av ett övningspass följt av en föreläsning, med laborationspass emellan. På övningen introduceras ett koncept genom uppgifter vi gemensamt diskuterar, och på föreläsningen följs detta upp med de generella principer och mönster som ligger bakom.

OBS! Kursen börjar med övning!

Detaljerad plan (fortfarande preliminär)

OBS: Nedan försöker jag lägga upp lite läshänvisningar i boken. Notera att Skrien går igenom saker i en annan ordning än vi gör, och det kan därför riskera att bli lite upphackat. Överensstämmelsen kommer inte att vara total. Det går utmärkt att läsa boken separat, i Skriens ordning, för att få ett andra perspektiv (men det tillvägagångssättet möjliggör såklart inte att läsa på inför föreläsningar och övningar).

Modul Ämne Övning Föreläsning Förslag på läsning (Skrien)
1-1: 18-19 jan Introduktion till Objekt-orientering Vad innebär "bättre" kod? The Open-Closed Principle (OCP), generella kriterier för "bra" kod, refactoring 1; 2.0-2.1; 4.9-4.11; 5.4; 5.7; Appendix B
1-2: 20-22 jan Classes, Interfaces, Objects, References UML, klassdiagram Classes vs Interfaces, Objects vs References 2.2-2.7; Appendix A
2-1: 25-26 jan Inställt pga sjukdom      
2-2: 27-29 jan Dynamic vs static binding och typer Override vs overload Dynamic vs static binding, polymorfism 2.8-2.11
3-1: 1-2 feb Inheritance, hur och när? Inheritance vs komposition Liskov Substitution Principle (LSP), perspektiv på inheritance 3
3-2: 3-5 feb Subtypning, co- och contra-variance Arrays och subtyping, co- och contra-variance Mer LSP, teori bakom variance Tas inte upp - googla!
4-1: 8-9 feb Generics Generics vs co- och contra-variance Design för Generics Tas inte upp - googla!
4-2: 10-12 feb Dependency reduction Problem med dependencies High cohesion - low coupling, Dependency Inversion Principle (DIP), Interface Segregation Principle (ISP) 5.1-5.2, 5.8
5-1: 15-16 feb Separation of responsibility Var sak på sin plats Single Responsibility Principle (SRP), Information expert 4.0-4.3; 5.3-5.5, 5.7 (igen)
5-2: 17-19 feb Introduktion till design patterns Identifiera design patterns Principer kring design patterns, abstraktion 7.0; 8.7, ...
6-1: 22-23 feb Model-View-Controller MVC-struktur Principer kring MVC och dess underliggande design patterns 8.0-8.4
6-2: 24-26 feb State och immutability Hur uppnå immutability? Principer kring state och immutability, singleton 5.6; 7.2; 8.6
7-1: 29 feb - 1 mar Olika design patterns Användning av design patterns Design patterns galore ...
7-2: 2-4 mar Objekt-orientering vs funktionell programmering Objekt vs ADTs, Visitor pattern The expression problem Tas inte upp - googla!
8-1: 7-8 mar Sammanfattning Gamla tentauppgifter Sammanfattning och tentamensinformation ...
8-2: 9-11 mar Wrap-up Exceptions, initialisering, gamla tentauppgifter Vad kommer härnäst? ...

Last Modified: 8 March 2016 by Niklas Broberg