Kursen oopython (v2)
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 Flask
Vi rivstartar med grundstrukturen för objekt och hur man kan skapa en webbsida med routes i ramverket Flask.
Instruktion till kursmoment 01.
#Kmom02: Klassrelationer
Vi jobbar vidare med vår me-sida i Flask. Till det kikar vi klassrelationer.
Instruktion till kursmoment 02.
#Kmom03: UML och enhetstester
Vi lär oss om UML diagram och enhetstester.
Instruktion till kursmoment 03.
#Kmom04: 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 04.
#Kmom05: 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 05.
#Kmom06: Träd som datastruktur
Vi kollar på en ny typ av datastruktur, träd. Mer specifikt balanserat binär träd.
Instruktion till kursmoment 06.
#Kmom07/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 | Ch 1, 2, 3, 4 |
Kmom03 | Ch 3, 4, 12 |
Kmom04 | Ch 6 |
Kmom05 | |
Kmom06 | |
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 + kmom04 | Uppgift 2 á 2.5hp |
Kmom05 - 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
- 2018-12-20: (C, aar) Ändrade layout för studie- och lektionsplan.
- 2018-11-29: (B, aar) Gulmarkerat inför VT19.
- 2018-02-23: (A, aar) Första version V2.
- 2017-12-11: (PA2, lew) Påbyggnad utkasst till V2.
- 2017-11-10: (PA1, mos) Utkast till v2.