Programmeringsteknik med PBL för och L1
KTH 2D1311 Programmeringsteknik, 2001-2002
Särskild information för L
Nada

info till handledare

^ Upp till allmänna kurssidan.


Senaste nytt

Senast ändrad 16 september 2002


Viktiga datum

2002-01-22 sista dag för val av handledare.
2002-02-27 sista dag för redovisning av PBL-uppgifter (observera att du måste komma överens med din PBL-handledare om detta)
2002-03-09 ordinarie tentamenstillfälle
2002-03-14 sista bonusdatum för specinlämning
2002-03-16 kompletteringsskrivning för de som skrev ordinarie tentamen OCH hade fel på max ett tal
2002-04-25 sista bonusdatum för prototyp (redovisning på datorsalsövning)
2002-05-16 sista bonusdatum för redovisning av J-uppgift
2003-01-25 bonuspoängen försvinner

Referenser


Kursfiler

Kursbiblioteket Labbhäften


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.

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!

Lärare

Kursledare är Olle Bälter.
Datorpost: balter@nada.kth.se
Telefon: 08-790 6341
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 på IPLab (Nada, plan 6), men vill du vara säker så kom överens om en tid först eftersom Olle arbetar även på Karolinska Institutet.

PBL-handledare

Handledare Datorpostadress Grupp Fullbokad?
Dennis Persson f98-dpe@nada.kth.se 32 1 kvar
Dennis Tell dennis@nada.kth.se 33 1 kvar
Gustav Hast ghast@nada.kth.se 41 Överfull
Fredrik Zetterling fzet@pdc.kth.se 42 Full
Joel Gunnarsson Sjöstrand d99-jgs@nada.kth.se 43 4 kvar
Johan Hellsvik f97-jhe@nada.kth.se 11 Full
Magnus Hult d00-mhu@nada.kth.se 12 1 kvar
Magnus Rosell f95-mro@nada.kth.se 13 2 kvar
Sara Lind l99_lda@l.kth.se 21 1 kvar
Olof Kjellström f95-okj@nada.kth.se 22 1 kvar
Thomas Larsson m94_las@nada.kth.se 23 Full

Schema

Under kursens första period ges en föreläsning per vecka. Första veckan i kursens andra period (efter ordinarie tentamen) hålls en föreläsning för alla samt tre repetitionsföreläsningar (för att ge den som missade tentan en chans att komma ifatt).

Under de två första veckorna av kursen hålls två kombinerade övnings- och datorsalsövningar per vecka. Observera att du förutsätts arbeta med kursen även utanför schemalagd tid. Introduktionslabben är schemalagd till två timmar och de allra flesta blir klara på den tiden, men personer som aldrig har hållt på med datorer förut tar mer tid på sig.

I övrigt sker undervisningen i PBL-grupper om ca sex personer (eller i max tvåpersonersgrupper om man väljer att följa labbhäftet). De som vill får forma egna grupper och föreslå uppgifter att arbeta med under period 3.

J-uppgiften redovisas under kursens andra period.

KTHs schemagenerator kan användas för att skapa ett grafiskt schema, men salsändringarna framgår inte där. Titta här istället.

Preliminärt detaljschema

Schemat är preliminärt och kan vid behov stuvas om.

F = Föreläsning
Ö = Salsövning
ÖDat = Kombinerad sal- och datorövning
Dat = Datorövning
FR = Repetitionsföreläsning för den som missade tentan

vecka 3

  • F1 Kursuppläggning och introduktion till javaprogrammering
  • Dat1 Introduktion till datormiljön.
  • ÖDat1 Uppgift 1 (se labbhäftet).
  • ÖDat1 Uppgift 2 (se labbhäftet).

vecka 4

  • F2 Instanser, introduktion
  • ÖDat3 Uppgift 3 (se labbhäftet)
  • F3 Lågfartsföreläsning
  • ÖDat4 Uppgift 4 (se labbhäftet) Sista datum för val av handledare 25 januari

vecka 5

  • F4 Instanser, fortsättning
  • Dat1 Datorsalshjälp/Redovisning

vecka 6

  • F5 Metoder och parametrar
  • Dat4 Datorsalshjälp/Redovisning

