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

HI1027 Objektorienterad programmering 8.0 hp

Kurs-PM VT 2022-60241

Version 2 – 2021-12-21 14:49:59

Kursomgång

VT 2022-1 (Startdatum 2022-01-18, Svenska)

Undervisningsspråk

Svenska

Kursen ges av

CBH/Medicinteknik och hälsosystem

Kurs-PM VT 2022

Presentation av kursen

Kursen tar upp objektorienterat tänkande och modellering samt programmering i ett objektorienterat språk (för tillfället Java). Kursen ger kunskaper i objektorienterad programmering och modellering som kommer att användas inom andra områden i utbildningen.

I kursen ingår även implementering av applikationer med grafiska användargränssnitt.

Rubriker markerade med en asterisk ( * ) kommer från kursplan version HT 2020

Innehåll och lärandemål

Kursinnehåll

  • Bakgrunden till objektorienterad programmering: (abstrakta datatyper, inkapsling, återanvändning)
  • Principer för objektorienterad programmering: klasser, objekt, relationer mellan klasser och objekt, arv, polymorfism
  • Objektorienterad programutveckling: analys, design och implementering
  • Unified Modeling Language: användningsfall, sekvensdiagram och klassdiagram
  • Syntax och implementering i något objektorienterat språk
  • Felhantering
  • Strömmar
  • Trådprogrammering
  • Grafiska gränssnitt och händelsehantering
  • 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:

  1. Kunna redogöra för objektorienterade principer som inkapsling, återanvändning, arv, hög kohesion och låg koppling
  2. Utifrån ett givet problemområde kunna ta fram användningsfall, och tillhörande scenarios, samt utifrån dessa ta fram en modell för implementation i form av sekvens- och klassdiagram med klasser och 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.   Skriva klasser som följer objektorienterade principer som inkapsling, återanvändning, arv, hög kohesion och låg koppling

       5.   Använda undantag (exceptions) för att signalera fel samt hantera dessa på lämplig nivå i applikationen

       6.   Använda sig av strömmar för att läsa från och skriva till olika typer av källor och mål

       7.   Implementera multitrådade applikationer samt skydda delade data från synkroniseringsproblem 

       8.   Skriva applikationer med grafiska gränssnitt och händelsehantering, med tillämpningar av lämpliga designmönster 

Läraktiviteter

Under kursen ges 11 föreläsningar och 11 tillhörande övningar. Till övningarna finns uppgifter, med lösningsförslag, på kurswebben, samt förinspelade introduktioner. De schemalagda övningstillfällena är primärt frågestunder.

Detaljplanering

 

Läraktivitet Innehåll Litteratur Föreberedelse

Föreläsning 1

Objektorienterad programmering: klass, objekt, datamedlem, metod, inkapsling.
Språket Java. En jämförelse mellan Java och C.

Material från kurswebben
Kap 7, 8.1-8.3
[Kap 1 – 6 är repetition av grundl. programmering, i Java]

 

Föreläsning 2

Objektorienterad programmering, forts: referensvariabler och objekt, equals, immutability, enum, static, arrayer

Kap 9, 10 + material på kurswebben

Detta täcker föreläsningarna 2 och 3.

 

Föreläsning 3

Relationer mellan objekt: association, aggregat, komposition; klassdiagram i Unified Modeling Language, UML. ArrayList.
Designmönstret Singleton

Se F2

 

 

Obligatorisk uppgift, ÖVN2

Programmeringslaboration 1

 

Föreläsning och övning 1-3

Föreläsning 4

Arv: super- och subklass: omdefiniering/override; abstrakt klass/metod; superklassen Object

Interface

Kap 11, 13

Detta täcker föreläsningarna 4 och 5

 

Föreläsning 5

Polymorfism – heterogena objektsamlingar

Arv vs aggregat. Designmönstren Strategy, Composite, Proxy
Generics: typparameter. ArrayList. Comparable.

Se F4

Kap 19, 20.4-6

 

Föreläsning 6

Felhantering med exceptions: throw, try, catch, finally
Strömmar: binär vs text; serialisering av objekt

 

12.1-12.9
12.10-12.13, 17

 

Obligatorisk uppgift, ÖVN2

Programmeringslaboration 2

 

Föreläsning och övning 1-4

Föreläsning 7

Obligatorisk föreläsning och övning 16/2
Objektorienterad analys och design: modellering från problem till klasser med relationer; användningsfall,  klass- och sekvensdiagram i UML

Material från kurswebben samt utdelat material (kap 2 Xiaoping Jia)

 

Föreläsning 8

Grafiska användargränssnitt, Java FX
Händelse/event, händelsehantering

Kap 14, 15, 16 samt föreläsningsmaterial
Täcker föreläsning 8 och 9

 

Föreläsning 9

Mer om händelsehantering och grafiska komponenter
Designmönstret Model-View-Controller

 

Se F9
Kap 31 (10th ed: kap 34)
Material från kurswebben.

 

Obligatorisk uppgift, ÖVN2

Programmeringslaboration 3

 

Föreläsning och övning 1-6

Obligatorisk uppgift, ÖVN2

Objektorienterad analys och design, laboration 4

 

Föreläsning och övning 1-7

Föreläsning 10

