Göm menyn

TDP007 Konstruktion av datorspråk

Examination

Kursen består av två poänggivande moment. LAB1 (2hp) utgörs av seminarieserien med tillhörande uppgifter. DAT1 (4hp) utgörs av duggorna eller tentan. Betyget baseras endast på det senare momentet.


1. Seminarieserie (LAB1, 2hp)

Seminarieserien består av fyra delar. Till varje del hör ett antal uppgifter som ni ska bearbeta tillsammans enligt indelningen i labbpar. Ni ska skicka in era lösningar och får även tillgång till en annan grupps lösning som ni ska studera. Vid seminariet kommer några grupper att väljas ut för att muntligen redovisa de lösningar som ni har studerat (alltså inte era egna). För att bli godkänd på hela seminariedelen krävs följande:

  • Alla fyra inlämningarna ska vara godkända. Det innebär att de ska ha kommit in i tid och att de ska uppfylla kriterierna nedan.

  • Gruppen ska vara närvarande vid alla fyra seminarierna.
  • Gruppen ska muntligen ha redovisat och kritiserat en annan grupps lösning vid minst ett seminarietillfälle.

1.1. Hur går inlämningen till?

Inlämningen av en omgång uppgifter ska bestå av tre saker: programkod med era lösningsförslag, enhetstester för era lösningsförslag samt utvecklarblogg.

Dessa tre saker skickas in via uppladdningssidan på kurshemsidan senast det klockslag som anges för varje seminarium på schemasidan.

1.2. Vad är kriterierna för att bli godkänd på inlämning?

Först och främst ska inlämningen vara gjord innan deadline samt innehålla alla tre sakerna ovan: programkod, enhetstester och utvecklarblogg. När det gäller de två senare finns det mer instruktioner på respektive sida.

Programkoden ska följa den gängse kodningsstilen för Ruby och vara någorlunda väl dokumenterad. Eftersom vi har hårda deadlines för inlämning (för att hinna i tid till seminarierna) är det viktigare att ni skickar in era lösningar än att de är perfekta. Vi kan komma att godkänna inlämningar där ni inte har löst hela uppgiften, eftersom det inte är lösandet av uppgifterna som är det viktigaste utan diskussionerna vid seminariet.

1.3. Hur går seminarierna till?

Inför varje seminarium kommer ni att få tillgång till en annan grupps lösning. Ni får tillgång till denna på samma ställe som ni laddar upp er egen lösning. Ni kommer att få en slumpmässig opponentgrupp varje gång, och ni kommer inte nödvändigtvis att veta vilka de är (om de inte skriver sitt namn i koden förstås). Ni har ganska kort tid på er att förbereda er inför seminariet. Därför måste alla passa deadline för inlämning.

Ni förbereder er genom att läsa igenom programkoden, köra testerna och även läsa igenom programmeringsdagboken. Läs mer om opposition i avsnitt 1.6 längre ner.

Seminarieledaren kommer att titta igenom alla lösningar och välja ut några som är intressanta. Lösningarna väljs ut så att de ska vara så olika varandra som möjligt, och så att de illustrerar olika aspekter. De behöver inte nödvändigtvis vara särskilt "bra" eller "dåliga".

I början av seminariet kommer seminarieledaren att tala om vilka grupper som kommer att få presentera. Varje grupp kommer sedan få några minuter att muntligen presentera och kritisera de lösningar som man har studerat. Det kommer att finnas en projektor tillgänglig, så all kod kommer att kunna visas så att alla ser den. Ni genomför denna presentation i era labbpar.

1.4. Vad är kriterierna för att bli godkänd på seminarierna?

Först och främst ska ni vara närvarande vid alla fyra seminarierna. Till varje seminarium ska ni dessutom vara beredda på att redovisa och kritisera den lösning som ni blivit tilldelade. Varje grupp kommer att få redovisa vid minst ett seminarium, antagligen två. Redovisningen av en uppgift kan bli underkänd om man inte är förberedd eller om det är uppenbart att man inte kan ge några vettiga kommentarer på opponentgruppens lösning. Om så är fallet kommer jag att meddela gruppen detta personligen i efterhand, inte under själva seminariet. Ni kommer också att se era resultat i WebReg efter varje seminarium.

1.5. Vad händer om man inte blir godkänd?

Om man inte blir helt godkänd på seminariemomentet kommer man att få göra en 24-timmars hemtenta efter kursen där man får komplettera endast de delar som man missat (inlämningar, närvaro, redovisning).

1.6. Hur gör man en bra opposition?

Inför varje seminarium ska ni tillsammans i ert labbpar analysera och testa en annan grupps lösningar. Ni har mycket kort tid på er att göra detta, så se till att planera in tid för detta. Seminarierna kommer att anpassas efter dessa förutsättningar, men vi räknar med att ni har hunnit läsa igenom och testa koden.

Om ni blir utvalda att diskutera den lösning som ni har studerat ska ni vara beredda att göra följande:

  • Ni ska kunna presentera lösningen i stora drag och jämföra denna med er egen lösning. Ni ska alltså inte läsa upp koden rad för rad, utan göra en sammanfattning. Programkoden kommer att finnas tillgänglig, så om ni vill illustrera någon poäng kan vi ta fram koden så att ni kan peka ut intressanta aspekter.
  • Ni ska kunna säga något om hur de har tolkat uppgiften och hur de har använt de tekniker som är aktuella för uppgiften.
  • Ni ska kunna kommentera frågor om kodningsstil, om testfallen verkar vettiga och om utvecklarbloggen var lättläst och innehöll intressanta reflektioner.

Er opposition handlar alltså inte i första hand om att tala om huruvida lösningen var "bra" eller "dålig". Det är inte intressant. Om ni tycker att någonting i lösningen eller utvecklarbloggen var mindre bra, framför kritiken konstruktivt så att den kan hjälpa gruppen.

Oppositionen är tänkt att också vara ett tillfälle till diskussion. Det innebär att ni gärna får ställa frågor till gruppen, vars lösning ni kommenterar. Ni får också gärna ha med allmänna frågor till hela gruppen. Alla förväntas vara aktiva under hela seminariet.


2. Datorduggor och datortenta (DAT1, 4hp)

Vid två tillfällen, ett tillfälle mitt i kursen och ett efteråt, kommer vi att genomföra datorduggor för att bestämma individuella betyg. Duggorna är två timmar vardera och kommer att genomföras individuellt i våra Sun-PUL. Det innebär att ni bör vara bekanta med den miljön. Under duggan kommer ni endast att få ha med er kursboken i Ruby. Ni har också tillgång till Rubys inbyggda dokumentation, som ni därför bör lära er att använda. Ni kommer inte att ha tillgång till webben.

För att få godkänt krävs sammanlagt 25 poäng på de båda duggorna tillsammans. För betyg 4 krävs 33 poäng och för betyg 5, 40 poäng. Maxiamalt kan man får 50 poäng (25 per dugga).

Omexamination sker i form av en fyratimmarstenta som i övrigt har samma förutsättningar som duggorna. Denna tenta finns i tentaschemat.

Läs mer:


Sidansvarig: Peter Dalenius
Senast uppdaterad: 2014-02-12