Programmeringsteknik med PBL för Bio1 och Bio2
KTH 2D1311 Programmeringsteknik, 2002-2003
Särskild information för Bio1, Bio2
Na
da

Senaste nytt
Hjälp
Hjälp med datorn hemma
Vanliga frågor
Referenser
Viktiga datum
Schema
Detaljschema
Kursprogram
Laborationer
Instuderingsdel
Prov
J-del
Betyg
Förkunskaper
Studiedisposition
Kurslitteratur
Lärare
Hederskodex
Synpunkter på kursen
Datorsalar
Allmänna kurssidan
info till handledare

Senaste nytt

Senast ändrad 12 maj 2004


Viktiga datum

2003-01-20 Välj handledare
2003-01-31 Rekommenderas att Labuppgift 2 är klar
2003-02-07 Rekommenderas att Labuppgift 3 är klar.
2003-02-14 Rekommenderas att Labuppgift 4 är klar.
2003-02-21 Rekommenderas att Labuppgift 5 är klar.
2003-02-28 Välj J-uppgift!
2003-02-27 och 2003-02-28 Individuellt prov
2003-02-28 sista dag för redovisning av PBL-uppgifter för bonus
(observera att du måste komma överens med din PBL-handledare om detta)
2003-03-14 Lämna in spec till handledaren !
2003-05-27 sista datum för redovisning av J-uppgift
2004-01-25 bonuspoängen försvinner, sista dag för plussning av betyget på J-uppgiften

Referenser



Förkunskaper

Kursen förutsätter att man känner till begrepp som operativsystem, filer och redigeringsprogram. Den som inte gör det uppmanas att ägna extra mycket tid åt kursen i början. Vissa föreläsningar anordnas speciellt som stöd för den som behöver det.

Lärare

Kursledare är Ann Bengtsson.
Datorpost: ann@nada.kth.se
Telefon: 08-790 6209
Enklaste sättet att komma i kontakt med kursledaren är att skicka datorbrev, näst enklast är att lägga en lapp i postfacket på Nada, Osquars Backe 2, plan 4 eller skicka ett vanligt brev till Nada, KTH, 100 44 Stockholm. Vill man träffa kursledaren personligen går det bra att titta in i rum 1614 på Nada, plan 6, men vill du vara säker så kom överens om en tid först. Det går förstås också bra att ringa!

PBL-handledare Bio1 (följer schemat för Bio1)

Handledare Datorpostadress Grupp  
Stefan Freyhult d99-sfr@nada.kth.se 1  
Joel Sjöstrand d99-jgs@nada.kth.se 2 filer
Martin Gülich d99-mgl@nada.kth.se 3 filer
Vahid Mosavat vahid@nada.kth.se 4  
Minna Laaksonen k00_laa@k.kth.se 5  
Ann Bengtson ann@nada.kth.se 6 filer

PBL-handledare Bio2 (följer schemat för Bio2)

Handledare Datorpostadress Grupp  
Stefan Freyhult d99-sfr@nada.kth.se 7  
Joel Sjöstrand d99-jgs@nada.kth.se 8 filer
Marko Petrovic marko@nada.kth.se 9  
Kristian Ronge d99-kro@nada.kth.se 10  
Ann Bengtson ann@nada.kth.se 11 filer


Preliminärt detaljschema

Schemat är preliminärt och kan vid behov stuvas om.
Schemat är mindre deltaljerat för kursens senare delar.

F = Föreläsning
Dat, Laboration = Datorövning
Datorsalarna ligger på Nada, Lindstedsvägen 3, plan 4 och har färgnamn: Orange, Röd, Gul, Grön, Brun

vecka 3

  • F1 tisdag 13-16 Kursuppläggning och introduktion till javaprogrammering
  • Laboration: Introduktion till datormiljön.
    OBS! Denna finns ej med på KTH-schemat för årskurs 2.
    Bio2: Onsdag 15/1 10-12 i Orange sal eller Torsdag 16/1 13-15 i Gul sal
    Bio1: Onsdag 13-15, salar: Orange, Röd
  • Laboration: pbl1 för Bio2: fredag 8-12
    Laboration: pbl1 för Bio1: fredag 13-17
    Vad ska vi göra då? Titta under Senast Nytt ovan!

