Du hittar kurs-PM för nyare kursomgångar på sidan Kurs-PM.
Rubriker markerade med en asterisk ( * ) kommer från kursplan version VT 2024
Innehåll och lärandemål
Kursinnehåll
Bakgrunden till objektorienterad programmering, som inkapsling, abstrakta datatyper, gränssnitt, hög kohesion och låg koppling
Principer för objektorienterad programmering klasser, objekt, relationer mellan klasser och objekt, arv och interface, polymorfism
Introduktion till abstrakta datatyper och objektorienterade designmönster
Generisk kod med typarameter
Syntax och implementering i något objektorienterat språk
Felhantering
Strömmar för att läsa från och skriva data till olika typer av källor och mål
Trådprogrammering
Grafiska gränssnitt och händelsehantering
Funktionella inslag i objektorienterade språk, som funktionella interface, strömmar och lambda-uttryck
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 objektorienterade principer som inkapsling, abstrakta datatyper, gränssnitt, arv, hög kohesion och låg koppling
Utifrån en enklare problembeskrivning ta fram en objektorienterad modell för implementation med klasser, med data och metoder, samt relationer, som följer objektorienterade principer
Kunna redogöra för några vanliga objektorienterade designmönster
För godkänt betyg skall studenten dessutom, i ett givet objektorienterat språk, kunna:
4. Implementera klasser som följer objektorienterade principer som inkapsling, tydliga gränssnitt, arv, hög kohesion och låg koppling
5. Implementera några vanliga datatyper som lista, kö och stack samt några vanliga designmönster
6. Använda undantag (exceptions) för att signalera fel samt hantera dessa på lämplig nivå i applikationen
7. Implementera applikationer med flera trådar samt skydda delat data från synkroniseringsproblem
8. Skriva applikationer med grafiska gränssnitt och händelsehantering
Läraktiviteter
Under kursen ges 11 föreläsningar och 12 övningstillfällen. Till övningarna finns uppgifter, med lösningsförslag, på kurswebben, samt i vissa fall förinspelade introduktioner. De schemalagda övningstillfällena är primärt frågestunder.
Detaljplanering
Detaljplanering, med läsanvisningar, finns på kursomgångens Canvas-aktivitet.
Kursen förutsätter goda kunskaper i grundläggande programmering. Särskild behörighet är HI1024, programmering grundkurs, eller motsvarande kurs.
Inför kursstarten bör du fräscha upp dina kunskaper från grundkursen i programmering. Speciellt viktigt är att du förstår, och kan implementera, funktioner med argument och returvärden samt struct.
Kurslitteratur
Rekommenderad kurslitteratur
Introduction to Java Programming and Data Structures, Comprehensive Version, Y. Daniel Liang, Pearson Education, ISBN 9781292402079 (12th ed). Upplaga 11, 12 och 13 kan användas, men läsanvisningar ges till 11/12 upplagan. E-bok finns att hyra (6 månader) från förlaget, Pearson. Länk och rabattkod finns på Canvas-aktiviteten för kursen.
Det går att använda andra böcker om Java, men läsanvisningar ges endast till ovanstående litteratur.
Referenslitteratur (ej obligatorisk)
För den som vill fördjupa sig i objektorienterat tänkande rekommenderas någon bok om Design Patterns, designmönster. Designmönster för programmerare, Bilting, Studentlitteratur, ISBN 91-44-04312-0, är en välskriven, och billig, introduktion.
LAB1 - Obligatoriska laborationer, 4,5 hp, Betygsskala: P, F
TEN1 - Skriftlig tentamen, 3,5 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,5 hp), betygsskalan A-F Tentamen innehåller både teoretiska och praktiska moment.
Godkända laborationer (LAB1; 4,5 hp), betygsskalan P, F
Slutbetyget grundas på samtliga moment. Betygsskalan A-F.
Avsnittet nedan kommer inte från kursplanen:
Tentamen (TEN1)
Tentamen sker vid dator och innehåller både teoretiska (del A) och praktiska moment (del B). Vid tentamen finns tillgång till utvecklingsmiljön IntelliJ IDEA, en syntaxlista samt Javas API-dokumentation. Inga övriga hjälpmedel.
Programmeringslaborationer (LAB1)
Laborationskursen består av 4 obligatoriska programmeringslaborationer.
Vid redovisning av de obligatoriska uppgifterna ska studenten
lämna in en komplett lösning, som plagiatkontrolleras, senast dagen före redovisnigen,
vid redovisningstillfället muntligen redogöra för sin lösning samt tillfredställande besvara frågor om denna. För uppgifter som löses i par ska varje student enskilt kunna svara för alla delar av lösningen.
Uppgifterna redovisas vid fyra schemalagda tillfällen. Alla uppgifter måste redovisasi ordning, dvs. för att få redovisa laboration 2 måste laboration 1 vara godkänd osv. Endast en uppgift kan redovisas per tillfälle.
Förutom de ovan nämnda finns ytterligare två redovisningstillfällen, ett i tentamensveckan samt ett i anslutning till omtentamen. Vid det senare tillfället kan endast en laboration, den fjärde, redovisas. Om du efter dessa tillfällen inte är godkänd på laborationskursen hänvisas du till nästa läsårs hela LAB1.
Laboration
Löses och redovisas
Motsvarande föreläsningar
1
Enskilt
1-3
2
Enskilt
1-4
3
Parvis
1-7
4
Parvis
1-11
Målrelaterade betygskriterier/bedömningskriterier
LAB1
I tabellen nedan anges vad som examineras i momentet LAB1.
Lärandemål
LAB1, examineras via
1
kunna redogöra för objektorienterade principer …
Lab 1, 2, 3, 4
2
Utifrån en enklare problembeskrivning ta fram en objektorienterad modell för implementation ...
Lab 2, 3, 4
3
kunna redogöra för några vanliga objektorienterade designmönster
Lab 3, 4
4
implementera klasser som följer objektorienterade principer …
Lab 1, 2, 3, 4
5
implementera några vanliga datatyper ... samt några vanliga designmönster
Lab 3, 4
6
använda undantag (exceptions) …
Lab 3, 4
7
implementera flertrådade applikationer …
Lab 4
8
implementera applikationer med grafiska gränssnitt och händelsehantering …
Lab 4
TEN1
Lärandemål som examineras i TEN1
Tentamen består av ca åtta teoriuppgifter (del A), som tillsammans täcker alla lärandemål, samt tre programmeringsuppgifter (del B) som täcker målen 4, 5 och 6.
Betyg
För betyget E på TEN1 krävs
minst hälften av poängen på A-delen samt ...
minst hälften av poängen på B-delen samt
att minst en av de två första programmeringsuppgifterna är helt korrekt löst (testar lärandemål 4 och 5).
Om inte hälften av poängen uppnås på A-delen kommer inte B-delen att rättas.
Möjlighet till komplettering
Om en av de programmeringsuppgifter, del B, som krävs för betyg E på TEN1 bedöms vara i det närmaste, men inte helt, korrekt och övriga krav ovan är uppfyllda, ges betyget Fx och möjlighet till komplettering till betyget E. Kompletteringen kan endast ge betyg E eller F och sker senast 4 veckor efter tentamenstillfället vid av examinator angiven tid. Examinator avgör om kompletteringen ska vara muntlig eller skriftlig.
Kriterier för betyg högre än E
Kraven för betyg E måste vara uppfyllda.
För betyg C krävs totalt minst 70 % av poängen på tentamen. Uppgift 2 och 3 på B-delen är av mer komplex karaktär och kräver att studenten på begränsad tid och på egen hand modellerar lösningen i lämpliga klasser, med tillhörande gränssnitt, samt i vissa fall även applicerar lämpliga designmönster.
För betyg A krävs minst 90 % av poängen på tentamen.
Möjlighet till plussning
Plussning på momentet TEN1 är endast tillåtet vid omtentamenstillfällen. En student kan endast plussa vid ett omtentamenstillfälle per läsår.
Anmälan om plussning görs till examinator, senast två veckor innan omtentamenstillfället.
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.
Avsnittet nedan kommer inte från kursplanen:
Studenten är skyldig att ta del av och följa givna instruktioner om vad som gäller vid examinationen, och att det kan leda till disciplinära påföljder i form av varning eller avstängning om studenten inte följer instruktionerna. Vid redovisning av obligatoriska uppgifter, momentet LAB1, gäller de etiska riktlinjer som presenteras på kurswebben, sidorna för LAB1.