KTH 2D1311 Programmeringsteknik med PBL, 2001-2002
Särskild information för V1
Nada
Senaste nytt
Hjälp
Vanliga frågor och fel
Referenser
Registrering
Viktiga datum
Detaljschema
Aktuell vecka
PBL-introduktion
Instuderingsdel
Tentamen
J-del
Betyg
Allmänna kurssidan
Förkunskaper
Kurslitteratur
Studiedisposition
Hederskodex
Lärare
Synpunkter på kursen
Datorsalar
(info till handledare)

Senaste nytt


Hjälp och handledning

Hjälp finns att få (i prioritetsordning):
  1. Från "Vanliga frågor och fel".
  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 (då redovisningar inte är prioriterade).
  7. Via datorbrev till en lärare.
  8. Under läsveckor av allmän handledare i Nadas datorsalar (Osquars Backe 2, plan 4) vardagar klockan 11-13, 17-20 (knacka och fråga efter allmänhandledare).
  9. Under redovisningstillfällena.

För datorrelaterade fel (inloggningsproblem, epost, trasiga datorer etc), se "Datorsalar".


Referenser


Viktiga datum

2001-09-03 (må v.36) Kursstart klockan 12 i V2.
2001-09-21 (fr v.38) Sista presentationsdagen för betygspoäng på instuderingsmoment 1.
2001-09-28 (fr v.39) Sista presentationsdagen för betygspoäng på instuderingsmoment 2.
2001-10-05 (fr v.40) Sista presentationsdagen för betygspoäng på instuderingsmoment 3.
2001-10-12 (fr v.41) Sista presentationsdagen för betygspoäng på instuderingsmoment 4.
2001-10-19 (on v.42) Sista presentationsdagen för betygspoäng på instuderingsmoment 5.
2001-10-27 (lö v.43) Ordinarie tentamen klockan 14-17 i D31, E31-36, 51-53.
2001-11-02 (fr v.44) Sista inlämningsdagen för betygspoäng på specifikationen.
2001-11-23 (fr v.47) Sista redovisningsdagen för betygspoäng på prototypen.
2001-12-12 (on v.50) Sista redovisningsdagen för betygspoäng på J-uppgiften.
2002-01-12 (lö v.02) Omtentamen klockan 14-17 i E31-34.
2002-08-31 Uppnådda betygspoäng försvinner.

Preliminärt detaljschema

Detaljschemat beskriver vad som gås igenom på föreläsningar, övningar och labbar. Här finns också läshänvisningar till boken samt länkar till föreläsningsanteckningar och Javaexempel som tas upp på föreläsningar, övningar, labbar och information från PBL-handledare.

Detaljschemat är preliminärt och moment kan stuvas om. Målsättningen är dock att behålla momentens inbördes ordning.

Vecka Aktivitet
36
  • Föreläsning 00: Programmeringsteknik med PBL
    • Varför ska jag lära mig programmeringsteknik?
    • Vad måste jag göra i kursen?
    • Vad är programmeringsteknik?
    • Vad är PBL?
    • Labbkompisar
    Föreläsning 01: Grunderna
    (Avsnitt ur boken: 1, 19.4-19.7, 2, 3.1-3.3, 4, 14.1-14.5, 14.8-14.11, 7)
    • Programmering med Java
    • Programspråket Java
    • Källkodsexempel
    • Källkod
    • Java API-exempel
    • In- och utmatning
    OH-bilder: f00.pdf, f00.ps, f01.pdf, f01.ps.
    Utskriftsversion: f00.pdf, f00.ps, f01.pdf, f01.ps.
    Javafiler: Schema.java, InOchUtmatning.java.
  • Labb: Introduktion till datormiljön och registrering
    Javafiler: startup.bat, _emacs, Test.java.
  • Övning och labb: PBL-intro 01
  • Övning och labb: PBL-intro 02
37
  • Föreläsning 02: Mer källkod
    (Avsnitt ur boken: 12, 15, 16, 8.1-8.4, 10)
    • Styrstrukturer
    • Val
    • Slingor
    • Operatorer
    • Källkodsexempel med minne
    Föreläsning 03: Datastrukturer
    (Avsnitt ur boken: 3, 6, 28)
    • Vad är en datastruktur?
    • Vad är en datatyp?
    • Primitiva datatyper i Java
    • Icke-primitiva datatyper i Java
    • Minnesexempel med datastrukturer
    • Vektorer i Java
    Föreläsning 04: Prototypprogrammering och metoder
    (Avsnitt ur boken: 14, 19.7)
    • Prototyp-programmering
    • Anrop kontra metoddeklaration
    • Metoddeklarationens huvud
    • Exempel med anrop av matematikmetod
    • Exempel med ordvändning
    OH-bilder: f02.pdf, f02.ps, f03.pdf, f03.ps, f04.pdf, f04.ps.
    Utskriftsversion: f02.pdf, f02.ps, f03.pdf, f03.ps, f04.pdf, f04.ps.
    Javafiler: DoWhile.java, Delbarhet.java, Ordspel.java, Roturdragning.java.
  • Övning och labb: PBL-intro 03
  • Övning och labb: PBL-intro 04
