Hoppa till huvudinnehållet
Till KTH:s startsida Till KTH:s startsida

HI1027 Objektorienterad programmering 8.0 hp

Kurs-PM HT 2024-50011

Version 1 – 2024-05-29 15:32:57

Kursomgång

HT 2024-50011 (Startdatum 2024-08-26, Svenska)

Undervisningsspråk

Svenska

Kursen ges av

CBH/Medicinteknik och hälsosystem

Kurs-PM HT 2024

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:

  1. Kunna redogöra för objektorienterade principer som inkapsling, abstrakta datatyper, gränssnitt, arv, hög kohesion och låg koppling
  2. 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
  3. 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.

Förberedelser inför kursstart

Särskilda förberedelser

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.

Programvara

Utvecklingsmiljö (IDE)

IntelliJ IDEA Community Edition, ver 2024.1.x. Använd JetBrains Toolbox vid nedladdningen: https://www.jetbrains.com/toolbox-app/.

Installationsinstruktioner: https://www.jetbrains.com/help/idea/installation-guide.html, rubrikerna "Install Using the Toolbox App" och "Standalone Installation". Följ även nästa steg, "Create your first application" (se vänstermarginalen på sidan), t.o.m. steget "Build and run the application".

Som student har du även tillgång till den kompletta versionen, Ultimate, via https://www.jetbrains.com/community/education/#students, men versionen "Community" räcker för denna kurs.

Dokumentation om Javas standardklasser (API) 

https://docs.oracle.com/en/java/javase/20/docs/api/index.html (module: java.base)

Examination och slutförande

Betygsskala

A, B, C, D, E, FX, F

Examination

  • 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-12

 

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 till fyra programmeringsuppgifter (del B) som täcker lärandemå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.

Ytterligare Information

Ingen information tillagd

Fakta om kursomgång

Startdatum

2024-08-26

Kursomgång

  • HT 2024-50011

Undervisningsspråk

Svenska

Kursen ges av

CBH/Medicinteknik och hälsosystem

Kontakter

Kommunikation i kursen

All information om kursens ges via Canvas. Uppdateringar och annan ny information meddelas via anslag på Canvas.

Frågor om övningsuppgifter besvaras främst på de schemalagda övningstillfällena. Det går också bra att ställa frågor via Diskussioner på Canvas - på så sätt kan fler få tillgång till förklaringen/svaret.

Kursansvarig

Lärare

Examinator