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

Senaste nytt

Klicka här för att fylla i kursenkäten!

Referenser


Vanliga fel

Vid kompilering i Java förekommer en del svårförklarade felmeddelanden. Nedanstående åtgärder är något som alltid bör kontrolleras innan handledare tillkallas.

Hjälp och handledning

Hjälp finns att få (i prioritetsordning):
  1. Från kurshemsidans "Vanliga fel".
  2. Från länkar i detaljschemat.
  3. Från kurslitteraturen.
  4. Via referenserna på webben.
  5. Genom diskussion med labbkamraten.
  6. Under laborationerna (då redovisningar inte är prioriterade).
  7. Via datorbrev till en övningsledare.
  8. Under läsveckor av allmän handledare i Nadas datorsalar (Osquars Backe 2, plan 4) vardagar klockan 11-13, 17-20 (knacka och fråga efter allmänhandledare).
  9. Under redovisningstillfällena.

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


Viktiga datum

2000-10-30 (må v.44) Kursstart klockan 14 i M1.
2000-11-08 (onsdag v.45) Sista redovisningsdagen för bonuspoäng på laboration 2.
2000-11-21 (tisdag v.47) Sista redovisningsdagen för bonuspoäng på laboration 3.
2000-11-28 (onsdag v.48) Sista redovisningsdagen för bonuspoäng på laboration 4.
2000-12-08 (fredag v.49) Sista redovisningsdagen för bonuspoäng på laboration 5.
2000-12-13 (onsdag v.50) Sista redovisningsdagen för bonuspoäng på laboration 6.
2000-12-16 (lö v.50) Ordinarie tentamen klockan 14-17 i D31-35, E31-36, 51-53. V01, 11, 21-23, 32-35.
2001-01-25 (torsdag v.4) Sista inlämningsdagen för bonuspoäng på specifikationen.
2001-02-12 (måndag v.7) Sista redovisningsdagen för bonuspoäng på prototypen.
2001-03-02 (fredag v.9) Sista redovisningsdagen för bonuspoäng på j-uppgiften.
2001-04-21 (lö v.16) Omtentamen klockan 14-17 i D31-35, 41. E31-36, 51.
2001-10-31 Uppnådda bonuspoäng försvinner.

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 på PC-dator under Windows i Trötter, Klocker, Butter
FX = Extraföreläsning.
FR = Repetitionsföreläsning för den som missade tentan.
LL = Läs mer i följande avsnitt i Lewis Loftus.
Skansholm = Läs mer i följande avsnitt i Skansholm.
Franzen = Läs mer i följande avsnitt i Franzen.
Vecka Aktivitet
44
  • F1 (måndag kl 14 i M1) : Grunder: programmeringsteknik, programmeringsspråket Java. Programexempel. LL 1.4, 1.5. Skansholm 1.1, 1.2, 1.3, 1.4 1.5. Franzen Inledening, Att använda boken, Kap 1, Kap 2.
  • Ö1 (måndag kl 16 i E31, 34, 35, 51, M32, 33): Kodvett och etikett. Skriv ett program.
  • L (gr1-gr3 onsdag 14.0, gr4-gr6 onsdag 12.00): Laboration 1: Introduktion till datormiljön.
    Javafiler: Javamall.java.
45
  • F2 (måndag kl 14 i M1): Ett program med in och utmatning, introduktion till icke-primitiva typer och objekt, instansmetoden println. Strängar. LL 2.1, 2.2. DataStrukturer: variabler av viss datatyp, primitiva typer, modell av datorns minne, manipulering av variabler. LL 2.4, 2.3. Skansholm ~2.3, endast enkla variabler. Franzen kap 3, kap 4. Styrstrukturer: val, slingor LL 3.1, 3.2, 3.3, 3.6, 3.7, 3.8. Skansholm slå i index. Franzen kap 10, kap 12, kap 15, kap 16. Lokala variabler. Minnesexempel.
  • Ö2 (måndag kl 16 i E31, 34, 35, 51, M32, 33): Programexempel: tilldelning, olika datatyper, val och slinga. Minnesritande.
  • F3 (onsdag kl 12 i F2): Introduktion till statiska metoder. LL 5.2, 4.3. Skansholm ~2.4, 2.9. Franzen kap 14. Javafiler: Heron.java, ForstTill.java,
  • L (gr1-gr3 onsdag 14.00, gr4-gr6 onsdag 16.00): Laboration 2: Experiment med Java (sista redovisningsveckan för bonuspoäng).
    Javafiler: Valmall.java, Iteration.java, Forsats.java.
46
  • F4 (måndag kl 14 i M1): Kompletteringar och minirepetition. Problemlösning med klasser: Statiska metoder. LL 5.2, 4.3. Skansholm ~2.4, 2.9. Franzen kap 14. Algoritmer. Klasser med användbara statiska metoder i Java. "Wrapper"-klasser. Avsnitten 2.6, 2.7, 2.8 (och eventuellt 6.3) ur boken.
  • Ö3 (måndag kl 16 i E31, 34, 35, 51, M32, 33): Statiska metoder och deras användning.
  • F5 (onsdag kl 12 i F2): Fortsättning från måndagen, det som inte hanns med. Introduktion till objekt.
  • L (gr1-gr3 onsdag 14.00, gr4-gr6 torsdag 12.00): Laboration 3: Klasser, variabler och metoder (sista redovisningsveckan för bonuspoäng).
    Javafiler: Labb3.java.
