bild
Skolan för
datavetenskap
och kommunikation

Kursprogram för 2D1311 Programmeringsteknik med PBL för S1, vt 2006

På kursens webbsida http://www.nada.kth.se/kurser/kth/2D1311 finns aktuell information om kursen.

Mål

Kursen riktar sig till nybörjare. Avsikten med kursen är att ge dig som deltagare:
  • Ingenjörstänkande
    En civilingenjör förutsätts tänka på ett strukturerat sätt. Programmeringsteknik är en teknik för att lösa problem på ett strukturerat sätt både översiktligt och i detalj.

  • Insikt om datorer och program
    Som civilingenjör kommer du ställa krav på verktyg och program. Programmeringstekniken ger förståelse för hur program fungerar "bakom kulisserna", vilket underlättar kommunikation med andra ingenjörer och programutvecklare.

  • Praktisk erfarenhet
    Inom programmeringstekniken ingår problemlösning med programmering. Programmering ger dig mycket praktisk erfarenhet och datorvana vilket är till nytta både på teknis och i ditt framtida arbete.
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 (tidigare år har vi använt Java). 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.

Lärare

Namn Datorpostadress Prel datorsal Prel övningssal
Föreläsare Linda Kann linda@nada.kth.se alla ingen
Grupp 1 Carina Edlund carina@nada.kth.se Fagott/V26t D34 (E36_2/2)
Grupp 2 Öjvind Johansson ojvind@nada.kth.se Fagott/V26t E35
Grupp 3 Behrang Masoumi bema02@kth.se Fagott/V26t 4423 (D35_16/2)
Grupp 4 Henrik Gradin hegra@kth.se McLean/V29t 4523
Grupp 5 Leo Giertz legi02@kth.se McLean/V29t E31 (E32_2/3)
Grupp 6 Oscar Täckström me00_tcr@nada.kth.se McLean/V29t 4329
Grupp 7 (ej nybörjare) Martin Rehn rehn@nada.kth.se V155 4618
Grupp 8 Mika Cohen mikac@nada.kth.se V27t 1535
Grupp 9 (engelska) Irem Aktug irem@nada.kth.se V28t 1537
Grupp 10 Simon Grönlund simong@bonetmail.com V57 1625
Grupp 11 Linda Oppelstrup f98-lop@nada.kth.se V57 1635

Studentexpedition

Nadas studerandeexpedition finns på Osquars backe 2 plan 2. Öppettider under terminstid: måndag-fredag 9.45-11.30, måndag-torsdag 12.45-14.15, telefon 08-790 80 77, e-post studentexp@nada.kth.se

Kurslitteratur

bokbild Kursbok är
Python Programming for the absolute beginner
av Michael Dawson

ISBN: 1-59863-112-8
Pris: 280 kr i Kårbokhandeln.

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

Läsanvisning

Under första delen av kursen går vi igenom boken i ganska rask takt. Men bli inte förskräckt! I andra halvan av kursen repeteras och fördjupas kunskaperna under arbetet med P-uppgifterna.

Kapitelhänvisningarna nedan fungerar för både upplaga 1 och 2 av kursboken.

Läsanvisning:

  • Vecka 4: Kapitel 1-2 Att använda Python, print-satsen, kommentarer, variabler, strängar, beräkningar, indata
  • Vecka 5: Kapitel 3-4 Slumptal, if-satsen, while-slingan, programplanering, for-slingan, strängar, tupler
  • Vecka 6: Kapitel 5-6 Listor, uppslagslistor, funktioner, parametrar, namnrymden
  • Vecka 7: Kapitel 7-8 Filer, särfall(exceptions), konservering (pickling), klasser, metoder, objekt, konstruktor, attribut
  • Vecka 8: Kapitel 9 Objektorienterad programmering, arv, polymorfism, moduler
  • Vecka 9: Repetition
  • Vecka 13: Kapitel 10 Grafiska användargränssnitt (GUI)
  • Vecka 14: Kapitel 11-12 Grafikprogrammering med Pygame och LiveWires, ljud, animering och programutveckling

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 utmaningar (challenges) från kursboken, samt ett antal instuderingsfrågor. Utmaningarna finns sist i varje kapitel i boken, instuderingsfrågorna finns i labbhäftet.

  • Första labben: En valfri utmaning från kapitel ett samt utmaning 1 och 3 från kapitel två (instuderingsfrågorna redovisas skriftligt 26 jan).
  • Andra labben: Minst en valfri utmaning från kapitel tre samt en från kapitel fyra (redovisas 2 februari).
  • Tredje labben: Utmaning 2 eller 3 från kapitel fem samt två valfria från kapitel 6 (redovisas 9 februari).
  • Fjärde labben: Utmaning 1 och 4 från kapitel sju samt utmaning 2 från kapitel åtta (redovisas 16 februari).
  • Femte labben: En valfri utmaning från kapitel nio (redovisas 23 februari).

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 2005-2006 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 individiellt 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?

  • print 'x'
  • print ' x'
  • print x
  • x = raw_input()
  • Ingen av ovanstående.

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.

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-uppgift

