KTH 2D1310 Programmeringsteknik, 2004/2005
Särskild information för OPEN1
Nada
Senaste nytt
Referenser
FAQ
Hjälp
Viktiga datum
Detaljschema
Schema
Laborationer
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 kurslitteraturen.
  3. Från referenserna på webben.
  4. Genom diskussion med labbkamraten.
  5. Under laborationerna.
  6. 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) "prgo04: ..." när du kontaktar en lärare i kursen.
  7. 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.
  8. Under redovisningstillfällena.

Viktiga datum

2004-10-13Kursstart
2004-10-15Redovisa lab 1
2004-10-21Redovisa lab 2
2004-10-28Redovisa lab 3
2004-11-09Redovisa lab 4
2004-11-19Redovisa lab 5
2004-11-25Datorprov
2004-12-08 Sista tillfälle att redovisa specifikationen
2005-03-16 Sista tillfälle att redovisa J-uppgiften

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
42
  • F1: Introduktion till programmeringstekniken och programmeringsspråket Java.
  • F2: Datatyper, variabler, konstanter, tilldelning, klasser, metoder, inläsning.
  • L1: Laboration.
43
  • F3: Logiska operatorer, villkor, slingor.
  • Ö1: Programexempel.
  • L2: Laboration.
44
  • F4: Klass och objekt: Instansvariabler, instansmetoder, Klassvariabler, klassmetoder, publikt & privat.
  • Ö2: Programexempel.
  • L3: Laboration.
45
  • F5: Klass och objekt: Klassvariabler, klassmetoder, publikt & privat.
  • Ö3: Programexempel
  • L4: Laboration.
46
  • F6: Vektorer & arrayer.
  • Ö4: Programexempel.
  • L5: Laboration.
47
  • F7: Rekursion, felhantering, strängverktyg, filhantering.
  • Ö5: Programexempel.
  • L6: Laboration.
48
  • F8: Sökning & sortering.
  • Ö6: Programexempel.
  • L7: Laboration.
49
  • F9: Fiktiv J-uppgift med specifikation, prototyp och lösning.
  • L8: Laboration.
50
  • F10: Grafik: Komponenter, containers och lyssnare..
  • L9: J-uppgifthjälp.
51
  • L10: Laboration.
3
  • L11: J-uppgiftshjälp.
4
  • L12: J-uppgiftshjälp.
5
  • L13: J-uppgiftshjälp.
6
  • L14: J-uppgiftshjälp.

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 2004-2005 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 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.


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 om du följt med i kursen under dess första halva. Om du inte följt med finns det ingen övre gräns för hur lång tid j-uppgiften kan ta.
Specifikation
Innan programmet skrivs ska en datorskriven specifikation redovisas. 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 samt vara kompilerbar. En handledare kommer att kommentera den och ge den betyget godkänd/underkänd. Blir du underkänd på specifikationen måste du dokumentera ditt färdiga program med javadoc. Ett begränsat antal j-uppgifter har en inbyggd spec. Dessa uppgifter kan aldrig ge högre betyg än E. Väljer du en sådan behöver du inte lämna in någon spec.
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 fylla i ett granskningsprotokoll. 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 utföra en fiktiv granskning. 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. Uppgiftslydelsen, specifikationen, besiktningsprotokollet och granskaren ska medföras till slutredovisningen, liksom en färsk programutskrift, källkod och det körbara programmet. Om du tar med en egen dator till redovisningen ska den vara uppkopplad mot Internet. 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 och ger maximalt betyget tre. 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. Lydelsen som ligger ute på nätet kan ändras när som helst. Se därför till att du skriver ut den lydelse du har valt och håller rätt på den tills du har redovisat.

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 2004-2005:

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:
E = Godkänd J-redovisning med en riktig minnesbild av uppgift med fördefinierad spec/skelettprogram.

D = Godkänd J-redovisning med en riktig minnesbild av uppgift med egenhändigt skriven spec.

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

C = Kraven för D + ett "perfekt" program med korrekt hantering av felaktig inmatning, dvs inga anmärkningar i protokollet (väl uppdelat, ingen kodupprepning, vettigt dokumenterat, dock utan krav på javadoc mm). Alternativt en uppgift med betyg från B på grunduppgiften och godkänd redovisning (dvs max tre påpekanden).

B = Uppgift eller extrauppgift med betyg B som är "perfekt" dvs inga anmärkningar i protokollet och med korrekt hantering av felaktig inmatning. Observera att kraven på ett "perfekt" program gäller hela programmet, inklusive ev extrauppgift.

A = Kraven för C + en extrauppgift med grafik eller avancerad algoritm. Observera att kraven på ett "perfekt" program gäller hela programmet, inklusive extrauppgiften.

För den som vill ha ut ett betyg i det gamla siffersystemet finns det en mappning:
E eller D = 3.

C eller B = 4.

A = 5.

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

Om du är missnöjd med handledarens beslut om betyg kan du skicka ett e-brev till kursledaren där du förklarar din syn på betyget och bifogar alla filer.


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 används en gemensam hederskodex för alla Nadakurser. Du är själv ansvarig att läsa igenom och följa den.

Lärare

Kursledare är Sten Andersson.
Datorpost: stene@nada.kth.se
Telefon: 08-790 62 81
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 Sten Andersson stene@nada.kth.se Filer från övningarna
2 Samuel Andersson samme@nada.kth.se Filer från övningarna
3 Mikael Huss hussm@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. 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.


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.


^ Upp till allmänna kurssidan.


Sidansvarig: <stene@nada.kth.se>
Senast ändrad 4 november 2004
Tekniskt stöd: <webmaster@nada.kth.se>