Kursen oopython (v3)

By . Latest revision .

Kursen Algoritmer och datastrukturer med objektorienterad Python, a.k.a. oopython, syftar till att lära studenterna objektorienterade angreppssätt och designprinciper för att utveckla objektorienterade program. Utöver detta ska studenterna lära sig såväl teoretiska aspekter som implementationsaspekter av algoritmer och datastrukturer. Programspråket Python används för implementering.

#Förkunskaper

Det formella förkunskapskravet är:

Programmeringskurs i Python 7.5hp.

#Innehåll

Kursen omfattar följande områden:

  • Objektorienterade programmeringstekniker i Python.
  • Datastrukturer och algoritmer.
  • Objektorienterad analys och design med UML.
  • Objektorienterade programmeringskonstruktioner.
  • Introduktion till testning med enhetstester.
  • Webbaserade teknologier för att bygga webbtjänster med Python.
  • Utvecklingsmiljö och verktyg för programvaruutveckling med Python samt publicera kod på en driftserver och visa resultat via webbsidor.

#Mål

#Kunskap och förståelse

Efter genomförd kurs skall studenten:

  • påvisa grundläggande kunskaper i datastrukturer, algoritmer och problemlösning med objektorienterad programmering i Python genom att skriftligen beskriva och sammanfatta erfarenheter och observationer från övningar och projekt.
  • påvisa grundläggande kunskaper i datastrukturer, algoritmer och att använda objektorienterade tekniker i webbmiljö genom att tillämpa dem i praktiska övningar och projekt.

#Färdighet och förmåga

Efter genomförd kurs skall studenten:

  • självständigt, utifrån en specifikation, utveckla en webbaserad objektorienterad lösning i Python, analysera och designa lösningen med UML samt via text kunna presentera denna lösning.
  • ha god praktisk förmåga att hantera de verktyg och utvecklingsmiljöer som används vid utveckling och felsökningar med Python i webbmiljö.

#Värderingsförmåga och förhållningssätt

* påvisa god förmåga att välja mellan objektorienterad programmering kontra procedurell programmering vid en given problemställning.

#Kursmoment

Kursen är uppdelad i kursmoment där varje kursmoment uppskattas till 20h studerande i form av programmering, undersökning, läsande, övningar, uppgifter, redovisning och eftertanke. Alla kursmoment skall redovisas och du samlar alla redovisningar i din me-sida.

#Kmom01: Kom igång med objekt och UML

Vi rivstartar med grundstrukturen för objekt och hur man kan visualisera upp klasser.

Instruktion till kursmoment 01.

#Kmom02: Kom igång med Flask och testning

Vi kollar på hur vi kan skapa en webbsida med routes i ramverket Flask och hur man enhetstestar kod i Python.

Instruktion till kursmoment 02.

#Kmom03: Klassrelationer och mer om UML

Vi lär oss om mer objektorientering och UML diagram.

Instruktion till kursmoment 03.

#kmom04: Session och formulär med Flask

Vi lär oss mer enhetstester och Flask.

Instruktion till kursmoment 04.

#Kmom05: Datastrukturer

I det här kursmomentet övar vi oss på datastrukturer och felhantering med exceptions. En datastruktur är en struktur för organisering av datan.

Instruktion till kursmoment 05.

#Kmom06: Sorteringsalgoritmer

Inom programmering finns några grundläggande sorteringsalgoritmer. Vi ska kika på dem samt titta närmare på datastrukturer och rekursion.

Instruktion till kursmoment 06.

#Kmom07: Träd som datastruktur

Vi kollar på en ny typ av datastruktur, träd. Mer specifikt balanserat binär träd.

Instruktion till kursmoment 07.

#Kmom08/10: Projekt och examination

Avslutningsvis gör du ett projekt enligt en specifikation. Projektet är det sista som du gör och tillsammans med alla redovisningar som finns på din me-sida så används detta som underlag för att examinera dig från kursen.

Instruktion till kursmoment 10.

#Kurslitteratur

Måste jag skaffa kurslitteraturen?

