bild
Skolan för
elektroteknik
och datavetenskap

KursPM

Lärare, Vem får läsa kursen, Kursens mål, Kurslitteratur, Studentexpedition, Kursuppläggning, Examination, Betyg, Konto vid CSC,

Ändringar i kursPM kommer att meddelas under nyheter.


Kurshemsidans adress:
http://www.csc.kth.se/utbildning/kth/kurser/2D1310/prgo06/

Kursledare

Kursledare

Sten Andersson
stene@csc.kth.se
http://www.csc.kth.se/~stene
08-790 92 76

Övningsassistenter

Grupp 1: Sten Andersson , stene@csc.kth.se

Grupp 2: Carina Edlund, carina@csc.kth.se

Grupp 3: Leo Giertz, legi02@csc.kth.se

Vem får läsa kursen

Kursen är obligatorisk för I, OPEN, MEDIA och CL och S.

Kursens mål

Kursen syftar till att ge grundläggande kunskaper i programmering och datalogiska begrepp. Som språk används python då det är relativt okomplicerat och därmed lämpligt som första programmeringsspråk.

Kurslitteratur

Bok

Som kurslitteratur används Python programming for the absolute beginner av Michael Dawson, ISBN 1598631128. Den finns att köpa på kårbokhandeln. Kursboken är ej obligatorisk utan är en rekommendation för den som vill ha en bok att läsa.

Kursbunt

Kursbunten finns att köpa på studentexpeditionen och innehåller:

  • Unixhäfte
  • Hederskodex
  • Kvittensblad samt laboration 1
Priset för kursbunten täcker också upptryckningskostnaden för de papper som delas ut under kursens gång.

Studentexpedition och Delfi

Nadas studentexpedition finns på Osquars backe 2 plan 2. Den har öppet må-fr 9.45-11.30 och må-to 12.45-14.15.

Delfi är CSC:s systemgruppsmottagning som har hand om konton och passerkort. Delfi har öppet må-fr 10-12 och må-to 13-15. Delfi är granne med studentexpeditionen.

Kursuppläggning

Kursen är uppdelad i föreläsningar, övningar och laborationer. På föreläsningarna presenteras nya begrepp som sedan exemplifieras under övningarna. Under datorlaborationerna får man sedan själv lösa ett antal uppgifter. Aktivitet:

F1: Introduktion till programmeringstekniken och programmeringsspråket Python.
F2: Datatyper, variabler, konstanter, tilldelning, klasser, metoder, inläsning.
F3: Logiska operatorer, villkor, slingor.
F4: Klass och objekt: Instansvariabler, instansmetoder, Klassvariabler, klassmetoder, publikt & privat.
F5: Vektorer & arrayer.
F6: Sökning & sortering.
F7: Rekursion, felhantering, strängverktyg, filhantering.
F8: Inför datorprovet. F9: Fiktiv P-uppgift med specifikation, prototyp och lösning.
F10: Grafik: Komponenter, containers och lyssnare.

Examination

Kursen består av tre LADOK-moment (studiemedelspoängsmoment)
  • LAB1 (1p) Utgörs av fem stycken inledande laborationer som man arbetar med parvis. Betyg G/U.
  • LAB2 (1p) Individuellt datorprov för att testa kunskaperna från LAB1. Betyg G/U.
  • LAB3 (2p) Benämns P-del (P som i Python) och utgörs av en större individuell programmeringsuppgift. Graderad betygsskala.
Sammanlagt 4p eller c:a 160h arbete.

Inledande laborationer (LAB1)

Labbarna arbetar ni med i grupper om två (varken fler eller färre) för att datorerna ska räcka till. De schemalagda laborationstiderna kommer inte att räcka till så det gäller att ni arbetar även på fritiden. Datorsalarna är ofta bokade på dagtid men på kvällarna brukar det vara lugnt. För varje laboration som redovisas i tid erhålles bonuspoäng som man tillgodogör sig på datorprovet. När ni redovisat er laboration: Se till att handledaren skriver under er kvittensblankett som ingår i kursbunten.

