Hoppa till huvudinnehållet
Institutionen för informationsteknologi

PKD 12/13: Projekt

För att få praktisk erfarenhet av lite större programmeringsuppgifter kommer ni under februari-mars att utföra ett programmeringsprojekt.

Projektet skall utföras i grupper om tre studenter (i undantagsfall två eller fyra).

Ni får själva komma med förslag om vad projekten skall handla om. Ni skall skicka förslaget med e-post till er handledare. Handledaren kommer att fundera över förslaget och komma med synpunkter. När ni är överens så kan ni börja arbeta med projektet! Detta skall ni göra så fort som möjligt efter att grupperna är klara så att ni kan ha kommit igång med arbetet vid första handledningstillfället (läs mer om handledning nedan).

Lite inspiration om vad projekten skall handla om kan ni få av att titta på några av de större inlämningsuppgifter som vi haft på kursen tidigare år.

Symbolisk derivering
Webbchat
Bildbehandling
Kryptokorsord

Dessa uppgifter var avsedda för en ensam student. Den uppgift ni skall lösa skall alltså vara större, men inte väldigt mycket större eftersom ni kommer att ha kortare tid på er att arbeta och att det alltid tar en del tid bara för att få grupparbeten att fungera.

Det är ok att ta några av exemplen ovan som projekt, men då måste ni lägga till något till uppgiften så att den blir större.

Grupplista

Lista över grupperna finns här. I listan finns också gruppens nummer och lektionsledare.

Vad projektet skall leverera

Resultatet av projektet skall bli

  • Ett fungerande ML-program som utför den uppgift som ni fått godkänd av handledaren. Programmet skall följa kursens kodningsstandard. Programmering med sidoeffekter får inte ske annat än om det är nödvändigt t.ex. i samband med in/utmatning.
  • Automatiserade testfall för programkoden utformade enligt de riktlinjer som vi lämnat på kursen.
  • Dokumentation av programmet. Se nedan för mera information om hur dokumentationen skall vara utformad.
  • Projektdagböcker för varje deltagare. I sin projektdagbok skall var och en av er notera varje tillfälle hen arbetat med projektet: när, hur länge och med vad.

Dokumentationen

Ni skall skriva dokumentation till ert program. Förutom de vanliga specifikationerna till varje funktion som skall finnas i programkoden, så innebär det att ni skall skriva ett separat dokument som beskriver hur ert program fungerar och hur man skall använda det.

Dokumentationen skall innehålla:

  1. Titel, namn på projektdeltagare, uppgift om att detta är projektet på denna kurs detta år, innehållsförteckning, inledning med sammanfattning av vad programmet gör.
  2. En "användarbeskrivning": en anvisning för hur man praktiskt använder ert program, inklusive körexempel.
  3. En "programdokumentation": en beskrivning av hur ert program egentligen fungerar:
    • Beskrivning av datastrukturer. För abstrakta datatyper skall ni dessutom ange hur gränssnittet ser ut.
    • Beskrivning av algoritmerna som ert program använder.
    • Beskrivning av de olika delfunktionerna hos programmet. Beskriv algoritmer och ge funktionsspecifikationer för de viktigaste delfunktionerna. Tala om hur programflödet ser ut (alltså hur funktionerna anropar varandra).
  4. Beskrivning av kända brister hos programmet. Det kan vara sådant som fungerar men ni själva tycker är mindre lyckat gjort eller saker som ni trots tappra försök inte lyckats få till ordentligt.

Det skall räcka att läsa dokumentationen för att förstå ert program!

Observera att praktiskt taget hela dokumentationen kan skrivas innan ni börjar koda. Att göra det kan vara en bra idé eftersom det då hjälper er att styra arbetet.

Dokumentationen är lika viktig som själva programmet. Är dokumentationen dålig så kommer det att dra ned betyget även om ert program fungerar bra. Börja arbeta med dokumentationen i god tid! Skriv t.ex. rubriker eller gör t.ex. en innehållsförteckning som visar hur ni tänker lägga upp dokumentationen och visa den för er handledare.

Redovisning