38
39
40
41
  • Föreläsning 08: Information om J-delen
    (Avsnitt ur boken: 14.11)
    • Vad är en J-uppgift?
    • Vad måste jag göra?
    • Specifikation
    • Prototyp
    • Granskning
    • Slutredovisning
    • Miniexempel: Kalkylator
    OH-bilder: f08.pdf, f08.ps.
    Utskriftsversion: f08.pdf, f08.ps.
    Javafiler: kalkylatorexemplet.
  • Labb och PBL-möten: PBL-uppgifter
    Filer och exempel från PBL-handledarens genomgångar.
42
43
  • Tentamen lördag 2001-10-27 klockan 14-17 i D31, E31-36, 51-53.
    Förbered dig inför tentamen med hjälp av extentorna i kursbunten och extentorna från webben.
44
  • Föreläsning 10: Grafik
    • Grafiska program
    • Grafiska användargränssnitt
    • Arv
    • Metodsupport
    • Händelser
    • Litet grafikexempel: KlickApplet
    OH-bilder: f10.pdf, f10.ps.
    Utskriftsversion: f10.pdf, f10.ps.
  • Repetitionsföreläsning 01: För de som missade tentan.
  • Repetitionsföreläsning 02: För de som missade tentan.
  • Repetitionsföreläsning 03: För de som missade tentan.
  • Inlämning av specifikation senast fredag 2001-11-02 klockan 17 på Nadas studentexpedition, Osquars Backe 2, plan 2.
45
  • Övning och labb: Utlämning av specifikationer enligt speciellt schema.
46
  • Labb: J-delshjälp. Prototypredovisningar.
47
  • Labb: J-delshjälp. Prototypredovisningar (sista redovisningsveckan för betygspoäng).
48
  • Labb: J-delshjälp. J-uppgiftsredovisningar.
49
  • Labb: J-delshjälp. J-uppgiftsredovisningar.
50
  • Labb: J-delshjälp. J-uppgiftsredovisningar (sista redovisningsveckan för betygspoäng).


Registrering

För att vi ska kunna rapportera in resultat måste du registrera dig till kursen. Detta görs normalt sett på första laborationen genom att du fyller i ett registreringsformulär. För att du sedan ska få ut dina poäng krävs dessutom att ditt kansli har anmält dig till kursen. Som en obligatorisk kurs ska detta ske med automatik.

PBL-introduktion

Efter en inledande introduktionslaboration kommer du under två veckor arbeta med några få miniproblem ("PBL-intro") som du löser med hjälp av PBL. Tanken är att du efter dessa två veckor ska kunna lösa liknande problem på egen hand (så långt som möjligt). Miniproblemen tänker du först igenom och löser i övningssal för att direkt efteråt skriva in programmet och provköra på en dator.

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 i överenskommelse med din PBL-handledare. 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:

Frågorna är uppdelade i sex avsnitt: grundläggande programmering och de fem momenten på tentan. Vissa frågor berör flera avsnitt.


Tentamen

Kursens andra moment, TEN2, utgörs av en tentamen. Ingen tentaanmälan krävs. Alla är välkomna till tentan. På ordinarietentor sätts placeringslistor upp vid tentasalarna.

Tentan består av sex uppgifter. På varje uppgift finns en a- och en b-del, där a- eller b-delen måste besvaras rätt. (Avsikten är att man ska behärska alla moment för att bli godkänd; det räcker inte med att kunna hälften väl.) På tentan ges bara betyget Godkänd/Underkänd.

Hjälpmedel är en Javabok alternativt Javahäftet.

Tentaresultatet anslås på institutionens anslagstavla (Osquars Backe 2, plan 3). Klagomål på rättning av tentan lämnas till kursledaren inom tre veckor från det att tentaresultatet anslagits. Observera att du inte får ta med dig tentan från expeditionen om du vill klaga på rättningen. Kolla tentan vid expeditionen, skriv ned dina kommentarer och kontakta sedan kursledaren.

Förbered dig inför tentamen med hjälp av extentorna i kursbunten och extentorna från webben.


J-del