Datorprov (LAB2)

Efter de inledande labbarna förväntas man ha grundläggande programmeringskunskaper och dessa examineras med ett datorprov (LAB2). Detta kommer att genomföras vid ett schemalagt laborationstillfälle och utgörs av 25 frågor av flervalstyp som ska besvaras på 50 minuter. Ett tillfälle att öva på provfrågor kommer att ges innan provet.

P-del (LAB3)

Kursens tredje moment, LAB3, är en större, individuell programmeringsuppgift i Python; en "P-uppgift". P-delen redovisas i tre steg under kursens andra period. Uppgifterna är tänkta att vara något så när svåra och tidskrävande, räkna med ca 80 timmar om du följt med i kursen under dess första halva. Om du inte följt med finns det ingen övre gräns för hur lång tid P-uppgiften kan ta.
  • Specifikation: Innan programmet skrivs ska en datorskriven specifikation redovisas. Syftet med specifikationen är att du ska tänka igenom problemet innan du försöker lösa det. Specifikationen ska vara skriven i en .pyt-fil samt vara kompilerbar. En handledare kommer att kommentera den och ge den betyget godkänd/underkänd.
  • Granskning: Innan det färdiga programmet kan redovisas för en handledare ska det testas (granskas) av en student. Studenten får du välja själv, men för din egen skull bör det vara någon ovän, eller kritisk person. Vid testen ska teststudenten kritiskt granska ditt program, testköra det och fylla i ett granskningsprotokoll. Denna granskning är ett obligatoriskt moment. Varje kursdeltagare måste granska en uppgift. Alla uppgifter som ska redovisas för handledare måste granskas först. Om du inte hittar något program att granska så måste du istället utföra en fiktiv granskning. Syftet med granskningen är att du genom att kritiskt granska en annans program ska få en ökad förståelse för hur man ska (och inte ska) programmera. Erfarenhetsmässigt ökar samtidigt chansen att bli godkänd vid redovisningen med minst 50%. Tips! Välj granskare först när du är klar att redovisa, och välj då någon som också är klar med sitt program, så att ni kan granska varandra.
  • Slutredovisning: Du väljer (normalt via webben) en tid för slutredovisning. Uppgiftslydelsen, specifikationen, besiktningsprotokollet och granskaren ska medföras till slutredovisningen, liksom en färsk programutskrift, källkod och det körbara programmet. Om du tar med en egen dator till redovisningen ska den vara uppkopplad mot Internet. Granskare som inte medföljer till slutredovisningen har ingen chans att försvara sin granskning och riskerar därmed att bli underkända om handledaren finner granskningen undermålig.

Det finns en lista på P-uppgifterna med länkar till lydelserna för att du ska kunna skumma och bestämma dig för en uppgift.

P-uppgifterna är av olika omfång vilket kräver olika mycket tid, men tidsåtgången är framförallt beroende av dina kunskaper när du börjar med P-uppgiften.

Som ett komplement till de "inbyggda" finesserna i Python så finns ytterligare Pythonfiler för P-uppgiften. Utnyttja gärna dessa, men tänk på att i enlighet med hederskodexen ALLTID ange varifrån koden kommer när det inte är din egen.

Efter kursens slut kan P-delen endast redovisas i omtentaperioder och ger maximalt betyget tre. Eftersom datorsystemen byts eller uppgraderas årligen så bör du vara medveten om att tiden du har på dig att redovisa din P-del är begränsad. Väntar du mer än ett år från kursstart med att redovisa kan lydelsen till din P-uppgift behöva bytas ut. Du måste då ta kontakt med kursledaren. Vi reserverar oss för att byten av datorsystem kan medföra att vissa eller samtliga P-uppgifter inte går att utföra i framtiden. Du kan alltså bara vara säker på att det går att redovisa din P-del fram till nästa kursstart. Lydelsen som ligger ute på nätet kan ändras när som helst. Se därför till att du skriver ut den lydelse du har valt och håller rätt på den tills du har redovisat.

