Känna igen och redogöra för olika objektorienterade design-mönster; inklusive deras syfte och effekt.
Redogöra för koncept inom objekt-orienterad design med användning av adekvat terminologi
Kommunicera objekt-orienterad design skriftligt, samt visuellt med hjälp av ett grafiskt modelleringsspråk (UML)
Färdigheter och förmåga
Använda och redogöra för grundläggande objektorienterade koncept, som klasser och objekt, primitiver och referenser, metoder och konstruktorer, variabler och attribut, etc.
Använda och redogöra för mer avancerade språkmekanismer och tekniker, som exceptions, generics, trådar, defensive copying, etc,
Använda och redogöra för arv och parameteriserade typer, och därtill hörande mekanismer, för att åstadkomma polymorfism och återanvändning av kod.
Applicera design-principer och design-mönster för att åstadkomma sund objekt-orienterad design.
Designa och implementera objektorienterade program för en given domän på ett sunt sätt med avseende på korrekthet, modifierbarhet och återanvändbarhet.
Utföra och beskriva testning av objektorienterade program.
Utforma en tydlig och välstrukturerad resonerande text, enligt grundläggande principer för argumentation och diskussion
Identifiera och tillämpa verksamma metoder för samarbete i grupp
Värderingsförmåga och förhållningssätt
Argumentera för gjorda design- och implementationsval enligt principer för god objektorienterad design och implementation
Analysera och utvärdera kod enligt principer för god objektorienterad design och implementation
Reflektera över olika strategier som främjar inkluderande samarbete i grupp
Kursinnehåll
Kursen presenterar det objektorienterade programmeringsparadigmet och lägger stor vikt vid programkonstruktion och design.
Begreppsapparat och teknik utökas och fördjupas: metoder, objekt, abstrakta- och anonyma klasser, initiering, polymorfism, överlagring och överskuggning,implementations- och gränssnittsarv, användning generiska typer, konstruktion av enkla generiska klasser, felhantering, immutabilitet och defensive copying, och introduktion till trådar och trådsäkerhet m.m.
Hantering av tillstånd, beroenden, modulära program, programmeringstekniker, modifierbarhet, designprinciper, designmönster och MVC-modellen.
För att beskriva designen används elementära delar av the Unified Modelling Language (UML).
Förutsättningar
Grundläggande behörighet för grundnivå
Litteratur
Information om aktuell litteratur ges innan kursstart på kursens hemsida.