vecka 4

  • F2 tisdag 13-15 Metoder och parametrar
  • Laboration: pbl2 för Bio2: måndag 9-13
    Laboration: pbl2 för Bio1: måndag 14-18
  • Laboration: pbl3 för Bio1: onsdag 13-17
    Laboration: pbl3 för Bio2: torsdag 12-16
  • Laboration: pbl4 för Bio1: fredag 13-17
  • F3 fredag 8-10 Repetitionslektion i liten sal för dem som tycker det är svårt
  • PBL-grupperna skall bildas under denna vecka

vecka 5

  • Laboration: pbl4 för Bio2: måndag 9-13
  • F4 onsdag 8-10 Klasser och instanser, del 1
  • Laboration enligt schema samt första träff i pbl-grupperna.

vecka 6

  • F5 Klasser och instanser, del 2
  • Laboration enligt schema.
    Pbl-grupperna träffas enligt överenskommelse.

vecka 7

  • F6 Mer om klasser, samt vektorer och listor
  • Laboration enligt schema.
    Pbl-grupperna träffas enligt överenskommelse.

vecka 8

  • F7 Grafik : Fristående fönster, interaktion m.m.
  • Laboration enligt schema.
    Pbl-grupperna träffas enligt överenskommelse.

vecka 9

  • F8 Matriser, mer om ArrayList, Algoritmer, Problemlösning, Specskrivning
    Den fiktiva J-uppgiften med spec och kommentarer finns här
  • Pbl-grupperna träffas enligt överenskommelse.
  • IP Individuellt prov + lab

vecka 10

    TENTAMENSVECKA

vecka 11

  • Jobba med din specifikation till J-uppgiften och lämna in den till din handledare enligt hans/hennes anvisningar.

vecka 12

  • F9 må 17/3 kl 8-10 sal D2

    Mer om grafiska gränssnitt och hur man får en bra struktur på ett program av J-uppgiftsstorlek med grafiskt gränssnitt.
    Ni som siktar på betygen 5 och 6 har säkert nytta av detta men alla är naturligtvis hjärtligt välkomna.

    Som förberedelse, provkör programmet DrawSinus som ligger på kursbiblioteket /info/prgbio/forelasningar/F7/DrawSinus.java, programmet kan också hämtas från kurshemsidan, se anvisningar under Senaste nytt.
    Läs gärna igenom programmet också. Vi kommer att gå igenom hur detta program kan delas upp i flera klasser med olika ansvarsområden. Före DrawSinus tar vi ett mindre exempel och efter (i mån av tid) tittar vi på ett större exempel.

  • Repetitionslektion ons 19/3 kl 8-10 sal D34
    För er som inte klarade provet eller känner er lite osäkra. Vi utgår från provfrågorna och repeterar grundbegrepp.
  • Repetitionslektion även den 20/3 kl 8-10 i sal D34. Första timmen får ni göra ett övningsprov, andra timmen går vi igenom detta prov och frågor i anslutning till det.

  • Specåterlämning i pbl-grupperna

vecka 13-15

  • J-uppgiftshjälp

    Bio1 ti 8-10 och to 8-10
    Bio2 ti 10-12 och on 10-12

    Vi har tillgång till ca 40 datorer varje labbpass och det finns ca 57 elever i Bio1 och ca 49 i Bio2.
    Alla är garanterade datorplats en gång i veckan och kan komma en gång till i mån av plats enligt följande:

    Bio1 ti 8-10 (företräde för pblgrupp 1-3)
    Bio1 to 8-10 (företräde för pblgrupp 4-6)

    Bio2 ti 10-12 (företräde för pblgrupp 7-9)
    Bio2 on 10-12 (företräde för pblgrupp 10-11)

vecka 16-18

    PÅSKLOV

vecka 19

  • J-uppgiftshjälp

    Vi skiftar företrädesgrupper v 19-21:
    Bio1 ti 8-10 (företräde för pblgrupp 4-6)
    Bio1 to 8-10 (företräde för pblgrupp 1-3)

    Bio2 ti 10-12 (företräde för pblgrupp 10-11)
    Bio2 on 10-12 (företräde för pblgrupp 7-9)

