Kursöversikt

Kursen har 11 självstuderande OLI-Moduler (OM),  10 föreläsningar (F), 6 övningstillfällen (Ö). samt 38 laborationstillfällen (L) i schemat.

Vi förväntar att varje student :

  1. Läser OLI-materialen samt gör OLI-uppgifterna senast dagen innan relaterande föreläsning
  2. Deltar i föreläsningen
  3. 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.
  4. Gör laborationen långt innan laboratonstillfället
  5. Be om hjälp vid behov och 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 välja fem av de två schemalagda labbtillfällen (ett tillfälle per vecka) under de första fem veckorna (vecka 37 till 41). Sedan ska ni endast delta i de labbtillfällen ni har valt under dem fem första veckorna i kursen. Detta gör du under sidan Personer (som kommer att aktiveras i samband med första föreläsningen)

Vi förväntar att ni utnyttjar labbtillfällen maximalt, alltså labbtillfällen ska användas för redovisning samt få hjälp på ev. problem som det har varit svårt att lösa innan labbbtillfället. Labbrna är tidskrävande så räkna med att man kan inte bli klar med en labb bara under ett labbtillfälle utan det förväntar av dig att försöka göra abben 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

OM1

OM2

OM4

OM5

 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

OM3

OM6

OM7

Listor, tupler, strängar, for-slingor, importera moduler, random, stränghantering, slicing, list-metoder kap4, kap5
4

F4

OM8

OM9

Felhantering, funktioner, parametrar, egna funktioner, parametrar, returvärden, None, globala och lokala variabler, testning med doctest kap6, Kap7(sid 205-210)
5 F5 OM10 Filhantering, introduktion till klasser kap5, kap7 och kap8
6 F6 OM11

klasser, objekt, konstruktormetoden, instansmetoder

 kap8, kap9

 

7 F7 OM11 klasser, objekt, klassmetoder, instansmetoder, __lt__, __gt__, __str__, __eq__, sort och sorted kap9

8

F8

Grafik --

9

F9

Grafik /Specifikation
10 F10 Genomgång av datorprov och introduktion till grafiska program Kap10
 
Ö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
Laboration 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 Quiz 4  egen definierade funktioner, prarametrar och argument, returvärden, kodupprepning, lokala och globala variabler
Laboration 5 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 består av 20 frågor och man behöver svarat rätt på 16 frågor för att få godkänt på provet. Om man har full bonuspoäng så kan man få godkänt med korrekta svar på 13 frågor.

Hjälpmedel till datorprovet är, papper, penna och sudd samt en frivillig bok i python i pappersform (inte elektronisk)

 

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.