Göm menyn

TDDD92 AI-projekt

Projekt i grupp


Inledande tidplan

  • Torsdag 191010: Kickoff, det första laborationstillfället för projektgrupperna. Här påbörjas arbetet med att sätta ihop den första gemensamma agenten, som inte innehåller de nya AI-tekniker ni ska implementera när utredningsarbetet är klart.

  • Fredag 191018: Det första riktiga testet av den gemensamma agenten. Här ska par av grupper testa sina agenter mot varandra, för att se till att agenterna verkligen fungerar på ett sammanhängande sätt i den "riktiga" spelmiljön. Det spelar ingen roll vem som vinner ett test.

  • 191019-191103: Tenta- och omtentaperiod. Inga schemalagda tillfällen, men självklart får man gärna arbeta på agenten om man själv vill.

  • 191106: Första laborationstillfället i HT2.

Projektarbete (3 hp)

Målet med projektarbetet är att ni i grupper om cirka 6 studenter ska designa, implementera och utvärdera ett större system som kräver automatiserat beslutsfattande. Följande är några relevanta punkter:

  • Ni kommer att få genomföra projektarbetet på ett självgående sätt. Handledarna kommer att finnas tillgängliga på ett labbtillfälle per vecka. Utnyttja detta för att få hjälp eller utvärdera möjligheter – men jobba också på egen hand och driv själva projektet framåt.

    Hur mycket vi än skulle vilja har vi tyvärr inte möjlighet att svara på frågor på arbetsrummet. Sådana oplanerade avbrott mitt i våra andra arbetsuppgifter leder till att vi ständigt tappar fokus, och tar alltså i praktiken mycket mer tid än man kan tro. Vi får ett begränsat antal timmar för att arbeta med kursen, och de måste användas effektivt för att ge alla så mycket hjälp som möjligt. Därför kan vi ta emot frågor på schemalagda tillfällen eller (till viss del) via epost/issues, som vi kan ta hand om mellan andra arbetsuppgifter.

  • Varje fredag i andra perioden har vi ett seminarium där ni ger en statusrapport för ert projekt relativt er projektplan -- ett levande och lagom detaljerat dokument som ska hjälpa er att planera arbetet och samarbetet under projektveckorna. Detta har flera syften som vi diskuterar under nästa rubrik (nedan).

  • I slutet kommer ni att få en möjlighet att utvärdera ert lag mot andra lag i en turnering. Placeringen i turneringen kommer inte att ha en direkt påverkan på betyget, eftersom placeringen även kan bero på faktorer som är svåra för er att påverka.

  • Ni kommer även att presentera de färdiga projekten för övriga grupper på ett seminarium. Varje grupp får 15 minuter för sin presentation.

  • Examinationen innehåller också en slutrapport. Rapporten ska bland annat ta upp mål, syfte, teknisk beskrivning av systemet med fokus på de delar ni själva gjort, särskilt beslutsfattandet, utvärderingen, resultat och slutsatser. Ni måste skriva på svenska.

    Se den detaljerade beskrivningen av slutrapporten.

Planeringsdokument och fredagsseminarier

Varje grupp kommer att skapa ett ganska enkelt, men ändå mycket viktigt, planeringsdokument som ska hållas uppdaterat under kursens gång. Detta har flera syften:

  • Individuellt: För att ni ska tänka på både helheten och detaljerna.

  • Gruppen: För att ni ska kunna koordinera arbetet och se vad andra gruppmedlemmar gör.

  • Examination och vägledning: För att vi behöver se vad ni gör individuellt, och få en chans att fånga upp individuella problem inom gruppen.

Planeringsdokumentet är ett spreadsheet/kalkylark som ser ut ungefär så här:

