Datavetenskap GR (A), Objektorienterad programmering I, 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 (A), Objektorienterad programmering I, 7,5 hp
Computer Science BA (A), Object Oriented Programming I, 7,5 credits
Allmänna data om kursen
- Kurskod: DV054G
- Ämne huvudområde: Datavetenskap
- Nivå: Grundnivå
- Progression: (A)
- 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: Kommunikation, kvalitetsteknik och informationssystem
- Fastställd: 2025-06-12
- Giltig fr.o.m: 2026-01-19
Syfte
Kursen ger en heltäckande introduktion till objektorienterad programmering (OOP) och objektorienterad design (OOD) som grundläggande angreppssätt inom modern mjukvaruutveckling. Studenterna förvärvar en djup förståelse för centrala objektorienterade principer och utvecklar förmågan att designa och implementera robusta, skalbara och underhållsvänliga system.
Kursen betonar inte bara syntax och semantik i ett objektorienterat språk, utan även designpraxis som leder till ren och hållbar programvaruarkitektur. Genom en kombination av teori och praktisk tillämpning lär sig studenterna att analysera mjukvarukrav, tillämpa designprinciper och mönster samt dokumentera mjukvarukomponenter på ett effektivt sätt. Detta förbereder dem för vidare studier inom programvaruarkitektur, testning och systemdesign.
Lärandemål
Efter avslutad kurs ska studenten kunna:
- Tillämpa objektorienterade principer – inkapsling, abstraktion, arv och polymorfism – för att strukturera och implementera mjukvarulösningar.
- Designa klasstrukturer med hjälp av begrepp som sammanhållning, koppling och SOLID-principerna för att skapa underhållsbar och utbyggbar kod.
- Tillämpa komposition, aggregation och gemensamma gränssnitt för att modellera relationer mellan mjukvarukomponenter.
- Implementera objektorienterade lösningar med hjälp av designmönster (t.ex. Strategy, Decorator, Facade) för att lösa återkommande designproblem.
- Utveckla och tolka UML-diagram för att modellera både statiska och dynamiska aspekter av mjukvarusystem.
- Dokumentera klasser och metoder enligt principerna för Design by Contract (DbC), inklusive förvillkor, eftervillkor och invarianta tillstånd.
- Tillämpa professionella utvecklingspraxis såsom versionshantering, statisk kodanalys och enhetstestning för att säkerställa tillförlitlig mjukvaruutveckling.
- Beskriva mjukvarukvaliteter såsom läsbarhet, skalbarhet, testbarhet och underhållbarhet i relation till sin egen kod.
Innehåll
Kursen är uppdelad i följande huvudmoduler:
Grunder i objektorienterad programmering
- Klasser och objekt: tillstånd, beteende och instansiering
- Metoder och kontrollstrukturer
- Strömmar och filhantering för data-in/-ut
- Undantagshantering och validering
Centrala OOP-principer
- Inkapsling, arv och polymorfism
- Abstraktion och design baserad på gränssnitt
- Subklassning och metodöverlagring
- Substituerbarhet och polymorft beteende
Objektorienterad design
- Sammanhållning och koppling
- Klasskomposition och aggregation
- Relationer mellan objekt: has-a, is-a, uses-a
- Arrayer av objekt och nästlade objektstrukturer
Designmönster och designstrategier
- Introduktion till skapande, strukturella och beteendemönster
- Mönster i praktiken: Strategy, Decorator, Facade, etc.
- Identifiera och hantera designproblem
- Komposition framför arv
Dokumentation och modellering
- Introduktion till Unified Modelling Language (UML): klassdiagram
- Dokumentation av mjukvara med Design by Contract (DbC)
- Förvillkor, eftervillkor och invarianta tillstånd
- Ansvarsfördelning och beteendeförväntningar
Professionell utvecklingspraxis
- Distribuerade versionshanteringssystem
- Enhetstestning
- Statisk kodanalys och refaktoreringsverktyg
- Grundläggande projekthantering för mjukvaruutveckling
Behörighet
Datavetenskap GR (A), 15 hp, inkluderande minst 7,5 hp inom grundläggande programmering.
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 DT180G.
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: 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!