Krav på P-uppgiftslösningen

Utöver kraven på funktionalitet som finns i uppgiftslydelsen gäller detta alltid:

Programmet ska vara användarvänligt och presentera sig vid programstart. Tydliga instruktioner ska ges på skärmen. Det ska vara lätt att förstå vad programmet skriver ut. Det är tillåtet att anta att indatafiler är felfria om inte annat anges i uppgiftslydelsen. Ingen felkoll behöver göras för att upptäcka om indatafiler verkligen existerar.

Programmet ska vara kommenterat upptill med författare, datum och ev revisionsdatum. Överkommentera inte programmet i övrigt. Tänk på att det är kvalitet och inte kvantitet på kommentarer som räknas.

Programmet ska vara vettigt uppdelat i klasser och metoder, och metoder ska inte vara alltför långa (max en skärmsida). Det ska vara lätt att i efterhand gå in och förstå och ändra i programmet. Robust, flexibelt och lättläst är nyckelord.

Varje klass, instansvariabel och metod ska vara försedd med kommentarer. Ange vad klassen och variabeln representerar och vad metoden gör. För metoder bör man också ange vad indata (parametrar) och utdata (retur-värde) betyder. Det ska räcka att läsa kommentar och metodhuvud för att förstå hur en metod ska användas.

Namn på klasser, variabler och metoder ska vara vettiga. Alla deklarerade namn ska vara på samma språk, liksom alla kommentarer (engelska namn och svenska kommentarer är OK). Koden skall vara snyggt formaterad. Nästan identiska kodstycken ska inte upprepas. Gör i stället generella klasser och metoder. Inför inte i onödan begränsningar. Inför konstanter för sådant som man kan tänkas vilja ändra framöver (om man skulle vilja arbeta vidare med din lösning) och för tal som inte ska ändras och går att beskriva med namn.

Betyg

Gradering av betyget på kursen avgörs helt av P-uppgiften. Observera att många P-uppgifter har en begränsad betygsskala och kan inte användas för att få alla betyg. Eftersom kursen utvecklas från år till år och betygssytemen därmed justeras kan vi endast garantera betygssystemets giltighet i ett år framåt. I övrigt gäller följande:

  • E = Godkänd P-redovisning med en riktig minnesbild av uppgift med fördefinierad spec/skelettprogram.

  • D = Godkänd P-redovisning med en riktig minnesbild av uppgift med egenhändigt skriven spec.

  • För betyg högre än D krävs att grunduppgiften redovisas före kursomgångens slut.

  • C = Kraven för D + ett "perfekt" program med korrekt hantering av felaktig inmatning, dvs inga anmärkningar i protokollet (väl uppdelat, ingen kodupprepning, vettigt dokumenterat, mm). Alternativt en uppgift med betyg från B på grunduppgiften och godkänd redovisning (dvs max tre påpekanden).

  • B = Uppgift eller extrauppgift med betyg B som är "perfekt" dvs inga anmärkningar i protokollet och med korrekt hantering av felaktig inmatning. Observera att kraven på ett "perfekt" program gäller hela programmet, inklusive ev extrauppgift.

  • A = Kraven för C + en extrauppgift med grafik eller avancerad algoritm. Observera att kraven på ett "perfekt" program gäller hela programmet, inklusive extrauppgiften.

    För den som vill ha ut ett betyg i det gamla siffersystemet finns det en mappning:

  • E eller D = 3.

  • C eller B = 4.

  • A = 5.

    Vill du i efterhand höja betyget finns det regler att följa, se regler för plussning på programmeringsteknikkursen.

    Om du är missnöjd med handledarens beslut om betyg kan du skicka ett e-brev till kursledaren där du förklarar din syn på betyget och bifogar alla filer.

     

  • Copyright © Sidansvarig: Sten Andersson <stene@nada.kth.se>
    Uppdaterad 2010-03-11