 |
2D1310 Programmeringsteknik, 2002-2003 Särskild information för öppen ingång prgo02 |
 |
(info till handledare och övningsassistenter)
Senaste nytt
- Sidan uppdaterades senast 21 februari 2003. Det
finns också en komplett lista med
"Senaste nytt"-punkter.
- (2003-02-21) Har du något moment kvar i kursen?
J-uppgiften (och eventuella kompletteringar/plussning) måste
redovisas före period 1 2003, dvs senast i omtentaperioden efter sommaren.
Titta på uppsamlingssidan
för information om redovisningstider och provtider.
- (2003-01-31) Kursanalysen för prgo02 är färdig.
- (2003-01-11) Ann har slutat på Nada (läs hennes avslutningshälsning). Var vänlig och kontakta
alltiallofixaren Linda Kann (linda@nada.kth.se) om kursen i framtiden.
Hjälp och handledning
Hjälp finns att få (i prioritetsordning):
- Från "Vanliga frågor".
- Från länkar i detaljschemat.
- Från kurslitteraturen.
- 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.
- Genom diskussion med labbkamraten.
- Under laborationerna.
- 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) "
prgo02: ..." när du
kontaktar en lärare i kursen.
- 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.
- Under redovisningstillfällena.
För datorrelaterade fel (inloggningsproblem, epost, trasiga
datorer etc), se "Datorsalar".
Referenser
| 2002-08-28 (on v.35) |
Kursstart klockan 8 i D2. |
| 2002-09-06 (fr v.36) |
Sista dagen för frivilliga prov 1 och 2. |
| 2002-09-13 (fr v.37) |
Sista dagen för frivilligt prov 3. |
| 2002-09-20 (fr v.38) |
Sista dagen för frivilligt prov 4. |
| 2002-09-27 (fr v.39) |
Sista dagen för frivilligt prov 5. |
| 2002-10-02 (on v.40) |
Senast kl 23:59. Sista tillfället för att välja en J-uppgift. |
| 2002-10-04 (fr v.40) |
Senast kl 23:59. Sista inlämningstillfället för
specifikationen. |
| 2002-10-11 (fr v.41) |
Slutprov klockan 14-18,
samling i
Brun,
Grön,
Gul.
|
| 2002-10-30 (on v.44) |
Senast kl 23:59. Sista tillfället för att välja en labbgrupp. |
| 2002-11-22 (fr v.47) |
Sista redovisningsdagen för J-uppgiften. |
| 2003-08-25 |
Sista dagen för plussning. |
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.
For tid och plats kolla schemageneratorns schema
|
F
|
=
|
Föreläsning.
|
|
Ö
|
=
|
Salsövning.
|
|
L
|
=
|
Datorlaboration.
|
| Vecka | Aktivitet
| |
35
|
- F1: Introduktion
- Kursens mål
- Om Java
- Indentifierare, litteraler, variabler mm
- Att köra/exekvera ett program
Franzén: inledning, 1-4, (36.1) /
Holm: förord, 1.1, 1.7-1.8, 3.2 /
Flanagan: 1-2
Föreläsningsanteckningar
- Ö1: Variabler (primitiva datatyper),
String och in-
och utmatning
Hjälpdokument:
Java vett och etikett.
Övningsanteckningar:
grupp 1,
grupp 2,
grupp 3,
grupp 4.
Franzén: inledning, 1-4, 7, 38.1-38.3 /
Holm: förord, 1.1, 1.7-1.8, 3.2, 4-5, 7.8 /
Flanagan: 1-2
- F2: Grunder
- Om datorn och Java
- Primitiva datatyper
- Variabler och konstanter
- Tilldelning
- Inläsning och utskrift
- Operatorer
Franzén: 3-5, 7-11, 38.1, 38.2 /
Holm: 1, 3.2, 5-6, 7.8 /
Flanagan: 1-2
Föreläsningsanteckningar
- L: Laboration 1: Introduktion till datormiljön.
Laborationsfiler:
.emacs,
exempel,
Maze.java.
- J-uppgiftsval.
|
|
36
|
- F3: Styrstrukturer
- Villkor
- Slingor
- Felsökning
Franzén: 10-12, (13), 15-17, 38.1, 38.2 /
Holm: 6-7/
Flanagan: 2
Föreläsningsanteckningar
- Ö2: Styrstrukturer
Övningsanteckningar:
grupp 1,
grupp 2,
grupp 3,
grupp 4.
Franzén: 8-12, (13), 15-16 (17) /
Holm: 6.1-6.4, 6.6-6.7, 6.9, 7 /
Flanagan: 1, 2
- F4: Metoder
- Vad är metoder?
- Hur skrivs metoder?
- Metodanrop
- Metodexempel
- Typkonvertering (type casting)
Franzén: 5, 9, 14 /
Holm: 3, 6 /
Flanagan: 2
Föreläsningsanteckningar
- L: Laboration 2: Experiment med Java (sista dagen för frivilliga
prov 1 och 2).
Laborationsfiler:
Iteration.java,
Forsats.java,
Valmall.java.
- J-uppgiftsval.
|
|
37
| |
|
38
| |
|
39
|
- F9: Vektorer
- vektorer och matriser (array)
- Klassen Vector
Franzén: 6, 28 /
Holm: 8.2-8.5, D.6 /
Flanagan: 2, 4
Föreläsningsanteckningar
- Ö5: Vektorer
Övningsanteckningar:
grupp 1,
grupp 2,
grupp 3,
grupp 4.
Franzén: 6, 28 /
Holm: 8.2-8.5, D.6 /
Flanagan: 2, 4
- F10: Filer och felsökning
-
SimpleTextFileReader
-
SimpleTextFileWriter
Föreläsningsanteckningar
- L: Laboration 5: Komplett mini-J-uppgift (sista dagen för
frivilligt prov 5).
Hjälpdokument:
Programmeringsstrategi,
SimpleTextFileReader dokumentation.
Laborationsfiler:
SimpleTextFileReader.java.
- J-uppgiftsval.
|
|
40
| |
|
41
| |
|
42
|
- F14: Grafik
- Arv
- Inheritence
- Applet, HTML
- Grafiska användargränsnitt (GUI)
Franzén: 31-33, (35) / Holm: 9, 16-18 / Flanagan: 6, 8
Föreläsningsanteckningar
|
|
43
| |
|
44
| |
|
45
| |
|
46
| |
|
47
| |
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.
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, LAB2, består av ett individiellt
slutprov 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.
- 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 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. Detta tillgodoräknas om slutprovet klaras eller om
labbarna 1-5 redovisas (grafiklabben 6 är frivillig), minst 60% av instuderingsfrågorna redovisas respektive PBL-uppgiften redovisas.
- 1p LAB2 Slutprovet godkänt.
- 2p LAB3 J-uppgiften godkänd.
Gradering av betyget på kursen avgörs helt av J-uppgiften enligt följande:
- 3 = Godkänd J-redovisning med en riktig minnesbild.
- 4 = Kraven för 3 + 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.
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. 40 timmar
används till föreläsningar och övningar. Återstår 120 timmar för
självstudier och redovisningar fördelade på:
- Förberedelser inför föreläsningar (läsa igenom kursmaterialet)
och efterarbete (genomgång av anteckningar): 1 timme per
föreläsning.
- Efterarbete till övningarna (genomgång av anteckningar):
1 timme per övning.
- Förberedelser inför laborationer (genomläsning), arbete med
laborationer samt redovisning/frivilliga prov, vilket enligt
förra årets B2-studenter var 92 timmar disponerat på
följande sätt:
| Laboration 1:
| 2h
|
| Laboration 2:
| 5h
|
| Laboration 3:
| 7h
|
| Laboration 4:
| 9h
|
| Laboration 5:
| 11h
|
| Laboration 6:
| 12h
|
| Specifikation
| 3h
|
| J-uppgift:
| 43h
|
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:
- Kursprogram som delas ut vid första
föreläsningen.
- Föreläsningsanteckningar.
- Övningsanteckningar.
-
Granskningsprotokoll (pdf, ps).
- J-uppgift som väljes individuellt under kursens gång.
- En kursbunt som består av:
Kursbunten kan köpas på studentexpeditionen, Osquars Backe 2, plan 2.
Priset är 50 kronor.
- En kursbok som är en valfritt introduktionsbok i Java från
följande lista:
- En bok till dig som aldrig har programmerat.
Torkel
Franzén, "Java från grunden", andra upplagan, Studentlitteratur
2001, ISBN 91-44-01939-4.
I Kårbokhandeln kostar den 310 kronor.
- En alternativ bok riktad till dig som redan kan programmera
lite och vill ha en svensk bok. Boken inkluderar
grafik.
Per
Holm, "Objektorienterad programmering och Java", andra
upplagan, Studentlitteratur 2001, ISBN
91-44-01145-8.
Boken kommer finnas att köpa på Kårbokhandeln.
Boken har en errata.
- En alternativ bok riktad till dig som redan kan programmera
lite. Bra referensverk.
David
Flanagan, "Java in a Nutshell", Third Edition, O'Reilly 1999,
ISBN 1-56592-487-8.
I Kårbokhandeln kostar den 250 kronor.
Boken har en errata.
Ö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
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
Har du frågor om innehållet i föreläsningarna, prata med föreläsaren.
Har du övningsfrågor, prata först med din övningsassistent. För
övriga frågor, kontakta kursledaren.
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.
Många lärare tar hand om mer än en kurs. Var vänlig och börja alla
datorbrev med subjektet "prgo02: ..." när du
kontaktar en lärare i kursen.
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.
Deras schema finns på webben.
Upp till allmänna kurssidan.
Sidansvarig: <panda@nada.kth.se>
Senast ändrad 21 februari 2003
Tekniskt stöd: <webmaster@nada.kth.se>