Ni skall lämna in projektresultatet skriftligt senast klockan 18:00 torsdagen den 7:e mars och redovisa projektet muntligt någon gång den 11-13:e mars. Redovisningsschema finns här.

Programmet, testfallen, dokumentationen och projektdagboken skall lämnas in i Studentportalen. Endast en av gruppmedlemmarna skall lämna in. Dokumentationen och projektdagboken skall lämnas in som pdf-filer. Inte som en Microsoft Word .doc-fil, TeX-källkod eller några andra ordbehandlardokument.

I den muntliga redovisningen skall ingå

  • En beskrivning av vad programmet skall göra och en demonstration av programmet.
  • En översikt av hur programmet fungerar.
  • Beskrivning av någon detalj som ni tycker är speciellt intressant.
  • En beskrivning av något som ni hade speciella svårigheter med.

Efter redovisningen kommer ni att få frågor om projektet.

Varje redovisningstillfälle är 30 minuter långt. Den muntliga presentationen skall vara c:a 20 minuter lång. Därefter finns tid för frågorna. Varje gruppmedlem skall delta i redovisningen och ni skall redovisa ungefär lika mycket var. Det är en bra idé att öva på redovisningen innan så att man vet att det inte tar för lång (eller kort) tid. Vi har många grupper så om redovisningen tar för lång tid så kommer vi att avbryta er.

Opposition

Ni skall opponera på en annan grupps presentation. Mera information om hur det skall gå till kommer senare.

Hur ni skall arbeta i projektet

Ni får dela upp arbetet mellan er som ni vill, men det är viktigt att alla gruppmedlemmarna får prova på olika sorters arbetsuppgifter (programmering, testfallskonstruktion, dokumentation...) och att alla är med i arbetet och förstår vad som görs. I samband med redovisningen kommer vi att ställa frågor till varje gruppmedlem som kan handla om vilken del som helst i projektet.

Betygsättning

Betygen sätts i förhållande till kraven ovan på vad projektet skall leverera och hur det skall redovisas.

Betygskriterier:

Ett projekt som på ett speciellt bra sätt uppfyller alla kraven ovan får en 5:a.
Ett projekt som uppfyller alla kraven ovan får en 4:a.
Ett projekt som inte uppfyller alla kraven ovan, men som har åstadkommit något konkret som delvis uppfyller varje krav och som tydligt visar att projektdeltagarna förstår vad de håller på med får en 3:a.

Ett underkänt projekt får göras om nästa år. I undantagsfall kan vi tillåta att ett projekt kompletterar för godkänt.

Vid betygsättningen tar vi inom rimliga gränser hänsyn till om projektet är speciellt svårt eller enkelt.

Varje deltagares betyg bestäms inte bara av hur väl projektet genomförts utan även hur vi bedömer att deltagaren bidragit till projektet. Det gör vi med hjälp av projektdagboken, den kunskap om projektet som deltagaren visar vid handledningstillfällena och i samband med presentationen. Syftet är att "fripassagerare" inte skall slippa igenom och att personer som dragit ett tyngre lass än andra skall kompenseras för det.

Handledning

Ni är alltid välkomna att tala med er handledare (i första hand) eller Lars-Henrik (i andra hand) för att få hjälp.

Varje vecka medan ni arbetar med projektet skall ni ha en handledningsträff med er lektionsledare. Ni kommer överens om dag och tid tillsammans med lektionsledaren. Vid handledningsträffarna skall ni ge en kort beskrivning av hur det går i projektet och sedan diskuterar ni med handledaren hur ni skall fortsätta. Det är i princip obligatoriskt för alla deltagare i gruppen att komma till handledningsträffarna. Om du blir borta från handledningen så riskerar det att påverka betygsättningen, eller så kan du få extra frågor om projektet innan ditt betyg sätts. Senast klockan 18:00 dagen före varje handledningsträff skall ni lämna in era projektdagböcker i Studentportalen. Där kan ni också lägga ev. kod och dokumentation som ni vill diskutera vid handledningstillfället så att handledaren har en chans att titta på den innan.

Uppdaterad  2013-02-06 10:36:58 av Lars-Henrik Eriksson.