vecka 20-21

  • J-uppgiftshjälp och redovisningar


Kurslitteratur

Kurslitteraturen ska läsas på egen hand parallellt med kursen. Föreläsningar, övningar och laborationer täcker endast en del av kursmaterialet. Kurslitteraturen består av: Överblivna papper som delas ut under kursens gång finns också att hämta i bokhyllan utanför studentexpeditionen. Efter kursens slut kastas i allmänhet alla överblivna papper som hör till kursen.

Laborationer

Kursens första moment, LAB1, består av laborationer med instuderingsfrågor som görs i grupper om två personer alternativt en egendefinerad uppgift som innehåller minst en vektor med instanser av en egendefinerad klass.

Den första laborationen är en introduktion till det operativsystem och det redigeringsprogram som används i kursen. Efter första laborationen förväntas du klara dig själv i datorsalarna.

Under resten av kursens första period arbeter du med ovanstående labbar (alternativt PBL-uppgift). För godkänt resultat på LAB1 krävs att du antingen klarar det skriftliga provet eller redovisar labbarna (inklusive instuderingsfrågorna). Godkända redovisningar av labbarna medför att det skriftliga provet blir mindre omfattande. För läsåret 2003-2004 gäller att det efter den inledande labben om datormiljön finns fyra laborationer som vardera ger max 3.5% 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 14% i bonus till det skriftliga provet.

Därutöver rekommenderas du att göra frivilliga datorprov för att kontrollera dina kunskaper. Samtidigt kommer du att träna på samma frågor som används vid det skriftliga provet.

Kursens andra moment, LAB2, består av ett individiellt skriftligt prov på grunderna i programmering.


Instuderingsdel

Kursens första moment, LAB1, består av ett stort antal instuderingsfrågor som ska lösas med hjälp av PBL. Lösningarna redogör du för individuellt inom din PBL-grupp. Till din hjälp har du all kurslitteratur, kurshemsidan med länkar och exempel samt medlemmarna i din PBL-grupp.

Följande regler gäller för redovisning av instuderingsfrågorna:


J-del

Kursens tredje moment, LAB3, är en större, individuell programmeringsuppgift i Java; en "J-uppgift". J-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.
Specifikation
Innan programmet skrivs ska en specifikation lämnas in. Syftet med specifikationen är att du ska tänka igenom problemet och beskriva lösningen med ord innan du försöker programmera lösningen. Specifikationen kan vara en text som beskriver de klasser och metoder programmet ska innehålla eller så kan den vara en eller flera kompilerbara .java-filer som utgör ett programskelett som senare skall fyllas ut till ett färdigt program där funktionen hos klasser och metoder skrivits som kommentarer till det kompilerbara programskelettet. Specifikationen lämnas in till din handledare via mail, under möte eller på annat sätt som ni kommer överens om. Handledaren rättar specifikationen, kommenterar den och ger den betyget godkänd eller underkänd. En underkänd spec måste göras om, man behöver tänka mer på sin uppgift. Inför återlämnandet av specen skall man ha ritat en (grov) minnesbild över programmet man ska skriva.
Prototyper istället för specifikation
På en del kursomgångar kan man istället för att skriva en specifikation komma överens med handledaren om att redovisa en eller flera prototyper. Detta kan spara tid för den som vet hur man ska göra och sådana som vill prova sig fram. Om du kör fast med dina prototyper kan handledaren kräva att du skriver en specifikation i alla fall.
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 föra ett besiktningsprotokoll (pdf, ps). 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 dokumentera ditt program med javadoc. 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. Specifikationen med uppdaterad minnesbild, besiktningsprotokollet och granskaren ska medföras till slutredovisningen. 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å J-uppgifterna med länkar till lydelserna för att du ska kunna skumma och bestämma dig för en uppgift.

J-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 J-uppgiften.

Som ett komplement till de "inbyggda" finesserna i Java så finns ytterligare Javafiler för J-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.