Kursens tredje moment, LAB3, är en större, individuell programmeringsuppgift i Java; en "J-uppgift". Regler för J-delen finns i J-delshäftet. J-delen redovisas i fyra steg under kursens andra period. 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.
Specifikation
Innan programmet skrivs ska en datorskriven specifikation lämnas in till din övningsledare som kommenterar den, och ger den betyget godkänd/underkänd. Blir du underkänd måste en ny specifikation lämnas in. Syftet med specifikationen är att du ska tänka igenom problemet innan du försöker lösa det.
Prototyp
Några veckor efter det att specen lämnats in ska du redovisa en prototyp, d v s en körbar version av ditt program där endast vissa metoder (du föreslår själv vilka i specen) finns med och fungerar. Syftet med prototypen är att du ska komma igång med programmeringen.
Granskning
Innan det färdiga programmet kan godkännas ska det testas av en elev. Eleven 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 testeleven kritiskt granska ditt program, testköra det och föra ett besiktningsprotokoll. Denna granskning är ett obligatoriskt moment. Varje kursdeltagare måste granska en uppgift. 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.
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. Om allt annat fallerar kan du vända dig till kursledaren för att utföra en särskild granskning. Granskningsprotokollet finns på webben och kan skrivas ut.
Slutredovisning
Du väljer och tilldelas en tid för slutredovisning. Specifikationen, besiktningsprotokollet och granskaren ska medföras till slutredovisningen.

J-uppgifterna är av olika svårighetsgrad. Högre svårighetsgrad ger fler betygspoäng (se "Betyg"), men tar givetvis också längre tid att göra. Betygspoängen finns angiven på J-uppgiften. Svårare uppgifter (t ex uppgifter med grafik) ställer högre krav i och med att du måste jobba mer självständigt och inte alltid kan räkna med hjälp. Handledarnas mål är att hinna hjälpa så många som möjligt att uppnå gränsen för godkänt. Tips! Välj en uppgift som har grafik som extrauppgift, vilken du kan hoppa över om tiden inte räcker till.

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å hederskodexen.

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. Samtidigt som betygspoängen försvinner så 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.


Betyg

För att bli godkänd på kursen måste man klara av de tre momenten LAB1 (instuderingsdel), TEN2 (tentamen) och LAB3 (J-del) samt ha samlat ihop tillräckligt många betygspoäng. Slutbetyget i kursen ges av tiotalssiffran i betygspoängssumman. Betygspoäng får du från:
att du redovisar instuderingsdelen i tid (max 5 poäng),
att du klarar ordinarietentan (2 poäng),
att du lämnar in specifikation i tid och blir godkänd (3 poäng),
att du redovisar prototypen i tid (4 poäng),
att du redovisar J-uppgiften i tid (2 poäng) samt
från J-uppgiftens betygspoäng (17­52 poäng)
Betygsgränserna är följande under 2001-2002:
30-39 poäng ger betyg 3
40-49 poäng ger betyg 4
50-59 poäng ger betyg 5
60 poäng eller mer ger betyg 6.
Betyget ges alltså av de betygspoäng och J-uppgiftens poäng som är giltiga när du redovisar J-uppgiften. Observera att samtliga betygspoäng försvinner ett år efter kursstart, exakt datum anges på kvittensbladet. Lydelser och betygsgränser hänger samman. Det är alltid innevarande års version som gäller, fram till nästa kursstart.

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.

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.

Studiedisposition

Här följer ett förslag till disposition av tiden. Kursen är på 4 poäng vilket motsvarar 4*40 = 160 timmar. 21 timmar används till schemalagda föreläsningar och övningar samt 3 timmar till tentamen. Återstår 136 timmar fördelade på:

Av de 136 timmarna finns alltså knappt 60 timmar kvar som vi förutsätter att du utnyttjar till kursen!


Hederskodex

På Nada förekommer en stor andel s k alternativ examination, d v s examination på annat sätt än genom tentamen. Skälet är oftast att den alternativa examinationen bedöms som mer meningsfull av både lärare och studenter. En förutsättning för att den alternativa examinationen ska fungera som kunskapskontroll är dock att studenterna gör uppgifterna själva. Den student som fuskar genom att inte göra uppgiften själv har inte fått den kunskap som betyget anger. KTH ska inte bara ge kunskaper utan även förbereda för arbetslivet och där är det ärligt beteende utan fusk som gäller.

För att bli godkänd på en labb så ska du dels ha utfört labbuppgiften och dels kunna redogöra för hela uppgiften och lösningen. Varje student ska kunna redogöra för hela uppgiften och lösningen även om labben gjorts i grupp. Vid arbete i grupp ska alla gruppmedlemmar bidra till arbetet.