47
  • F6 (måndag kl 14 i M1): Objektorienterad programmering: instantiering, abstraktion. Avsnitten 2.1, 2.2, 2.5, 4.1 - 4.6 i LL. Kap 2 i Skansholm. Kap 19, kap 20, kap 21, kap 22, kap 23 i Franzen. Användbara datastrukturer i Java. Avsnitten 6.1,6.2, 6.5 i LL. Avsnitt 6.4, 6.5, 6.6, 6.7, 7.7 i Skansholm. Kap 6, kap 28 i Franzen. AdministreraPersoner.java,
  • Ö4 (måndag kl 16 i E31, D41, E35, 51, M32, 33): Icke-primitiva datastrukturer.Egna klasser.Labbförberedelse. Hundfarm.java,
  • F7 (onsdag kl 12 i F2): Användbara datastrukturer i Java. Avsnitten 6.1,6.2, 6.5 och 12.3 i LL. Avsnitt 6.4, 6.5, 6.6, 6.7, 7.7 i Skansholm. Kap 6, kap 28 i Franzen. Repetition och kompletteringar. Programmeringsstrategi. FiraAdventsTid.java,
  • L (gr1-gr3 onsdag 14.00, gr4-gr6 onsdag 16.00): Laboration 4: Instanser, variabler och metoder (sista redovisningsdag för bonuspoäng tisdag v 48).
    Hjälpdokument: Programmeringsstrategi.
    Javafiler: Hundfarm.java, KTHmall.java.
48
  • F8 (måndag kl 14 i M1): Repetition.
  • Ö5 (måndag kl 16 i M22, M37, M38, M3, M32, 33): Tentamensräkning, Labbförberedelse.
  • F9 (Onsdag kl 12 i F2): Programmeringsstrategi: komplett programexempel inför Lab 5. Olika femtonspel. AnordnaLotteri.java.
  • L (gr1-gr3 onsdag 14.00, gr4-gr6 fredag 9.00): Laboration 5: Textbaserad mini-j-uppgift.
    Hjälpdokument: Programmeringsstrategi.
    Javafiler: Textbaserad kalkylator.
49
50
  • F12 (måndag kl 12 i M1): Rekursion och filer. StreamTokenizer. This
  • Ö7 (måndag kl 14 i E31, D41, E34-36, 51): Tentaräkning.
  • F13 (tisdag kl 14 i M1): Inför tentan, repetition och div information.
  • L (gr1-gr3 onsdag 9.00, gr4-gr6 onsdag 12.00): Fortsättning av laboration 6 (sista redovisningsveckan för bonuspoäng).
  • Tentamen lördag 2000-12-16 klockan 14-17 i V01, 11, 21-23, 32-35.
3
  • Ö8 (gr 1-3 :må 15 jan klockan 12-14 M31-33, gr 4-6 :må 15 jan klockan 14-16 M31-33): Specifikationsskrivning.
  • F14 (tisdag kl 13 i Q33): Inför kompletteringsskrivnigen, repetition.
  • F15 (onsdag kl 12 i Q33): Inför kompletteringsskrivnigen, repetition.
  • F16 (fredag kl 08 i Q33): Inför kompletteringsskrivnigen, repetition.
4
5
  • L: Utlämning av specifikationer enligt speciellt schema.
  • L: J-uppgiftshjälp. (gr 1- 3 : må 12-14 .gr 4-6 : må 14-16)
  • L: J-uppgiftshjälp. (gr 1- 6 : on 12-14 )
6
  • L: J-uppgiftshjälp. (gr 1- 3 : må 12-14 .gr 4-6 : må 14-16)
  • L: J-uppgiftshjälp. (gr 1- 6 : on 12-14 )
    Prototypredovisningar.
7
  • L: J-uppgiftshjälp. (gr 1- 3 : må 12-14 .gr 4-6 : må 14-16)
  • L: J-uppgiftshjälp. (gr 1- 6 : on 12-14 )
    Prototypredovisningar (måndag denna vecka sista redovisningsdag för bonuspoäng).
8
  • L: J-uppgiftshjälp. (gr 1- 3 : må 12-14 .gr 4-6 : må 14-16)
  • L: J-uppgiftshjälp. (gr 1- 6 : on 12-14 )
    J-uppgiftsredovisningar.
9
  • L: J-uppgiftshjälp. (gr 1- 3 : må 12-14 .gr 4-6 : må 14-16)
  • L: J-uppgiftshjälp. (gr 1- 6 : on 12-14 )
    J-uppgiftsredovisningar.(sista redovisningsveckan för bonuspoäng).


Laborationer

