Göm menyn

TDDC74 Programmering: Abstraktion och modellering

Projekt

VT 2018

Översikt

Projektdelen i kursen pågår under läsperiod 2. Detta moment består av 3hp, vilket motsvarar 80 arbetstimmar (per person). Era projekt kommer att ges betygen Komplettering, 3, 4 eller 5. Utöver att betygen registreras i LADOK, kan de påverka slutbetyget i kursen (se examination).

0. Hitta projekt och partner

Projekten genomförs i par. Det är bra om båda i paret har samma ambitioner med projektet (betygsmässigt och slutproduktsmässigt), och är relativt jämbördiga vad gäller att programmera i Racket. Vi har en lista med förslag på projekt som är lagom stora och lagom svåra att genomföra (se projektförslag-sidan). Ni måste inte välja ett av dessa, men de kan vara bra att jämföra med (i termer av svårighetsgrad, ämnen med mera).

Diskutera gärna era idéer med en assistent, så att er idé blir så lyckad som möjligt. Det ska vara roligt att göra projektet. Det ska också vara möjligt att genomföra projektet.

1. Beskriv projektidé

När du har hittat en arbetskamrat och ni har bestämt er för vad ni vill arbeta med, ska ni skissa på en beskrivning av ert projekt (ett par meningar). Beskrivningen ska vid detta lag ha skickats in per formuläret (se projektsidan) Vi kommer sedan tilldela ert projekt en handledare. Det är er handledare som ni ska ställa era frågor till, och få hjälp av under resten av projektet.

OBS! Det är viktigt att ni skickar in beskrivningen innan deadline (se veckoplaneringssidan).


2. Gå på projektföreläsningen

Här talar vi lite om projektarbetet, strukturerande och de dokument som behöver lämnas in.

3. Strukturera och planera projektet (specifikation)

Näst på tur är att skriva ihop en specifikation. I detta dokument beskriver ni er projektidé, hur ni har tänkt att implementera den, och ger en grov skiss på tidplan. Det är kanske inte uppenbart hur man gör detta, eller vad som förväntas. Till stöd finns det ett lektionstillfälle då er handledare ger er tips på vad man bör tänka på när man genomför ett projekt av det slag ni valt. För att vara så väl förberedd som möjligt, prata lite om projektupplägg med din projektpartner, utifrån exempelspecifikationen. Den senare finns på resurs-sidan. Det här kommer troligen att väcka en del frågor om hur programmet egentligen bör läggas upp. Det är helt OK! Tanken är att ni ska kunna komma med frågor till handledaren, snarare än att de uppstår efter tillfället.

Specifikationen ska lämnas in till er handledare för godkännande. Räkna med att få komplettering åtminstone en gång. En tydlig specifikation kan underlätta projektet väsentligt. Eller, annorlunda: det underlättar väsentligt att man tidigt i projektet har lagt ned det tankearbete och den planering som krävs för att skriva en bra specifikation.

Parallellt med detta kan det vara värt att läsa på och göra små kodexempel. Ska man göra ett projekt som använder grafik, kan det vara värt att besöka grafiksidan och se på den biten, snarare än att bara vänta på handledaren.

När ni har fått specifikationen godkänd får ni inte ändra i den utan er handledares godkännande. Se det som att er handledare är en kund som bett er skapa den slutprodukt som står beskrivet i specifikationen (en kunds beställning kan man inte ändra hur som helst!).

4. Koda

När ni fått er specifikation godkänd får ni börja skriva koden i ert projekt. Kodskrivandet kommer uppta större delen av projektet. Under denna tid finns labbsalar bokade, så att det garanterat finns plats. Inga assistenter/handledare kommer att vara närvarande per automatik, så kontakta er handledare och stäm träff om ni vill ha hjälp på plats. Ni kommer även behöva arbeta på projektet utöver de schemalagda tiderna.

Det brukar inte vara några problem att arbeta i SU-salar som bokats för andra kurser, men det är helt upp till laborationsassistenten som arbetar där. Som tumregel, fråga alltid. Schemalagda kurser har alltid företräde. Detta innebär såklart också att ni på TDDC74-schemalagda tillfällen har rätt att kräva en plats från studenter som arbetar med andra kurser.

5. Diskutera

En bit in i projektet ska ni träffa er handledare för avstämning. Detta är något som måste ske, men er handledare kan såklart vilja träffa er innan (och ni er handledare).

Vid detta möte kommer handledaren i förväg kolla igenom er kod, ge feedback på den och diskutera eventuella ändringar ni bör göra i specifikationen för att bli klara i tid. Handledaren kommer även kolla igenom er tidrapportering.

6. Arbeta på, checka in veckovis

I slutet av varje vecka, skicka en statusrapport/kort "veckodagbok". Vad har ni gjort i veckan? Då inte "skrev kod", utan (marginellt) mer utförliga versioner av "byggde färdigt character-hanteringen" eller "felsökte grafiken, vi kan fortfarande inte få klickhanteringen i function123 att fungera. Jobbar vidare på måndag, men blir vi inte klara i veckan kommer vi att behöva hjälp")? Har ni har stött på problem ni behöver hjälp med? Bifoga oavsett vad som gjorts en hoppackad version av projektet, eller en commitlänk (om ni versionshanterar). Räkna inte med att handledaren öppnar er kod, om det inte särskilt efterfrågas. Att ni inte har fått en kommentar betyder alltså inte att allt är perfekt. Det betyder bara att ni har skickat in kod och visat (för handledaren och er själva!) att ni jobbat på. Det ger också ett utmärkt tillfälle att säga till om man har kört fast på något visst! Så att det inte missuppfattas, dock: räkna med att projektet ska vara mer självständigt än laborationsserien. Räkna med hjälp, men inte skedmatning eller jour-felsökning. Prata med er handledare om förväntningar kring detta tidigt.

7. Redovisa, skriv rapport

I projektets slutskede ska ni visa upp er slutprodukt för er handledare. Några dagar efter denna demonstration ska ni lämna in en rapport som beskriver ert program tekniskt, ur användarsynpunkt, samt hur ni genomfört ert projekt (och vad ni har lärt er). Ni lämnar givetvis in kod också.

Om ni känner på er att ni inte kommer hinna klart med projektet i tid måste ni ta kontakt med er handledare. Vänta inte med detta till sista sekund.

Om detta dokument

Detta dokument ger en skiss över projektarbetet. Det innehåller inte alla deadlines, och är inte en uttömmande uppräkning av alla moment.


Sidansvarig: Anders Märak Leffler
Senast uppdaterad: 2018-04-02