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!
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? | ... |