Enligt KTH:s jurist är det att betrakta som fusk om en student försöker att redovisa en laborationsuppgift som vederbörande inte löst själv. Det är alltså fusk att kopiera en lösning eller delar av en lösning från någon annan utan att redovisa att du gjort så även om du sätter dig in i lösningen, förstår den och kan redogöra för den. Det är inte heller tillåtet att inleda andra i frestelse att fuska genom att göra sina egna lösningar lätt tillgängliga. För denna kurs tillämpas följande hederskodex:

Grundregeln är att det jobb du gör i kursen på labbar och tenta ska du göra själv. Vid redovisning av labbar som utförts i grupp ska varje individ kunna redogöra i detalj för hela lösningen.

Ibland, speciellt när man skriver program, kan det vara nödvändigt att fråga någon annan (en kamrat eller en handledare) om hjälp med att hitta fel. Det kan också vara aktuellt att utnyttja färdiga exempelprogram från exempelvis kurslitteraturen. Detta är tillåtet förutsatt att du uppfyller följande villkor.

Varje annan form av samarbete eller utnyttjande av andras lösningar betraktas som ett brott mot hederskodexen och kan resultera i att du måste göra en ny uppgift och/eller att ärendet överlämnas till KTH:s juridiska avdelning som bedömer om det ska tas upp i KTH:s disciplinnämnd.
För denna kurs gäller speciellt att det alltid är tillåtet att diskutera lösningar med andra, men inte att skriva av eller kopiera andras lösningar. För J-delen gäller att alla delar ska lösas individuellt. Observera att alla lösningar till J-uppgifter lagras och att nya lösningar jämförs med de gamla för att motverka kopiering.

Det är naturligtvis tillåtet att använda material som finns i läroboken eller som kursledningen tillhandahåller. Gör du det, så ska du skriva en kommentar till de aktuella delarna som anger var de härrör ifrån (allt enligt hederskodexen). Om examinator bedömer att du fått för mycket hjälp med din lösning tilldelas du en ny uppgift.


Lärare

Kursledare är Erik Forslin.
Datorpost: efo@nada.kth.se
Telefon: 08-7909690

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, 4 tr eller skicka ett vanligt brev till Nada, KTH, 100 44 Stockholm. Vill man träffa kursledaren personligen, se kursledarens hemsida.

Examinator på kursen är Olle Bälter.

Kursens PBL-handledare är:

Grupp Lärare Datorpostadress  
  Erik Forslin efo@nada.kth.se Filer från genomgångar
1 Stefan Freyhult stefanfr@kth.se Filer från genomgångar
2 Sergej Gratchev e99_sgr@e.kth.se Filer från genomgångar
3 Johan Hellsvik f97-jhe@nada.kth.se Filer från genomgångar
4 Sara Lind l99_lda@l.kth.se Filer från genomgångar
5 Linda Oppelstrup f98-lop@nada.kth.se Filer från genomgångar
6 Marko Petrovic marko@nada.kth.se Filer från genomgångar
7 Fredrik Sandstål fsa@kth.se Filer från genomgångar
8 Jonas Sjöstrand jonass@nada.kth.se Filer från genomgångar
9 Simon Tholerus simon_tholerus@hotmail.com Filer från genomgångar
10 Kristian Ronge d99-kro@d.kth.se Filer från genomgångar
11 Anders Orebäck oreback@nada.kth.se Filer från genomgångar
12 Joel Gunnarsson Sjöstrand d99-jgs@nada.kth.se Filer från genomgångar
13 Hedvig Sidenbladh hedvig@nada.kth.se Filer från genomgångar
14 Thomas Larsson m94_las@nada.kth.se Filer från genomgångar
15 Per-Anders Staav pastaav@algonet.se Filer från genomgångar
16 Patrick Liu pliu@kth.se Filer från genomgångar
17 Pontus Lindqvist d99-pli@nada.kth.se Filer från genomgångar
18 Martin Gülich d99-mgl@nada.kth.se Filer från genomgångar
19 Måns Rullgård e99_mru@e.kth.se Filer från genomgångar
20 Mattias Marder marder@telia.com Filer från genomgångar
21 Johan Lilja johan@wingenius.com Filer från genomgångar
       

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!


Datorsalar

De datorsalar som används i kursen administreras av Mimers bar.

Adress: Osquars Backe 20
Supporttelefon: 08-7909300
Datorpost: mimer@midgard.kth.se
Öppettider: vardagar 9-16, torsdagar 9-18

Vänd dig till dem om du får problem med inloggning, datorpost o s v. Nada har inget ansvar för programvara i dessa salar.


^ Upp till allmänna kurssidan.


Sidansvarig: <efo@nada.kth.se>
Senast ändrad 16 september 2002
Tekniskt stöd: <webmaster@nada.kth.se>