P-uppgiften redovisas i tre steg, specifikation, 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.

Hederskodex

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

Studentexpedition

Nadas studerandeexpedition finns på Osquars backe 2 plan 2. Öppettider under terminstid: måndag-fredag 9.45-11.30, måndag-torsdag 12.45-14.15, telefon 08-790 80 77, e-post studentexp@nada.kth.se

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.

I förra omgångens kursanalys kan man se hur kursen fungerade då och vilka ändringar som planerades. Här är en kort samanfattning av ändringar införda i årets kurs:

  • Byte av programspråk från Java till Python, som är enklare.
  • Nytt utseende på kursens webbsidor (som fungerar bättre med Internet Explorer).
  • Ett generiskt datorprov som ständigt ligger uppe på nätet så att instudering till det skriftliga provet underlättas.

Schema

Nästan all undervisning ligger på tisdagar, med föreläsning på förmiddagen och labb efter lunch. Sist på eftermiddagen ligger en repetitionsföreläsning där du kan ta upp frågor om sådant du inte har begripit under dagen.

Under vecka 5-9 på torsdagarna kl 9-10 har du en grupptimme med din handledare, där veckans uppgifter ska redovisas.

På kurswebbsidan finns en länk till schemageneratorns schema för kursen. Förkortningarna i schemat tolkas så här:


Frl = Föreläsning
Ovn = Redovisning med gruppen
Lab = Datorövning
Le = Tid för eftertanke
RS = Repetitionsföreläsning

Detaljschema

vecka 4 Frl1 Introduktion till pythonprogrammering
Lab1 Arbete med labb 1, svar på instuderingsfrågorna redovisas skriftligt
(lämnas in torsdag 26 jan i sal D1 kl 10.00).
vecka 5 Frl2 Slump, villkor, slingor
Lab2 Arbete med labb 2
Ovn1 Redovisning av labb 2
vecka 6 Frl3 Listor, funktioner
Lab3 Arbete med labb 3
Ovn2 Redovisning av labb 3
vecka 7 Frl4 Filer, klasser
Lab4 Arbete med labb 4
Ovn3 Redovisning av labb 4
vecka 8 Frl5 Objektorientering
Lab5 Arbete med labb 5
Ovn4 Redovisning av labb 5
vecka 9 Frl6 Intro till P-uppgiften, programutveckling
Frl7 Repetition
Ovn5 Diskussion av provfrågor, val av P-uppgift
vecka 10 KS Skriftligt prov (datorprovet)
Frl8 Specskrivning
vecka 11 Ovn6 Specinlämning/bedömning
Lab P-uppgiftshjälp
vecka 12 Lab Arbete med P-uppgiften
vecka 13 Frl9 Sökning, sortering, GUI
Lab Arbete med P-uppgiften
vecka 14 Frl10 Grafikprogrammering
Lab Arbete med P-uppgiften
vecka 15 Påsklov
vecka 16 Finputsning av P-uppgiften
vecka 17 Redovisningar av P-uppgiften
vecka 18 Lab Redovisningar av P-uppgiften
Sidansvarig: <linda@kth.se>
Uppdaterad 2006-02-02