Datavetenskap GR (B), Objektorienterad programmering II, 7,5 hp
Observera att kurslitteraturen kan ändras/revideras fram till:
• 1 juni för en kurs som startar på höstterminen
• 15 november för en kurs som startar på vårterminen
• 1 april för en kurs som startar på sommaren
Skriv ut eller spara kursplanen som PDF
Du kan enkelt skriva ut en kursplan direkt från webbsidan. Använd kortkommandot ctrl+p (Windows) eller command+p (Mac). I nästa steg väljer du om du vill skriva ut eller spara kursplanen som PDF.
För en nedlagd kurs kan eventuell information om avvecklingsperiod hittas under rubriken "Övergångsregel" i senaste versionen av kursplanen.
Kursplan för:
Datavetenskap GR (B), Objektorienterad programmering II, 7,5 hp
Computer Science BA (B), Object Oriented Programming II, 7,5 credits
Allmänna data om kursen
- Kurskod:DV055G
- Ämne huvudområde:Datavetenskap
- Nivå:Grundnivå
- Progression:(B)
- Högskolepoäng:7,5
- Fördjupning vs. Examen:G1F - Grundnivå, har mindre än 60 hp kurs/er på grundnivå som förkunskapskrav
- Utbildningsområde:Tekniska området 100%
- Ansvarig institution:KKI, Kommunikation, kvalitetsteknik och informationssystem
- Fastställd:2025-11-03
- Giltig fr.o.m:2026-08-31
Syfte
Kursen fördjupar studentens förståelse av objektorienterad programmering (OOP) och objektorienterad design (OOD) genom att utforska avancerade ämnen som bygger vidare på de grunder som etablerats i tidigare kurser. Fokus ligger på utveckling av samtidiga (concurrent), händelsestyrda och grafiskt avancerade applikationer som uppfyller kraven hos moderna mjukvarusystem.
Genom både teoretiskt och praktiskt arbete lär sig studenten att tillämpa designprinciper för att konstruera effektiva, responsiva och underhållsvänliga programvaror. Kursen betonar problemlösning i flertrådade miljöer, avancerade designmönster samt utveckling av interaktiva användargränssnitt. Genom att integrera dessa färdigheter förbereds studenten för att designa och implementera skalbara system med hög sammanhållning, låg koppling och optimal prestanda.
Lärandemål
Efter avslutad kurs ska studenten kunna:
- Designa och implementera samtidiga och parallella program med hjälp av trådar för att förbättra applikationers prestanda och responsivitet.
- Tillämpa synkroniseringstekniker för att hantera delade resurser på ett säkert sätt och lösa vanliga samtidighetsproblem såsom producent/konsument-problemet.
- Identifiera, analysera och hantera risker vid samtidighet såsom deadlocks, race conditions och starvation.
- Tillämpa händelsestyrd programmering och notifieringsmekanismer (push och pull) för att skapa responsiva och interaktiva system.
- Tillämpa skapande och strukturella designmönster såsom Factory och Object Pool för effektiv hantering och återanvändning av objekt.
- Designa och konstruera grafiska användargränssnitt (GUI) med fokus på användbarhet och struktur, med hjälp av designmönstret Model-View-Controller (MVC) för att upprätthålla tydlig separering av ansvar.
- Integrera reguljära uttryck och strömbaserade pipelines för effektiv bearbetning och transformation av data.
- Utvärdera och reflektera över programvarans prestanda, skalbarhet och underhållbarhet i relation till avancerade OOP- och OOD-principer.
Innehåll
Kursen är uppbyggd kring följande moduler:
Samtidighet och parallellism
- Trådar och parallell exekvering
- Synkronisering och samordning mellan trådar
- Klassiska samtidighetsproblem (till exempel producent/konsument)
- Samtidighetsrisker: deadlocks, race conditions och starvation
- Metoder för robust design av samtidiga program
Händelsestyrd programmering (EDP)
- Händelseloopen och mekanismer för lyssnare/callbacks
- Push- och pull-baserade notifieringssystem
- Observer-mönstret och händelsepropagering
- Tillämpning av EDP i interaktiva och responsiva applikationer
Designöverväganden
- Skapandemönster: Factory, Object Pool
- Strukturella och beteendemässiga aspekter i samtidiga och händelsestyrda system
- Komposition och återanvändbarhet i komplexa mjukvaruarkitekturer
- Unified Modelling Language (UML): klassdiagram
Utveckling av grafiska användargränssnitt
- Design och implementation av GUI:er
- Layout-hantering, händelsehantering och interaktionsdesign
- Tillämpning av MVC för ansvarsfördelning och modularitet
- God praxis för användbarhet och responsivitet
Databearbetning och strömoperationer
- Reguljära uttryck för mönstermatchning och textbearbetning
- Strömbaserade pipelines för datatransformation och kedjade operationer
- Integration av strömbaserade tillvägagångssätt i samtidiga applikationer
Behörighet
Datavetenskap (A), 15 hp, inklusive 7,5 hp i objektorienterad programmering och design.
Urvalsregler
Urval sker i enlighet med Högskoleförordningen och den lokala antagningsordningen.
Undervisning
Kursen kan genomföras som campuskurs eller som webbaserad distanskurs utan samlingar. Olika genomföranden ställer olika krav på lärare och student. Vid varje kurstillfälle framgår vilken undervisningsform som kommer att tillämpas. Vissa inslag av påbjudna grupparbeten kan förekomma.
Allt kursmaterial presenteras via en webbaserad undervisningsplattform. Handledning ges via den aktuella undervisningsplattformen. Information i kursen förmedlas i huvudsak på engelska, men inslag av svenska språket kan förekomma.
Examination
L101: Laborationer, 7 hp
Betygsskala: Tregradig skala
Laborationerna består av praktiska moment där studenten tillämpar kursens innehåll i en problemlösande kontext.
R101: Skriftlig reflektionsuppgift, 0,5 hp
Betygsskala: Tvågradig skala
Den skriftliga reflektionsuppgiften syftar till att ge studenten möjlighet att analysera och reflektera över sin egen lärandeprocess och kunskapsutveckling under kursens gång, samt koppla dessa till kursens innehåll och lärandemål.
Länk till betygskriterier: https://www.miun.se/betygskriterier.
Om en student har ett besked från samordnaren vid Mittuniversitetet om pedagogiskt stöd vid funktionsnedsättning, har examinatorn rätt att ge anpassad examination för studenten.
Studenten examineras genom individuella eller gruppbaserade redovisningsformer beroende på kursens upplägg och lärandemål. Vid grupparbete bedöms studentens individuella prestation utifrån specificerade kriterier.
Begränsning av examination
Studenter registrerade på denna version av kursplan har rätt att examineras 3 gånger inom loppet av 1 år enligt angivna examinationsformer. Därefter gäller examinationsform enligt senast gällande version av kursplan.
Betygsskala
Tregradig skala
Övrig information
Kursen kan inte ingå i samma examen som kurs med kod DT181G.
Litteratur
Obligatorisk litteratur
Författare/red: Cay S. Horstmann
Titel: Core Java: Volume I - Fundamentals
Upplaga: 13:e
Förlag: Pearson
Kommentar: ISBN: 9780135328378
Författare/red: Cay S. Horstmann
Titel: Core Java: Volume II - Advanced Features
Upplaga: 13:e
Förlag: Pearson
Kommentar: ISBN: 9780135371749
Författare/red: Eric Freeman, Elisabeth Robson, Bert Bates
Titel: Head First Design Patterns
Upplaga: Senaste
Förlag: O'Reilly
Referenslitteratur
Författare/red: Scott Chacon, Ben Straub
Titel: Pro Git
Upplaga: Senaste
Förlag: APress
Webbadress: https://git-scm.com/book/en/v2
Kommentar: Kan beställas i tryckt format, men finns även fritt tillgänglig i digital form på bokens hemsida!