Nada

Kursprogram för DD1311 Programmeringsteknik med PBL för CL1, vt 2009

På kursens webbsida http://www.csc.kth.se/DD1311 finns aktuell information om kursen.

Lärare

Namn Datorpostadress Datorsal Datorer Övningssal
Föreläsare Linda Kann lk
Grupp 1 Maria Skeppstedt mariask Röd sal Röd01-Röd07 CSC-biblioteket (OB2 plan 4)
Grupp 2 John Häggkvist johnhagg Röd sal Röd15-Röd21 seminarierum 1537 (OB2 plan 5)
Grupp 3 (ej nybörjare) Sten Andersson stene Orange sal Orange01-Orange07 seminarierum 1635 (OB2 plan 6)

Studentexpedition

Nadas studerandeexpedition finns på Osquars backe 2 plan 2. Öppettider under terminstid: måndag, tisdag, torsdag, fredag 9.30-12.00, måndag-torsdag 13.00-15.00, telefon 08-790 80 77, e-post studentexp@nada.kth.se

Kurslitteratur

Kursboken ska läsas på egen hand parallellt med kursen (det räcker inte med att gå på föreläsningarna).

Som kurslitteratur kan du välja en av följande böcker:

gaddis Starting out with Python
av Tony Gaddis,
utgiven 2009,
ISBN 0-321-54941-4.
(har använts på OPEN, I och MEDIA under hösten 2008)
675 kr i kårbokhandeln.
Python Programming for the absolute beginner
av Michael Dawson,
utgiven 2006,
ISBN: 1-59863-112-8
(användes på S våren 2008)
250 kr i kårbokhandeln.
dawson
Läsanvisningar till bägge böckerna finns på kursens webbsida.

Mål

Kursen riktar sig till nybörjare. Efter godkänd kurs ska du kunna för att ha möjlighet att När man lär sig att programmera måste man samtidigt lära sig ett programspråk. I vårens kursomgång kommer programspråket Python att användas. PBL står för problembaserat lärande och innebär i likhet med verkligheten att du som deltagare serveras problem och inte lösningar. Problemen löser du genom diskussion och aktivt utnyttjande av kurslitteraturen.

Hederskodex

Skolan tillämpar en hederskodex i alla sina kurser och varje student förutsätts tillämpa hederskodexen. Den finns via länk på kursens webbsida.

Kursmoment

Kursen är uppdelad i tre delmoment:

Labbar

Kursens första moment, LAB1, består av laborationer som görs i grupper om två personer.

Varje laboration består av två eller tre programmeringsuppgifter, samt ett antal instuderingsfrågor.

För godkänt resultat på LAB1 krävs att du redovisar labbarna. Godkända redovisningar av labbarna medför även att det skriftliga provet blir mindre omfattande. För läsåret 2008-2009 gäller att det finns fem laborationer som vardera ger max 3% bonus till det skriftliga provet, under förutsättning att laborationerna redovisas på ett tillfredsställande sätt och i tid. Sammanlagt kan detta alltså ge 15% i bonus till provet.

Prov

Kursens andra moment, LAB2, består av ett individuellt skriftligt prov på grunderna i pythonprogrammering. En provfråga skulle t ex kunna se ut så här:

Vilken/vilka av följande satser skriver ut värdet av variabeln x?

Provet är ett obligatoriskt moment, men det är också tänkt att fungera som ett diagnostiskt prov där man kan se om man har några kunskapsluckor som behöver fyllas igen innan man börjar med P-uppgiften.

P-uppgift

Kursens tredje moment, LAB3, är en större, personlig programmeringsuppgift i Python; en "P-uppgift". Uppgifterna är tänkta att vara något så när svåra och tidskrävande, räkna med ca 80 timmar. Betyget i kursen ges av detta moment.

P-uppgiften redovisas i fyra steg, specifikation, prototyp, granskning och slutredovisning.

Det finns många olika uppgifter, och du ska inte göra samma uppgift som någon annan i din grupp. Uppgiftslydelsen kvitterar du ut hos din assistent i slutet av kursens första del.

