KTH 2D1310 Programmeringsteknik, 2001/2002
Särskild information för M1
Nada
Senaste nytt
Referenser
FAQ
Hjälp
Viktiga datum
Detaljschema
Schema
Laborationer
Tentamen
J-del
Betyg
Allmänna kurssidan
Förkunskaper
Kurslitteratur
Studiedisposition
Hederskodex
Lärare
Synpunkter på kursen
Datorsalar
(info till handledare)

Senaste nytt


Referenser


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. 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.
  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) "prgm02: ..." 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".


Viktiga datum

2002-01-15 Kursstart
2002-01-25 Sista redovisningsdagen för bonuspoäng på laboration 2.
2002-02-01 Sista redovisningsdagen för bonuspoäng på laboration 3.
2002-02-08 Sista redovisningsdagen för bonuspoäng på laboration 4.
2002-02-15 Sista redovisningsdagen för bonuspoäng på laboration 5.
2002-02-22 Sista redovisningsdagen för bonuspoäng på laboration 6.
2002-03-09 Ordinarie tentamen klockan 14-17 i D41, E31-36, E51-53, Q11-15, 21-25, 31-36
2002-03-20 Sista redovisningsdagen för bonuspoäng på specifikationen.
2002-04-06 Omtentamen lördagen den 6 april klockan 14-17 i D31-35,41,E31-36,51
2002-04-17 Sista redovisningsdagen för bonuspoäng på prototypen.
2002-05-24 Sista redovisningsdagen för bonuspoäng på J-uppgiften.
Septemberperioden Omtentamen
2003-01-13 Uppnådda bonuspoäng försvinner.

Preliminärt detaljschema

Detaljschemat beskriver vad som gås igenom på föreläsningar, övningar och datorövningar.

Detaljschemat är preliminärt och moment kan stuvas om.

F = Föreläsning.
Ö = Salsövning.
L = Datorlaboration.
Vecka Aktivitet
3
  • F1: Introduktion till programmeringstekniken och programmeringsspråket Java.
    Kapitel 1, 2, 7 i boken
  • Ö1: Programexempel
  • F2: Primitiva datatyper, variabler och konstanter, tilldelning, inläsning, operatorer, metoder.
    Kapitel 3-5, 8-9 i boken
  • L: Laboration 1: Introduktion till datormiljön.
4
  • F3: Logiska operatorer, villkor, slingor.
    Kapitel 10-13, 14-17 i boken
  • Ö2: Programexempel:
  • F4: Klass och objekt.
    Kapitel 20-23 i boken
  • L: Laboration 2: Experiment med Java.
5
  • F5: Klassvariabler, klassmetoder, privat & offentligt.
    Kapitel 24-26 i boken
  • Ö3: Programexempel
  • F6: Arv, abstrakta klasser och gränssnitt.
    Kapitel 6, 28 i boken
  • L: Laboration 3: Klasser, variabler och metoder.
6
  • F7: Vektorer & arrayer.
    Kapitel 31-32, 37 i boken
  • Ö4: Programexempel
  • F8: Rekursion, felhantering, strängverktyg, filhantering.
    Kapitel 18,39,(40) i boken
  • L: Laboration 4: Textbaserad mini-J-uppgift
7
  • F9: Grafik: AWT, komponenter, containers och lyssnare.
    Kapitel 31-35, 37 i boken
  • Ö5: Programexempel
  • F10: Grafik, fortsättning.
  • L: Laboration 5: Vidareutveckling av mini-J-uppgift
8
  • F11: Sökning & sortering.
  • Ö6: Programexempel.
  • F12: Fiktiv J-uppgift.
  • L: Laboration 6: Grafikanpassning av mini-j-uppgift.
9
  • F13: Extenta.
  • Ö7: Reserv.
  • L: Restlabbar.
11
  • Ö8: Hjälpstund för specifikationsskrivning.
  • F14: Genomgång av tentan för de som blev underkända.
  • F15: Genomgång av tentan för de som blev underkända.
  • F16: Genomgång av tentan för de som blev underkända.
  • L: J-uppgiftshjälp.
12
  • L: J-uppgiftshjälp. Specifikationsredovisning
16
  • L: J-uppgiftshjälp. Prototypredovisning
17
  • L: J-uppgiftshjälp.
18
  • L: J-uppgiftshjälp.
19
  • L: J-uppgiftshjälp.
20
  • L: J-uppgiftshjälp, J-uppgiftsredovisningar
21
  • J-uppgiftsredovisningar (sista redovisningsveckan för bonuspoäng).


Laborationer

Kursens första moment, LAB1, består av 6 laborationer som görs i grupper om två personer. Varje laboration har är försedd med instuderingsfrågor som ska kunna besvaras innan man börjar labben.

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.

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


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


Betyg

För att bli godkänd på kursen måste man klara av de tre momenten LAB1 (inledande laborationer), TEN2 (tentamen) och LAB3 (J-uppgiften) samt ha samlat ihop tillräckligt många betygspoäng. Betygspoäng ges för följande moment:
J-uppgiftens betygspoäng (17­52 poäng)
Bonuspoäng för att ha redovisat uppgifterna/labbarna i lab1 i tid. (max 5 poäng)
Bonuspoäng för att ha lämnat in specifikationen i tid (3 poäng)
Bonuspoäng för att ha redovisat prototypen i tid (4 poäng)
Bonuspoäng för att ha redovisat J-uppgiften i tid (2 poäng)
Bonuspoäng för att ha klarat tentan vid ordinarie tillfälle (2 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
Vill du i efterhand höja betyget finns det regler att följa, se regler för plussning på programmeringsteknikkursen.
Betyget ges alltså av J-uppgiftens poäng och de bonuspoäng som är giltiga när du redovisar J-uppgiften. Observera att samtliga bonuspoäng försvinner ett år efter kursstart, exakt datum anges på kvittensbladet för labbarna. 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. Vissa föreläsningar anordnas speciellt som stöd för den som behöver det.

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. 42 timmar används till föreläsningar och övningar samt 3 timmar till tentamen. Återstår 115 timmar för självstudier och redovisningar fördelade på:

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, förutom att labb 1­6 görs i grupper om två studenter. Vid redovisning av labbar 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 Sten Andersson.
Datorpost: stene@nada.kth.se
Telefon: 08-790 73 27
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 går det bra på mottagningstiden (se kursledarens hemsida för aktuella tider).

Övningsgrupperna leds av följande personer:

Grupp Övningsledare Datorpostadress  
1 Sima Baymani d99-sba@nada.kth.se Filer från övningarna
2 Sten Andersson stene@nada.kth.se Filer från övningarna
3 Magnus Rosell f95-mro@nada.kth.se Filer från övningarna
4 Oscar Göthberg d00-ogo@nada.kth.se Filer från övningarna
5 Sven De Marothy k98_sdy@nada.kth.se Filer från övningarna
6 Martin Camitz f99-mca@nada.kth.se Filer från övningarna
7 Jesper Fernström e97_jef@nada.kth.se Filer från övningarna

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. Det går även bra att lämna synpunkter direkt till examinator Olle Bälter (balter@nada.kth.se) 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!


^ Upp till allmänna kurssidan.


Sidansvarig: <stene@nada.kth.se>
Senast ändrad 14 maj 2002
Tekniskt stöd: <webmaster@nada.kth.se>