KTH 2D1310 Programmeringsteknik, 2004-2005
Särskild information för Media1 och CL1
prgmedcl04
Nada
Senaste nytt
Hjälp
Referenser
Viktiga datum
Schema för media
Schema för CL
Detaljschema
Aktuell vecka
Laborationer
Hemtal
Datorprov
Bonuspoäng
J-del
Betyg
Regler för höjning av betyg
Bokningslistor
Allmänna kurssidan
Studiedisposition
Kurslitteratur
Lärare
Hederskodex
Synpunkter på kursen
Datorsalar
(info till handledare)
Härmed vill jag meddela att kursen är slut och vill tacka alla studenter och inblandade lärare för ett bra samarbete.
Här kan du boka tid för datorprov, ifall du har kvar kursmoment, om du vill redovisa plussning, granskning eller J-uppgift, se här.

Senaste nytt


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

Referenser


Viktiga datum

2004-11-01 (mån v.45) Kursstart klockan 10.00 i sal D2.
2004-11-09 (tis v.46) redovisningsdatum för hemtal 1 på övning1
2004-11-12 (fre v.46) redovisningsdatum för laboration 2
2004-11-16 (tis v.47) redovisningsdatum för hemtal 2 på övning2
2004-11-19 (fre v.47) redovisningsdatum för laboration 3
2004-11-23 (tis v.48) redovisningsdatum för hemtal 3 på övning3
2004-12-01 (ons v.49) redovisningsdatum för hemtal 4 på övning4
2004-11-26 (fre v.48) redovisningsdatum för laboration 4 Nytt redovisningsdatum för laboration 4 är fredag v.49, 2004-12-03
2004-12-08 (ons v.50) redovisningsdatum för hemtal 5 på övning5
2004-12-10 (fre v.50) redovisningsdatum för laboration 5
vecka 51 Datorprovet är lördag vecka 51
22 februari 2005 Är sista datum för redovisning av j-uppgift.


Schema för Media

 Aktivitet  Dag  Tid  Vecka Sal
  F ons 8-10 3, 4 K1
  Ö tor 15-17 3 Q21,Q22
  L ons 10-12 4-6,8 Duplex,Fiket,Loftet
  L tis 10-12 6 Duplex,Fiket,Loftet
  L tor 15-17 7 Duplex,Fiket,Loftet

Schema för CL

 Aktivitet  Dag  Tid  Vecka Sal
  F ons 8-10 3, 4 K1
  Ö tor 15-17 3 Q21,Q24
  L ons 13-15 4 Röd ,Orange
  L tis 13-15 6-8 Gul ,Brun
  L fre 15-17 5-7 Röd, Orange

Preliminärt detaljschema

Detaljschemat beskriver vad som gås igenom på föreläsningar, övningar och datorövningar. 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 och laborationer.

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

F = Föreläsning.
Ö = Salsövning.
L = Datorlaboration.
VeckaAktivitetBeskrivning
45 F1 Kursstart, presentation av kursens olika moment
F2 Introduktion till java utdelade material
L1 för media Labb1 för cl Introduktion till datorsystem & första program i Java
46 F3 Styrstrukturer (if, if-else, for, while), metoddeklaration och anrop
Ö1 Hemtal1 ska redovisas, styrstrukturer och metoder
L2 Styrstrukturer, metoder deklaration och metodanrop
47 F4 Metoder och parametrar, Vektorer(klassen ArrayList och arrays), variabeln args i main-metoden
Ö2 Hemtal2 ska redovisas
F5 Att använda API:n, Klasserna: ArrayList, Math, String och Math Grafik klasserna: Frame, Graphics, Button
L3 Arrayer & ArrayList, metoder och parametrar
48 F6 Deklaration av egna klasser, Instansera, klassvariabel, klassmetod, instansvariabel, instansmetod, konstruktor, variabeln this
Ö3 ingen information för tillfället
L4 Klass & objekt
49 F7 Mer om Instansering, Grafik, lyssnare
Ö4 ingen information för tillfället
L4 Klass och objekt
50 F8 information om datorprovet, J-uppgiften och instruktioner om skrivning av specifikationer,
Ö5 ingen information för tillfället
L5 Grafik
3 F9 Hur skiver man specifikation, hur och när ska man lämna in specen, genomgång av redovisningsprotokollets olika delar och deras betydelse, genomgång om olika saker som man kanske behöver för att lösa j-uppgiften.
Ö6 exempel på specifikation av en fiktiv uppgift, hur läse man från en fil, hur skriver man på en fil

Laborationer

Kursens första moment, LAB1, består av laborationer som görs i grupper om max två personer.

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.

När du genomfört en laboration redovisar du upp den för din labbhandledare, som signerar ditt labbhäfte och skriver upp att du är klar med labben. Om du redovisar laborationer i tid få du bonuspoäng, läs mer om det under rubriken bonuspoäng.

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

Datorprov

Kursens andra moment, LAB2, består av ett individuellt prov vid dator på grunderna i programmering. För att få godkänd på datorprovet då måste man minst ha 80 % rätt.

Hemtal

Hemtal är ett frivilligt moment som också ger bonuspoäng. Hemtalen kommer att finnas på kurshemsidan ca: en vecka innan redovisning dagen. I princip varje vecka ska ett hemtal presenteras av studenter. Presentationen går på följande sätt:

Aktuellt hemtal finns här

Bonuspoäng

Till datorprovet kan man samla bonuspoäng från labbarna och hemuppgifter. Varje labb förutom första laborationen ger en bonuspoäng på 3 % om dem redovisas i tid. Det finns 5 st. hemtal, varje hemtal består av 3 uppgifter och varje uppgift kan ge 0.2 % bonuspoäng.
Om man gör alla uppgifter i alla hemtal i tid så har man samlat (5 x 3 x 0.2 %) = 3 % till datorprovet.
Om man redovisar alla labbar i tid så har man samlat 4 x 3 % = 12 % till datorprovet.
Så totalt kan man ta 15 % med sig till datorprovet. För att klara datorprovet krävs att man har 80 % rätt.
Har man fullbonus d.v.s. 15 %, då räcker det med att ha 65 % rätt på datorprovet för att få godkänd.

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.
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. 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. På bokningslistan kan du välja 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

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), LAB2 (prov på grunderna) och LAB3 (J-delen). Kursen ger fyra högskolepoäng uppdelat på följande sätt (moment):
1p LAB1 Labbarna 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).
B = Kraven för C + svårare/större uppgift eller extrauppgift för betyget B. Observera att kraven på ett "perfekt" program gäller hela programmet, inklusive extrauppgiften.
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.

Studiedisposition

Här följer ett förslag till disposition av tiden. Kursen är på 4 poäng vilket motsvarar 4*40 = 160 timmar. 40 timmar används till föreläsningar och övningar. Återstår 120 timmar för självstudier och redovisningar fördelade på:

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.

Bokningslistor

Inga bokningslistor för tillfället.