Specifikation

Innan programmet skrivs ska en specifikation lämnas in. Syftet är att du ska tänka igenom problemet innan du försöker lösa det. Specifikationen ska innehålla följande delar: Specen tas med till en grupptimme för genomgång!

Prototyp
Prototypen är den första körbara versionen av ditt program. En prototyp behöver bara göra en del av det ditt färdiga program ska göra (hur stor del bestämmer du själv). Den kan t ex skriva ut en meny, eller läsa in data från en fil och skriva ut på skärmen.

Granskning
Innan det färdiga programmet kan redovisas för en handledare ska det testas (granskas) av en kurskamrat. Vid testen ska din granskare kritiskt granska ditt program, testköra det och fylla i ett granskningsprotokoll (finns på kursens webbsida, titta på LAB3:P-uppgiften ). Denna granskning är ett obligatoriskt moment. (Varje kursdeltagare måste granska en uppgift, och alla uppgifter som ska redovisas för handledare måste granskas först.) 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.

Slutredovisning
Du väljer (normalt via webben) en tid för slutredovisning. Uppgiftslydelsen, specifikationen med uppdaterad minnesbild, besiktningsprotokollet och granskaren ska medföras till slutredovisningen, liksom en färsk programutskrift, och förstås programmet. Om du tar med en egen dator till redovisningen ska den vara uppkopplad mot Internet, eftersom vi (för att förhindra fusk) jämför din lösning mot tidigare lösningar.

Betyg

Eftersom kursen utvecklas från år till år och betygssystemen därmed justeras kan vi endast garantera betygssystemets giltighet i ett år framåt. Detta är vad som gäller för kurser som startar under läsåret 2008-2009:

För att bli godkänd på kursen måste man klara av de tre momenten LAB1 (inledande arbete med labbar), LAB2 (prov på grunderna) och LAB3 (P-delen). Kursen ger sex högskolepoäng uppdelat på följande sätt (moment):

1.5hp LAB1 Labbar och hemuppgifter gjorda och redovisade i tid.

1.5hp LAB2 Det skriftliga provet godkänt.

3p LAB3 P-uppgiften godkänd.


Betyget på kursen avgörs helt av P-uppgiften. De flesta uppgifterna kan byggas på för att ge högre betyg. I övrigt gäller följande:
E = Godkänd P-redovisning av uppgift som lösts tillräckligt bra (max tre påpekanden).

D = Godkänd P-redovisning med ett perfekt program, dvs inga anmärkningar i protokollet (väl uppdelat, ingen kodupprepning, vettigt dokumenterat mm).

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

B = Kraven för C + en extrauppgift med betyg B (kan t ex vara svårare algoritm). Observera att kraven på ett perfekt program gäller hela programmet, inklusive ev extrauppgift.