Under länken Javafiler för J-uppgiften finns ytterligare en fiktiv J-uppgift. Den handlar om KTH:s matställen. En spec till denna uppgift kan se ut så här.

Efter kursens slut kan J-delen endast redovisas i omtentaperioder. Eftersom datorsystemen byts eller uppgraderas årligen så bör du vara medveten om att tiden du har på dig att redovisa din J-del är begränsad. Väntar du mer än ett år från kursstart med att redovisa kan lydelsen till din J-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 J-uppgifter inte går att utföra i framtiden. Du kan alltså bara vara säker på att det går att redovisa din J-del fram till nästa kursstart.

Krav på J-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

Eftersom kursen utvecklas från år till år och betygssytemen 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 2003-2004:

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

1p LAB1 Labbarna, instuderingsfrågorna eller PBL-uppgift gjord och redovisad i tid. Detta tillgodoräknas också om det skriftliga provet blir godkänt.

1p LAB2 Det skriftliga provet godkänt.

2p LAB3 J-uppgiften godkänd.

Gradering av betyget på kursen avgörs helt av J-uppgiften. Observera att många J-uppgifter har en begränsad betygsskala och kan inte användas för att få alla betyg. I övrigt gäller följande:
3 = Godkänd J-redovisning med en riktig minnesbild.

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

4 = Kraven för 3 + ett "perfekt" program, dvs inga anmärkningar i protokollet (väl uppdelat, ingen kodupprepning, vettigt dokumenterat, dock utan krav på javadoc mm).

5 = Kraven för 4 + en extrauppgift med grafik eller avancerad algoritm.

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


Hederskodex

På Nada används en gemensam hederskodex för alla Nadakurser. Du är själv ansvarig att läsa igenom och följa den.

Hjälp och handledning

Hjälp finns att få (i prioritetsordning):
  1. Från "Vanliga frågor".
  2. Från länkar i detaljschemat.
  3. Från kurslitteraturen.
  4. Från referenserna på webben.
  5. Genom diskussion med labbkamraten.
  6. Under laborationerna.
  7. Via datorbrev till en lärare. Många lärare tar hand om mer än en kurs. Var vänlig och börja alla datorbrev med ämnesraden (subject) ": ..." när du kontaktar en lärare i kursen.
  8. Under läsveckor av allmän handledare i Nadas datorsalar (Osquars Backe 2, plan 4) vardagar klockan 11-13, 17-20. Rummet finns mellan sal gul och grön (knacka och fråga efter allmänhandledare). Deras schema finns på webben.
  9. Under redovisningstillfällena.

Hjälp med Unixkommandon kan man hitta i häftet Lathund i Unixanvändning på Nada som du når från Nadas sida om Datoranvändning.
Häftet finns också att köpa på studentexpeditionen för 20 kr.


Hjälp med datorn hemma

kan man få från teknologdatorhjälpen. Tveka inte att fråga dem, de finns för Din skull!

Nadas datorsalar

Nadas datorsalar sköts av Nadas systemgrupp. Man kan få hjälp med Nadas datorer Vänd dig till dem om du får problem med ditt passerkort eller konto på Nada.

Studenterna har tillträde till terminalsalarna dygnet runt, men terminalsalarna är dagtid ofta bokade för andra kurser.

Som inpasseringskort använder du din kårlegitimation (på kvällar och helger krävs även koden).

I Nadas datorsalar kan man få handledning från Nadas allmänhandledning. Deras schema finns på webben.


Synpunkter på kursen

Synpunkter på kursen vill vi väldigt gärna ha. Synpunkter kan lämnas direkt till någon lärare i samband med lektioner, via datorpost eller vanlig post. Vid kursens slut kommer en datoriserad enkätundersökning genomföras. Denna enkät är anonym och väldigt viktig för kursen såväl som för lärarna.

Kom under kursens gång ihåg att ju snabbare du kommer med kommentarer, desto snabbare kan du ta del av förbättringar!

Du kan också lämna dina synpunkter direkt till examinator Olle Bälter.



^ Upp till allmänna kurssidan.


Sidansvarig: <ann@nada.kth.se>
Senast ändrad 14 mars 2003
Tekniskt stöd: <webmaster@nada.kth.se>