#Kurslitteratur

Som kurslitteratur har jag valt följande bok, tillsammans med ett antal artiklar som finns tillgängliga på nätet.

Det finns läsanvisningar i samband med varje kursmoment.

  • Python 3 Object-oriented Programming – Dusty Phillips
    En introduktionsbok med öppen licens som gör att boken finns tillgänglig fritt på bokens webbplats. Boken ger en bra introduktion till nybörjaren i Python. Boken går även in på objektorienterad programmering med klasser, objekt och arv. Det är huvudsakligen de delarna vi ska använda oss utav.

#Referenslitteratur

Följande böcker har jag valt som referenslitteratur. De kan vara bra att ha till hands och ger lite extra läsmöjligheter. De behövs inte för att klara kursen men vill du bemästra kursens område så är dessa böcker bra startpunkter.

  • A Byte of Python – Swaroop C H
    En intro-bok till Python 3. Den tar upp grunderna i Python men även en del objekt-orienterad programmering. Bra format och bra exempel. Det relevanta i boken hittas i kapitel 13.

#Läsanvisningar

Här följer en sammanställning av de läsanvisningar till kurslitteraturen som ges i varje kursmoment.

Kursmoment Python 3 Object-oriented Programming
Kmom01 Ch 1, 2
Kmom02
Kmom03 Ch 1, 2, 3, 4
Kmom04 Ch 3, 4, 12
Kmom05 Ch 6
Kmom06
Kmom07
Kmom10 Ch 5

Dessutom har varje kursmoment läsanvisningar i artiklar och videos.

#Rekommenderad studieplan

Kursen har en rekommenderad studieplan som visar en översikt över kursens olika moment och när de i tiden bör utföras för att studenten skall ligga i fas med kursens planering.

I studieplanen visas när rättning sker av respektive inlämnat moment samt när det finns möjligheter att göra restinlämningar.

Läs mer om den rekommenderade studieplanen.

#Lektionsplan

Det finns en lektionsplan som visar en detaljplanering för undervisningen i kursen, vecka för vecka.

Läs mer om lektionsplanen.

#Lärarstöd och handledning

Schemalagda labbtillfällen, hangouts samt forum och chatt de viktigaste källorna för handledning. Läs om handledning och hjälp-till-självhjälp.

#Betygsättning

Det finns ett särskilt dokument som beskriver hur bedömning och betygsättning sker.

#Ladok

Enligt kursplanen finns ett antal ladokmoment och de är kopplade till kursens kursmoment enligt följande.

Kursens moment Ladok moment enligt kursplan
Kmom01 - kmom02 Uppgift 1 á 2.5hp
Kmom03 + kmom05 Uppgift 2 á 2.5hp
Kmom06 - kmom10 Projekt á 2.5hp

Läs mer om rapportering av resultat.

#Kursutvärdering och kursutveckling

Det finns ett särskilt dokument som beskriver hur arbetet med kursutvärderingar och kursutveckling sker. Det är oerhört viktigt för mig att du säger till vad du tycker om kurs och kursmaterial, du kan alltid hojta till i både forum, chatt eller mail.

Läs om hur jag jobbar med kursutvärdering och kursutveckling.

#Kursplan

Kursplanen är kursens formella dokument som fastställts av högskolan. När kursen utvärderas görs det mot kursplanen. I kursplanen kan du läsa om kursens klassificering, syfte, innehåll, mål, generella förmågor, lärande och undervisning, bedömning och examination, litteratur, mm.

Från VT22 är kurskoden DV1660).

Från vårterminen 2020 så heter kursen kursen “Algoritmer och datastrukturer med objektorienterad Python” med kurskoden DV1618).

Tidigare hette kursen “Objektorienterad design och programmering med Python”.

Fram till våren 2019 så gavs kursen under kurskoden PA1437.

#Revision history

  • 2023-01-09: (A, aar) Klart för vt23 och uppdaterat koppling mellan ladokuppgifter och kmom.
  • 2022-12-21: (PA1, aar) Utkast till v3.

Document source.