Förstå och applicera fundamentala begrepp inom objektorienterad programmering.
Förstå och applicera olika aspekter av datatyper och typhierarkier inom både objektorienterade och icke objektorienterade språk.
Implementera objektorienterade program i Java.
Implementera enklare grafiska gränssnitt med händelsehantering.
Kursinnehåll
Programmeringsspråket Java och viktiga skillnader från Python. Objektorienterad programmering i allmänhet och i Java. Objekt, klasser, instansvariabler, metoder, arv, polymorfism. Fundamentala programmeringsbegrepp som uppträder i många objektorienterade språk. Manifest typning, statisk typkontroll, typkonvertering och uppräkningsbara typer. Pekare och referenser. Identitet och likhet. Variablers livstid. Organisation och namnrymder. Felhantering med undantag (exceptions). Texthantering och teckenkodning. Generisk programmering. Designprinciper, till exempel användningen av polymorfism samt arv kontra delegering. De mest centrala klassbiblioteken i Java, inklusive programmering av enklare grafiska användargränssnitt.
Förutsättningar
Grundläggande begrepp inom programmering. Konkreta programmeringskunskaper i Python, motsvarande t.ex. kurserna Funktionell och imperativ programmering del 1 och del 2.
Litteratur
En bok om Java och objektorienterad programmering. Böcker att välja på kommer att anges inför kursstart.
Föreläsningsanteckningar och annat material kommer att finnas tillgängligt på nätet