Göm menyn

TDP007 Konstruktion av datorspråk

Seminarier


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 (alla inlämnade uppgifter) vid minst ett seminarietillfälle.

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 labinlämningssystemet senast det klockslag som anges för varje seminarium på schemasidan.

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. Använd gärna "lintern" som finns i den givan emacs-configgen. 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.

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 via mail. 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 den löstning som man har studerat. Det kommer att finnas en projektor tillgänglig. Ni genomför denna presentation i era labbpar.

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 (alla inlämnade uppgifter från den andra gruppen) som ni blivit tilldelade. Varje grupp kommer att få redovisa vid minst ett seminarium. 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. Ni kommer att se era resultat i WebReg efter varje seminarium.

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).

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 (alla inlämnade uppgifter från den andra gruppen) 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. Om ni behöver låna dator för att visa er kod säger ni till i förväg och mailar in ett arkiv med koden / dokumenten ni vill kunna visa för att peka ut intressanta aspekter. Annars går det bra att ta med sig en egen dator.
  • 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.



Sidansvarig: Pontus Haglund
Senast uppdaterad: 2022-01-12