vecka 7

  • F6 Vektorer
  • Dat5 Datorsalshjälp/Redovisning

vecka 8

  • F7 Grafik
  • Dat6 Datorsalshjälp/Redovisning

vecka 9

  • F8 Allt om tentan
  • Dat7 Datorsalshjälp/Redovisning

vecka 10

  • TENTAMEN lördag 9 mars kl 14-17 i D41, E31-36, 51-53, Q11-15, 21-25, 31-36. Placeringslistor kommer att anslås.

vecka 11

  • F9 Specskrivning
  • Ö1 Specskrivningshjälp
  • FR1 Repetitionsföreläsning
  • FR2 Repetitionsföreläsning Inlämning spec senast torsdag 14 mars kl 16.00
  • FR3 Repetitionsföreläsning
  • KOMPLETTERINGSSKRIVNING lördag 16 mars 9-12 i E31 o E33

vecka 12

  • Ö2 Återlämning av rättade specar.
  • J-uppgiftshjälp, prototypredovisningar. Inlämning av kompletterad spec senast torsdag 21 mars kl 16.00

_

    PÅSKLOV

  • OMTENTAMEN lördag 6 april kl 14-17 i D31-35, 41, E31-36, 51.

vecka 16

  • J-uppgiftshjälp, prototypredovisningar

vecka 17

  • J-uppgiftshjälp, prototypredovisningar senast torsdag 25 april

vecka 18

  • J-uppgiftshjälp

vecka 19

  • J-uppgiftshjälp. Redovisning av J-uppgifter på to o fre utanför schemat

vecka 20

  • Redovisning av J-uppgifter på ti o on utanför schemat, sista bonusdatum onsdag 15 maj


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 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 instuderingsfrågor (alternativt PBL-uppgift). För godkänt resultat på LAB1 krävs att du har gjort minst 60% av instuderingsfrågorna.

Därutöver rekommenderas du att göra frivilliga prov för att kontrollera dina kunskaper. Godkända resultat på dessa prov medför att slutprovet blir mindre omfattande.

Du kan få hjälp med labbarna utanför schemalagt labbpass från Nadas allmänhandledning. Deras schema finns på webben.

Kursens andra moment, LAB4, består av ett individiellt slutprov 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:

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


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 datorskriven specifikation lämnas in. 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 .java-fil, vara kompilerbar och lämnas in via webben. En handledare kommer att kommentera den och ge den betyget godkänd/underkänd. Vid återlämningen ska du ta med dig en minnesbild över programmet. Blir du underkänd på själva specen eller minnesbilden måste du dokumentera ditt färdiga program med javadoc.
Prototyper istället för specifikation
På en del kursomgångar kan man istället för att skriva en specifikation komma överens med vissa handledare 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.

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.


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

På en del kursomgångar ges en möjlighet till komplettering för de studenter som klarat tentan väl, men inte uppfyller ovanstående krav. Denna komplettering inträffar i så fall första lördagen i perioden efter.

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.

Ordinarie tentamen för Bio2 och L1 ges lördag 9 mars 2002 klockan 14-17 i D41, E31-36, 51-53, Q11-15, 21-25, 31-36. Placeringslistor kommer att anslås på kurshemsidan, vid entréer och salarna.


Betyg

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). Gradering av betyget på kursen ges enligt följande:
3 = Godkänd J-redovisning med en riktig minnesbild.

4 = 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.

6 = Kraven för 5 + en egen vettig extrauppgift (som godtagits av kursledaren). P g a KTHs centrala administrations sätt att hantera betygsrapporteringen rapporteras betyget sex separat efter terminsslutet.

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. Till exempel finns det ett interaktivt minnesritarexempel (till tentatal 5). Tyvärr fungerar den inte med alla kombinationer av Unix-Netscape. På PC och Mac är det inga problem.
  5. Genom diskussion med labbkamraten.
  6. Under laborationerna (då redovisningar inte är prioriterade).
  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) "prgl03: ..." 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.

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


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: <balter@kth.se>
Senast ändrad 10 december 2001
Tekniskt stöd: <webmaster@nada.kth.se>