Varje grupp ska kunna göra en egen kopia med grund i detta dokument. I detta behöver ni sedan fylla i, för varje vecka, både gruppvis (under "alla") och individuellt (under era egna namn):

  • Vad planerar ni att göra?

    Redan i förväg planerar ni detta på en högre nivå för alla kursens veckor, med kanske 2-3 meningar per vecka och kolumn. Detta ger er en chans att kontrollera att allt ni vill göra faktiskt passar in före kursslutet, och att justera och flytta runt uppgifter så att planen ser rimlig ut. Det ger också en möjlighet att planera samarbetet mellan olika personer, så deluppgifter blir klara i tid.

  • Hur mycket tid planerar ni att detta kommer att ta? Här får ni se till att lägga ut kursens alla timmar under de veckor som ni kommer att arbeta. Är det några veckor som ni tänker arbeta mer än andra? ("Alla"-kolumnen summerar automatiskt timmarna från de övriga kolumnerna.)

Under kursens gång kommer planen att vara ett levande dokument som uppdateras vecka för vecka. Inför varje fredagsseminarium behöver varje grupp och person:

  • Fylla i vad som faktiskt gjordes och hur många timmar som spenderades, något ni alltså ska skriva upp löpande.

  • Planera de närmaste 1-2 veckorna mer konkret och i mer detalj, utöver de kortfattade planer som fylldes i redan från början.

  • Uppdatera övriga planer utifrån nya erfarenheter och tankar.

fredagsseminarierna under andra perioden träffar vi en grupp i taget i cirka 20 minuter. På varje sådant gruppmöte sker följande:

  • Gruppen ger en livedemonstration av sin nuvarande agent, när den spelar StarCraft mot t.ex. en inbyggd agent. Detta visas med hjälp av gruppens egen dator, på en projektor, inför handledare och den egna gruppen. Här behöver ni visa vad ni har gjort och vad som är skillnaden mot förra veckan. Varje gruppmedlem förväntas också (kortfattat) peka ut och kommentera användning eller resultat av de "egna" funktionaliteterna. Detta kan typiskt ta cirka 5 minuter och datorn behöver alltså vara förberedd vid mötets start.

  • Varje gruppmedlem rapporterar kortfattat och koncist (2 minuter!), utifrån planeringsdokumentet (ingen presentation eller projektor): Vad planerade jag att göra till denna vecka? Vad har jag faktiskt gjort sedan förra veckan? Vad ska jag göra till nästa vecka? Hur kommer detta att synas i livedemonstrationen? Detta är en diskussion med handledarna där vi får en möjlighet att ge kontinuerlig återkoppling på det som har gjorts och på era nuvarande planer.

    Verkar tiden kort? Dels är det en övning på att ge korta och koncisa statusrapporter, dels är mötet inte till för att ställa de mer komplicerade frågorna – det kan vi ta hand om på annat sätt. Mötet är till för att ge en snabb ögonblicksbild av nuvarande status och för att se om vi kan behöva ta oss tid till mer ingående diskussioner vid ett senare tillfälle.

    Just därför är det också viktigt att ni har en väl uppdaterad statusrapport som vi kan basera mötet på – det underlättar mycket när man har ont om tid att beskriva läget!

  • Några minuter finns tillgängliga för allmänna frågor och diskussioner.

Det är starkt rekommenderat att vara på samtliga fredagsseminarier. Det är inte ett separat examinationsmoment, men utöver återkopplingen ger det er också en möjlighet att visa upp ert eget arbete och visa att ni ständigt är aktiva i gruppen. Missar ni detta kan ni behöva visa upp det på ett starkare och tydligare sätt i slutrapporten så att vi ser ert individuella arbete när vi bedömer helheten.

Arbetsfördelning under projektet

Som enskild kursdeltagare måste du ta ditt ansvar för att du ska kunna visa upp att du kan implementera AI-tekniker. I stora drag får gruppen lägga upp arbetsfördelningen som den vill, men tänk på att:

  • Var och en behöver ha ansvar för en specifik problemställning och för att implementera en lösning till det uppställda problemet. Lösningar får till begränsad del överlappa med varandra, t.ex. om två olika problem båda behöver en implementation av A*-sökning, men problemställningarna ska vara separata

  • Ingen får bara jobba med det "klister" som behövs för att sätta ihop koden till en fungerande agent, och alla behöver ta sitt eget ansvar för att göra sin del av detta.

  • I projektet är alla gemensamt ansvariga för att allt fungerar som en agent i sin helhet.


Sidansvarig: Jonas Kvarnström
Senast uppdaterad: 2019-12-05