Kursen oopython (v2)

By , , . Latest revision .

Kursen Objektorienterad design och programmering med Python, a.k.a. oopython, syftar till att lära studenterna objektorienterade angreppssätt och designprinciper för att utveckla objektorienterade program. Modelleringsspråket UML (Unified Modeling Language) används för att beskriva analys- och designmodeller. Programspråket Python används för implementering. Dessutom lär sig studenterna förstå och implementera vanliga datastrukturer och algoritmer.

Kursen använder sig av webbaserade teknologier och program som skapas publiceras på en webbserver. Förutom detta kommer kursen även ta upp hur man testar sin kod och hur man går tillväga för att refaktorerar kod.

Tidigare version av kursen

Om du gick kursen under vårterminen 2017, så finns kursmaterialet i oopython version 1.

Version 2 går första gången vårterminen 2018.

Om du påbörjat en äldre version av kursen så skall du också slutföra denna versionen av kursen (eller göra om den nya kursen från start).

#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: Analysera och förbättra kod

Vi ska öva på att läsa och förstå kod. När vi har gjort det ska vi även förbättra koden genom att skriva om den så den exekverar snabbare.

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
Kmom04 Ch 8 - Regular Expressions
Kmom05 Ch 7 - Queues
Kmom06 Ch 6
Kmom10

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

#Lektionsplan och rekommenderad studieplan

Läser du kursen inom ramen för programmet Webbprogrammering (campus/distans) så finns det en rekommenderad studieplan inom programmet.

Vissa av kurstillfällena har även en lektionsplan som du får i samband med kursstart. Lektionsplanen visar de tillfällena som är schemalagda träffar.

Finns det en lektionsplan så finns ofta bokningar av salar gjorda i bokningsschemat.

Studieplan, eventuell lektionsplan och eventuellt schema finns tillgängligt via kurstillfället på ITs.

Läs mer om den rekommenderade studieplanen och 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.

Du hittar kursplanen genom att söka på kurskoden PA1437 via BTH’s hemsida.

#Revision history

  • 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.

Document source.