HI1201 Objektorienterad programmering 6,0 hp

Kursen kommer att avvecklas. Sista kursomgång är/var VT 2021. Därefter kommer kuren att examineras under två år, i slutet av period 3 och i omtentamensperioden efter period 4, totalt fyra tillfällen.
Kvarvarande laborationer kan redovisas i anslutning till de fyra tentamenstillfällena nämnda ovan. Inga nya laborationsuppgifter kommer att ges, vilket innebär att den som påbörjat LAB1 kan tillgodoräkna sig tidigare godkända uppgifter.
Innehåll och lärandemål
Kursinnehåll
- Objektorienterad programmering: abstrakta datatyper, inkapsling, gränssnitt, återanvändning, klasser, objekt, relationer mellan klasser och objekt, arv, polymorfism
- Datatyper som stackar, köer, listor och träd
- Syntax och implementering i något objektorienterat språk
- Objektorienterad programutveckling: analys, design och implementering
- Modellering med Unified Modeling Language
- Felhantering
- Händelsestyrda applikationer och programmering av grafiska användargränssnitt
- Introduktion till OO designmönster
Lärandemål
Kursen skall ge studenterna grunderna i objektorienterat tänkande vid programmering samt goda kunskaper i syntax och programmeringsteknik i ett objektorienterat språk.
För godkänt betyg skall studenten kunna:
- Redogöra för faserna analys och design i objektorienterad programutveckling
- Utifrån ett problemområde skapa en objektorienterad modell, som kan användas som grund för implementation
- Beskriva lösningen med hjälp av klassdiagram och dynamiska diagram enligt Unified Modeling Language
För godkänt betyg skall studenten dessutom, i ett objektorienterat språk, kunna:
- Skriva klasser med klart avgränsade roller och väldefinierade gränssnitt
- Implementera arv och interface samt beroenden som association och aggregat
- Implementera datastrukturer som stackar, köer, listor och träd
- Hantera undantag (exceptions) på lämplig nivå i en applikation
- Identifiera och använda några grundläggande objektorienterade designmönster
- Skriva händelsestyrda applikationer samt redogöra för hur händelsehantering fungerar
- Skriva applikationer med grafiska användargränssnitt och då tillämpa designmönstret Model-View-Controller
- Använda sig av en utvecklingsmiljö för att skriva, felsöka och exekvera objektorienterade program
För högre betyg skall studenten kunna:
- Bearbeta större problemområden, via utvecklingsfaserna analys och design, och skapa väl strukturerade objektorienterade modeller och implementationer
- Designa och implementera flexibla och återanvändbara lösningar på generella designproblem som stödjer konstruktion av utbyggbara och ändringsbara mjukvarusystem
Kursupplägg
Kurslitteratur och förberedelser
Särskild behörighet
Grundläggande kunskaper i programmering, t ex kursen H1200, Grundläggande programmering.
Rekommenderade förkunskaper
Utrustning
Kurslitteratur
Introduction to Java Programming and Data Structures, Comprehensive version, 11th edition, Y. Daniel Liang, Pearson Education
Examination och slutförande
När kurs inte längre ges har student möjlighet att examineras under ytterligare två läsår.
Betygsskala
Examination
- LAB1 - Laborationer, 3,0 hp, betygsskala: A, B, C, D, E, FX, F
- TEN1 - Tentamen, 3,0 hp, betygsskala: A, B, C, D, E, FX, F
Examinator beslutar, baserat på rekommendation från KTH:s handläggare av stöd till studenter med funktionsnedsättning, om eventuell anpassad examination för studenter med dokumenterad, varaktig funktionsnedsättning.
Examinator får medge annan examinationsform vid omexamination av enstaka studenter.
Godkänd tentamen (TEN1; 3,0 hp), betygsskalan A-F
Tentamen kan innehålla både teoretiska och praktiska moment.
Godkända laborationer (LAB1; 3,0 hp), betygsskalan A-F
Slutbetyget grundas på samtliga moment.
Möjlighet till komplettering
Möjlighet till plussning
Examinator
Etiskt förhållningssätt
- Vid grupparbete har alla i gruppen ansvar för gruppens arbete.
- Vid examination ska varje student ärligt redovisa hjälp som erhållits och källor som använts.
- Vid muntlig examination ska varje student kunna redogöra för hela uppgiften och hela lösningen.
Ytterligare information
Kurswebb
Ytterligare information om kursen kan hittas på kurswebben via länken nedan. Information på kurswebben kommer framöver flyttas till denna sida.
Kurswebb HI1201