A = Kraven för B + en extrauppgift med betyg A (kan t ex vara 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.

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

Plussa

På KTH finns av hävd en rätt att tenta om för att få högre betyg fast tentan redan är godkänd. I kurser med andra typer av examination (än tenta) måste vi av kostnadsskäl begränsa denna rätt. Följande regler gäller i denna kurs:

Krav på P-uppgiftslösningen

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


Detaljschema

Vecka 4 Lokal Moment
Tis 20 jan 10-12 D1 Förel 1: Indata/utdata, variabler
Ons 21 jan 8-10 Röd/Orange Labb 1
  10-11 Valfri plats Eget arbete
  11-12 CSC-biblioteket Repetition/frågestund
Tor 22 jan 13-14 E1 Förel 2: Slumptal, if-satsen, while-slingan, programplanering
Fre 23 jan 9-10 Sal: Grupptimme 1: Redovisa labb 1
 
Vecka 5    
Tis 27 jan 11-12 D1 Förel 3: for-slingan, strängar, tupler
Ons 28 jan 8-10 Röd/Orange Labb 2
  10-11 Valfri plats Eget arbete
  11-12 CSC-biblioteket Repetition/frågestund
Tor 29 jan 13-14 E1 Förel 4: Listor, uppslagslistor
Fre 30 jan 9-10 Sal: Grupptimme 2: Redovisa labb 2
 
Vecka 6    
Tis 3 feb 11-12 D1 Förel 5: Funktioner, parametrar, namnrymden
Ons 4 feb 8-10 Röd/Orange Labb 3
  10-11 Valfri plats Eget arbete
  11-12 CSC-biblioteket Repetition/frågestund
Tor 5 feb 13-14 E1 Förel 6: Filer, särfall, konservering
Fre 6 feb 9-10 Sal: Grupptimme 3: Redovisa labb 3
 
Vecka 7    
Tis 10 feb 11-12 D1 Förel 7: Klasser & objekt I
Ons 11 feb 8-10 Gul/Brun Labb 4
  10-11 Valfri plats Eget arbete
  11-12 CSC-biblioteket Repetition/frågestund
Tor 12 feb 13-14 E1 Förel 8: Klasser & objekt II
Fre 13 feb 9-10 Sal: Grupptimme 4: Redovisa labb 4
 
Vecka 8    
Tis 17 feb 11-12 D1 Förel 9: Klasser & objekt III
Ons 18 feb 8-10 Röd/Orange Labb 5
  10-11 Valfri plats Eget arbete
  11-12 CSC-biblioteket Repetition/frågestund
Tor 19 feb 13-14 E1 Förel 10: Klasser & objekt IV
Fre 20 feb 9-10 Sal: Grupptimme 5: Redovisa labb 5
 
Vecka 9    
Mån 23 feb 13-14 Sal: Grupptimme 6: Frågestund inför provet (Grupp 3 i 1535)
Tis 24 feb 10-12 D1 Förel 11: Repetition inför provet, info om P-uppgiften
 
Vecka 10    
Tis 3 mars 10-11 D31, D32, D33, D34, D35 Prov
  11-12 D1 Förel 12: Provrättning
Ons 4 mars 11-12 Sal: Grupptimme 7: Val av P-uppgift, info om specen (grupp 4 i 1535)
 
Vecka 11   Tentavecka
 
Vecka 12    
Mån 16 mars 10-12 Sal: Specredovisning
  13-14 Valfri plats Eget arbete
  14-16 Röd/Orange Labb, P-uppgiftens prototyp
Tor 19 mars 9-10 Röd/Orange Grupptimme 8: Visa prototypen
 
Vecka 13    
Tis 24 mars 9-10 D1 Förel 13: Sökning, sortering
  13-15 Röd/Orange Labb, arbete med P-uppgiften
  15-16 D1 Förel 14: Avlusning
Tor 26 mars 11-12 Sal: Grupptimme 9: Avlusningstips
 
Vecka 14    
Tis 31 mars 9-10 D1 Förel 15: Felhantering
  13-15 Gul/Brun Labb, arbete med P-uppgiften
  15-16 D1 Förel 16: GUI I
Tor 2 apr 9-10 Sal: Grupptimme 10: Genomgång av granskningsprotokollet
 
Vecka 15   Påsklov
 
Vecka 16    
Tis 14 apr 9-10 D1 Förel 17: GUI II
  13-15 Röd/Orange Labb, arbete med P-uppgiften
  15-16 F2 Förel 18: Granskning, programkvalitet
Tor 16 apr 9-10 Sal: Grupptimme 11: Inför redovisningen
 
Vecka 17    
Tis 21 april 8-10 Röd/Orange Labb, arbete med P-uppgiften
  15-17 Röd/Orange Labb, arbete med P-uppgiften
 
Vecka 18    
Tis 28 april 13-15 Röd/Orange Redovisning av P-uppgiften
  15-17 Röd/Orange Redovisning av P-uppgiften
 
Vecka 19    
Tis 5 maj 8-10 Röd/Orange Reservtid
  15-17 Röd/Orange Reservtid
 

Kursutveckling och synpunkter på kursen

Eftersom denna kurs ges för många studenter under flera års tid är vi tacksamma för synpunkter på kursen. En datorstödd kurutvärdering kommer att göras, men lämna gärna också synpunkter direkt till lärarna.