Parallell exekvering med trådar: klassen Thread, interfacet Runnable; synkronisering av kodblock/data

 

Kap 32 (10th ed: 30.1-30.15)

 

Föreläsning 11

Mer om designmönster. Andra objektorienterade språk. Java och funktionell programmering. 

Material från kurswebben.

 

Obligatorisk uppgift, ÖVN2

Programmeringslaboration 5

 

Föreläsning och övning 1-11

Obligatorisk uppgift, ÖVN2

Restredovisningstillfälle, lab 5 (eller 3)

 

Se ovan


Schema HT-2021-423
Schema VT-2022-621

Förberedelser inför kursstart

Särskilda förberedelser

För att registreras på denna kurs måste du vara godkänd på hela kursen HI1024, programmering grundkurs, eller motsvarande kurs.

Inför kursstarten bör du fräscha upp dina kunskaper från grundkursen i programmering. Speciellt är att du förstår, och kan implementera, funktioner och struct.

Kurslitteratur

Rekommenderad kurslitteratur

Introduction to Java Programming and Data Structures, Comprehensive version, 11th edition, Y. Daniel Liang, Pearson Education, ISBN 9781292221878.
Boken finns även som e-bok, ISBN 9781292221892 (och är då billigare) samt kan även "hyras" via bokab.net.

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

Du kommer att behöva installera Java SDK (Software Development Kit), som bland annat innehåller en kompilator, samt IntelliJ IDE, utvecklingsmiljön.

På kurswebben sidan ”Resurser/Programvara” finns installationsinstruktioner och i vissa fall introduktioner till dessa programvaror.

Examination och slutförande

Betygsskala

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

Examination

  • TEN1 - Tentamen, 3,5 hp, Betygsskala: A, B, C, D, E, FX, F
  • ÖVN2 - Övningar, 4,5 hp, Betygsskala: P, F

Examinator beslutar, baserat på rekommendation från KTH:s samordnare för 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 (ÖVN2; 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 en syntaxlista samt Javas API-dokumentation. Inga övriga hjälpmedel.

Övningar ( ÖVN2 )

Laborationskursen består av 5 obligatoriska uppgifter, fyra programmeringslaborationer samt en uppgift i analys och design (den fjärde). Uppgift 4 inleds med en obligatorisk föreläsning och övning, föreläsning 7 enligt detaljpalneringen.

Vid redovisning av de obligatoriska uppgifterna ska studenten förutom att lämna in en komplett lösning, som plagiatkontrolleras, muntligen redogöra för sin lösning samt tillfredställande besvara frågor om denna.

Uppgifterna redovisas vid fem schemalagda tillfällen. Endast en uppgift kan redovisas per tillfälle. Ytterligare två redovisningstillfällen kommer att finnas; ett i tentamensveckan, samt ett i anslutning till omtentamen, då en(1) kvarvarande laboration kan redovisas. Om du efter dessa tillfällen inte är godkänd på laborationskursen hänvisas du till nästa läsårs hela laborationskurs.

Alla uppgifter, utom uppgift 4, måste göras i ordning, dvs. för att få redovisa laboration 2 måste laboration 1 vara godkänd osv.

Laboration

Löses och redovisas

Motsvarande föreläsningar

1

Enskilt

1-3

2

Enskilt

1-4

3

Parvis

1-6

4

Grupp

1-7

5

Parvis

1-11

 

Målrelaterade betygskriterier/bedömningskriterier

ÖVN2

I tabellen nedan anges vad som examineras i momentet ÖVN2.

 

 

Lärandemål

ÖVN2, examineras via

1

kunna redogöra för objektorienterade principer …

Lab 1, 2, 3, 4

2

utifrån ett givet problemområde kunna ta fram användningsfall, …, klassdiagram …

Lab 4, 5

3

kunna redogöra för några vanliga objektorienterade designmönster

Lab 5

4

skriva klasser som följer objektorienterade principer …

Lab 1, 2, 3

5

använda undantag (exceptions) …

Lab 3, 5

6

… läsa från och skriva till olika typer av källor och mål

Lab 3

7

implementera flertrådade applikationer …

Lab 5

8

skriva applikationer med grafiska gränssnitt och händelsehantering …

Lab 5

TEN1

Tentamen består av ca åtta teoriuppgifter (del A), som tillsammans täcker alla lärandemål, samt fyra programmeringsuppgifter (del B) som täcker målen 3, 4 och 5. 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.

Fx

Om en av de programmeringsuppgifter som krävs för betyg E på TEN1 bedöms vara i det närmaste, men inte helt, korrekt och övriga krav är uppfyllda, ges betyget Fx och möjlighet till komplettering till betyget E.

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 3 och 4 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 komplettering

Komplettering av tentamen kan göras om resultatet på tentamen anses ligga nära gränsen för betyg E, se betygskriterierna. 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.

Möjlighet till plussning

Plussning ä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 ÖVN2, gäller de etiska riktlinjer som presenteras på kurswebben, sidorna för ÖVN2.

Ytterligare Information

Ingen information tillagd

Fakta om kursomgång

Startdatum

2022-01-18

Kursomgång

  • VT 2022-60241

Undervisningsspråk

Svenska

Kursen ges av

CBH/Medicinteknik och hälsosystem

Kontakter

Kursansvarig

Lärare

Examinator