(Kursöversiktssidan är preliminärt och eventuella modifieringar kommer att kunna göras, men iså fall förtydligas modifieringen och meddelas via anslag)
Kursen har 13 självstuderande material i form av OLI-Moduler ( OM), 10 föreläsningar (F), 6 övningstillfällen (Ö). samt 35 laborationstillfällen (L) i schemat.
Vi förväntar att varje student:
- Läser och försöker lära dig från OLI-materialen samt gör OLI-uppgifterna senast dagen innan relaterande föreläsning.
- Deltar i föreläsningen.
- Delta i övningen för att se fler exempel och kunna få möjligheten att få svar på sina frågor. Samt göra quizen för att få tillgång till labben.
- Gör laborationen.
- Redovisa labben på laborationstillfället.
Laborationerna görs i grupp av exakt två personer. Försök att hitta någon student som har ungefär samma bakgrund till ämnet programmering. Du kan använda Diskussioner för att annonsera efter labbpartner. Du får inte arbeta ensam eftersom att kursens ekonomi begränsat resurserna till 2 studenter per grupp. Gruppen får inte bestå av fler än två medlemmar. Det har nämligen visat sig att ju fler medlemmar en grupp har desto större risk blir att någon i gruppen hamnar utanför och får alltså en passiv roll i gruppen vilket påverkar lärandet negativt, med denna anledning har labbarna också konstruerats för två personer.
När du har hittat en labbpartner ska du tillsammans med din labbpartner reservera ett av de två schemalagda labbtillfällen (ett tillfälle per vecka) under veckorna 35 till 41. Detta gör du under sidan Personer (som kommer att aktiveras i samband med första föreläsningen). Sedan ska ni endast delta i de labbtillfällen ni har valt under dem veckorna 35 till 41. Resterande laborationstillfällen från vecka 44 är tänkt att ni ska få hjälp med projektet och kan användas utan reservation.
Vi förväntar att ni utnyttjar labbtillfällen maximalt, alltså labbtillfällen ska användas för redovisning samt få lite hjälp om det visar sig att lösningen inte uppfyller labbkraven. Labbrna är tidskrävande så räkna med att du kan inte bli klar med en labb bara under ett labbtillfälle utan det förväntas av dig att försöka göra labben klar innan labbtillfället. Använd labbtillfället för redovisning och ev. problem som du kan få hjälp under labbtillfället.
Kursmaterial
|
Föreläsning |
Bilder |
Förberedelse
|
Innehåll |
Läsanvisningar
Dawson
|
Filer
|
1 |
F1
|
|
Kursinformation, unix, emacs, python, utskrift, inläsning |
|
|
2 |
F2 |
OLI-test i modulerna:
- Variabler och utskrifter
- Inmatning och styrstrukturer
- While-slingor
|
Variabler, datatyper, aritmetiska operatorer, omvandling mellan datatyper, reserverade ord, logiska operatorer, if, elif, else, while-sats, kommentarer och modulo operatorn |
kap1, kap2, kap3 |
|
3 |
F3 |
OLI-test i modulerna:
- Listor och uppslagslistor
- For-slingor
|
Listor, tupler, strängar, for-slingor, importera moduler, random, stränghantering, slicing, list-metoder |
kap4, kap5 |
|
4 |
F4
|
OLI-test i modulerna:
- Funktioner och moduler
- Felhantering
|
Felhantering, funktioner, parametrar, egna funktioner, parametrar, returvärden, None, globala och lokala variabler, testning med doctest |
kap6, Kap7(sid 205-210) |
|
5 |
F5 |
OLI-test i modul:
|
Filhantering, introduktion till klasser |
kap5, kap7 och kap8 |
|
6 |
F6 |
OLI-test i modulerna:
|
klasser, objekt, konstruktormetoden, instansmetoder
|
kap8, kap9
|
|
7 |
F7 |
|
klasser, objekt, klassmetoder, instansmetoder, __lt__, __gt__, __str__, __eq__, sort och sorted |
kap9 |
|
8
|
F8
|
|
Specifikation |
-- |
|
9
|
F9
|
|
Grafik |
Kap10 |
|
10 |
F10 |
|
Genomgång av datorprov och introduktion till grafiska program |
|
|
|
|
Övning |
Innehåll |
1 |
Variabler, datatyper, aritmetiska operatorer, omvandling mellan datatyper, reserverade ord, logiska operatorer, if, elif, else, while-sats, kommentarer och modulo operatorn |
2 |
Listor, tupler, strängar, for-slingor, importera moduler, random, stränghantering, slicing, list-metoder |
3 |
Felhantering, funktioner, parametrar, egna funktioner, parametrar, returvärden, None, globala och lokala variabler, testning med doctest |
4 |
Filhantering, introduktion till klasser |
5 |
Klasser, objekt, konstruktormetoden, instansmetoder |
6 |
Klasser, objekt, klassmetoder |
|
Ladokmoment LAB1 1.5 hp (Obligatorisk)
|
Laborationsuppgifter |
Förberedelse |
Innehåll |
Labboration 1 |
|
datormiljö, filhantering, terminal, emacs, litet python program |
Laboration 2 |
Quiz 2
|
variabler, operationer, villkorligt uttryck, styrstrukturerna: if-elif-else satser, while-satser
|
Laboration 3 |
Quiz 3 |
for-satser och listor |
Laboration 4 del1
Laboration 4 del2
|
Quiz 4 |
egen definierade funktioner, prarametrar och argument, returvärden, kodupprepning, lokala och globala variabler |
Laboration 5 del1
Laboration 5 del2
|
Quiz 5 |
filhantering, klasser och objekt |
|
Ladokmoment LAB2 1.5 hp (Obligatorisk)
|
Datorprov |
Datorprovet är ett prov som handlar om allting vi har gått igenom under första perioden. Provet ges via Canvas, tid och datum meddelas i god tid på Canvas. Bonusen från OLI-testerna används till datorprovet och det gör att man kan hoppa över vissa uppgifter på provet.
Hjälpmedel till datorprovet är sudd, penna och ett A4-papper utan någon text på båda sidorna.
|
|
Ladokmoment LAB3 3.0 hp (Obligatorisk)
|
P-del |
Beskrivning |
Specifikationsuppgift |
En plan över hur du har tänkt att lösa din P-uppgift och vilka delar den består av. Betyg på denna uppgift är P/F. |
Granskning |
Granskning innebär att du granskar en annan students P-uppgiftslösning. Lösningen du granskar får inte ha garnskats av andra personer. Betyg på denna uppgift är P/F. |
P-uppgift |
Det är en större individuell uppgift. Betyg på denna uppgift kommer att vara ditt slutbetyg på hela kursen. Betyg på denna uppgift är E-A. |
|
Betygskriterier
|
För att få ett slutbetyg krävs att studenten får godkänt betyg på tre delar i kursen, introducerande laborationer, datorprovet och projektet.
På laborationer och datorprovet gäller godkänt eller underkänt. Men på projektet kan man få betygen E-A. Betyg på projektet blir även slutbetyg på kursen. Studenten väljer en av de befintliga uppgifterna i kursen och skriver ett program i python till det. Betyget sätts sedan på programmets kvalitet. Programmets kvalitet bestäms av regler inom programmeringsmetodik och hur de reglerna har beaktats samt om studenten har tagit hänsyn till användare, administratören, programmerare och datorn som ska köra programmet vid utveckling av programmet.
Tabellen nedan visar betygskriterier för projektet. Betygskriterier för introducerande laborationer är de kriterier som står under kolumnen för betyget E.
Mål
|
E
|
D
|
C
|
B
|
A
|
Kunna konstruera
sammansatta datatyper (klasser)
|
Kunna konstruera egna datatyper (klasser) och kunna förklara fördelen med egenkonstruerade datatyper
|
Kunna konstruera egna datatyper (klasser) för att lösa något mer komplicerade instans av ett problem.
|
Kunna dela ett
större problem till mindre beståndsdelar av problemet
|
Kunna dela upp ett större problem till mindre och hanterliga problem utan väsentliga brister
|
Kunna dela upp ett större problem till mindre och hanterliga problem utan några brister
|
Kunna dela upp ett program
|
Konstruera programmet så att det består av generella funktioner och program-del utan väsentliga brister
|
Konstruera programmet så att det består av generella funktioner och program-del utan några brister
|
Kunna tillämpa styrstrukturer
|
Använda lämpliga styrstrukturer för ett givet problem över det större delen av programmet.
|
Använda lämpliga styrstrukturer för ett givet problem genomgående.
|
Konstruera program utan kodupprepningar
|
Kunna konstruera applikationer utan upprepningar över stora delar av programkoden och kunna förklara nackdelar med koduppreningar.
|
Kunna konstruera applikationer utan upprepningar genomgående och kunna förklara nackdelar med koduppreningar.
|
Kunna skapa flexibla applikationer
|
Konstruera program med flexibilitet i den meningen att programmet klarar av att lösa större instans av problemet genom att införa små förändringar i programkoden.
|
Konstruera program med stor flexibilitet i den meningen att programmet klarar av att lösa större instans av problemet genom att införa små förändringar i programkoden.
|
Kunna välja lämpliga identifierarnamn
|
Kunna konstruera programkod där lämpliga identifierarnamn har valts över det största delen av programkoden.
|
Kunna avgöra var i en programkod ska man välja längre identifierarnamn i bekostnad av programkodens storlek
samt välja kortare identifierarnamn i bekostnad av programkodens läsbarhet.
|
Kunna konstruera interaktiva program
|
Konstruera applikationer där uttrycksfulla förfrågningar ställs till användaren för att minimera risken av feltolkning och missförstånd hos användaren utan väsentliga brister
|
Konstruera applikationer där uttrycksfulla förfrågningar ställs till användaren för att minimera risken av feltolkning och missförstånd hos användaren.
|
Använda sig av lämplig konstruktion för hantering av inmatningsfel och formateringsfel i indatafil.
|
Välja och använda lämpliga grafiska komponenter i ett grafiskt användargränssnitt.
|
Tabellen nedan är en del av betygskriterier för projektet (gäller inte introducerande laborationer):
Mål
|
E
|
D
|
C
|
B
|
A
|
Kunna planera programmeringsarbete
|
Kunna skriva en planering över vilka delar programmet kommer att bestå av och hur lösningen kommer att se ut.
|
Kunna granska ett program
|
Kunna undersöka ett program och hitta eventuella brister hos programmet med avseende på principer som har tagits upp i kursen.
|
Projektuppgifterna är utformade på så sätt att det finns en grunduppgift som kan ge högst ett D i betyg och det finns påbyggande extrauppgifter för varje högre betyg än D. Så högsta betyg som studenten kan få bestäms av utförda uppgifterna och kvalitet på implementerade koden. Vid redovisningen används ett redovisningsprotokoll med följande punkter.
- Informativa utskrifter
- Enkel inmatning
- Kommentarer
- Beskrivande namn
- Konsekvent språk och typografi
- Felhantering (om det ingår)
- Klasser (minst en)
- Uppdelning i funktioner och metoder
- Parametrar/returvärden
- Ingen kodupprepning
- Flexibilitet
Om det finns smärre brister på någon av ovanstående punkter får man en påpekande på den punkten. Om man totalt får 1-3 påpekanden på alla punkterna så får man betyget E även om man redovisar för högre betyg. Ett protokoll utan några påpekande innebär att studenten får det betyg som hen redovisar för medan ett protokoll med fler än tre påpekanden innebär att studenten får komplettera. I protokollet finns även följande två viktigare punkter.
- Uppfyller kravet i lydelsen
- Studenten kan redogöra för alla detaljer i programkoden
Studenten får komplettering om någon av ovanstående två punkter får påpekande.
Betygskriterier för datorprovet är att kunna identifiera nyckelord i Python, kunna identifiera utdata från ett givet program, kunna bland några lösningar välja de fungerande lösningar som löser ett visst givet problem som handlar om hantering av datastrukturer, filhantering, funktioner, styrstrukturer, särfall, metoder och klasser.
Slutbetyg
Projektets betyg är kursens slutbetyg. Kraven att få slutbetyg är att projektet har fått ett betyg samt datorprovet och introducerande labbarna är godkända.
|
Kursöversiktssidan visar en tabellorienterad vy av kursschemat och grunderna för
kursens bedömning. Du kan lägga till kommentarer, anteckningar eller tankar som du har om kursens
struktur, kursens regler eller något annat.
Klicka på länken ”Redigera” längst upp för att lägga till kommentarer.