Kursens första moment, LAB1, består av sex laborationer som görs i grupper om två personer. Det är tillåtet att jobba ensam, men vid redovisningstillfällen har tvåpersonersgrupper företräde.

I den första laborationen ingå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.

Endast gruppmedlemmar som är närvarande vid redovisningar kan godkännas. Enstaka labbar får inte sparas till annan kursomgång. Om inte alla sex labbarna i LAB1 har redovisats före nästa kursstart måste du göra en helt ny labbkurs (detta beroende på att datorer, system och lärare byts ut och uppgraderas årligen vilket medför att labbarna blir inaktuella).

Som ett komplement till de "inbyggda" finesserna i Java så finns ytterligare Javafiler för laborationerna. Utnyttja gärna dessa, men tänk på hederskodexen.


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.

Tentaresultatet anslås på institutionens anslagstavla (Osquars Backe 2, plan 3). Klagomål på rättning av tentan lämnas in skriftligen 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.


J-uppgift

Kursens tredje moment LAB3, är en större, individuell programmeringsuppgift i Java; en "J-uppgift". Regler för J-uppgiften finns i J-uppgiftshäftet. J-uppgiften redovisas i fyra steg under kursens andra period.
Specifikation
Innan programmet skrivs ska en datorskriven specifikation lämnas in till din övningsledare som kommenterar den, och ger den betyget godkänd/underkänd. Blir du underkänd måste en ny specifikation lämnas in. Syftet med specifikationen är att du ska tänka igenom problemet innan du försöker lösa det.
Prototyp
Några veckor efter det att specen lämnats in ska du redovisa en prototyp, d v s en körbar version av ditt program där endast vissa metoder (du föreslår själv vilka i specen) finns med och fungerar. Syftet med prototypen är att du ska komma igång med programmeringen.
Granskning
Innan det färdiga programmet kan godkännas ska det testas av en elev. Eleven 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 testeleven 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. 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.
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. Om allt annat fallerar kan du vända dig till kursledaren för att utföra en särskild granskning.
Slutredovisning
Du väljer och tilldelas en tid för slutredovisning. Specifikationen, besiktningsprotokollet och granskaren ska medföras till slutredovisningen.

J-uppgifterna är av olika svårighetsgrad. Högre svårighetsgrad ger fler betygspoäng (se "Betyg"), men tar givetvis också längre tid att göra. Betygspoängen finns angiven på J-uppgiften. Svårare uppgifter (t ex uppgifter med grafik) ställer högre krav på eleven i och med att eleven måste jobba mer självständigt och inte alltid kan räkna med hjälp. Handledarnas mål är att hinna hjälpa så många som möjligt att uppnå gränsen för godkänt. Tips! Välj en uppgift som har grafik som extrauppgift, vilken du kan hoppa över om tiden inte räcker till.

Som ett komplement till de "inbyggda" finesserna i Java så finns ytterligare Javafiler för J-uppgifter. Utnyttja gärna dessa, men tänk på hederskodexen.

Efter kursens slut kan J-uppgifter 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-uppgift är begränsad. Samtidigt som bonuspoängen försvinner så 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-uppgift fram till nästa kursstart.


Betyg

För att bli godkänd på kursen måste man klara av de tre momenten LAB1 (laborationer i tvåpersonsgrupper), TEN2 (tentamen) och LAB3 (J-uppgiften) samt ha samlat ihop tillräckligt många betygspoäng. Slutbetyget i kursen ges av tiotalssiffran i betygspoängsumman. Betygspoäng ges för följande moment:
J-uppgiftens betygspoäng (17­52 poäng)
Bonuspoäng för att ha redovisat labb 2-6 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 2000-2001:
30­39 poäng ger betyg 3
40­49 poäng ger betyg 4
50 poäng eller mer ger betyg 5

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. 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: 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. 37 timmar används till föreläsningar och övningar samt 3 timmar till tentamen. Återstår 120 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-uppgiften 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 Leif Kusoffsky.
Datorpost: lky@nada.kth.se
Telefon: 08-7906209
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.

De sex övningsgrupperna leds av följande personer:

Grupp Övningsledare Datorpostadress  
1 Leif Kusoffsky lky@nada.kth.se
2 Vahid Mosavat vahid@nada.kth.se
3 Jesper Fernström e97_jef@nada.kth.se
4 Stefan Näslund stefan.naslund@work.utfors.se
5 Simon Grönlund d97-sgr@nada.kth.se
6 Johan Lilja f97-jli@nada.kth.se

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.

Datorsalar

De datorsalar som används i kursen administreras av Mimers bar.

Adress: Osquars Backe 20
Supporttelefon: 08-7909300
Datorpost: mimer@midgard.kth.se
Öppettider: vardagar 9-16, torsdagar 9-18

Vänd dig till dem om du får problem med inloggning, datorpost o s v. Nada har inget ansvar för programvara i dessa salar.


^ Upp till allmänna kurssidan.


Sidansvarig: <lky@nada.kth.se>
Senast ändrad 23 maj 2001
Tekniskt stöd: <webmaster@nada.kth.se>