Göm menyn

TDDD92 AI-projekt

Projektarbete (UPG4)


Efter att ni i HT1 har genomfört labbar, valt problem, skapat en egen problembeskrivning och arbetat fram en gemensam agent ska ni under HT2 implementera integrerade förmågor i er gemensamma agent. Stegen nedan beskriver hur ni ska genomföra projektarbetet.

Implementation och integrering av AI-teknikerna

Under HT2 behöver alla i gruppen arbeta på bland annat följande punkter:

  • Implementera den egna funktionaliteten, det egna ansvarsområdet (till exempel "byggnadsordning"). Detta behöver komma igång direkt i HT2 – man behöver lite marginaler för att t.ex. kunna ta ett avbrott i några dagar för att tänka över saker, eller för att man kanske blir sjuk ett tag.

  • Samarbeta med övriga i gruppen för att fortsätta med den gemensamma funktionalitet som man upptäcker att man behöver. Mycket bör redan vara klart i och med basagenten som skrevs i HT1, men man upptäcker säkerligen några fler behov när man arbetar i HT2. Detta arbete behöver fördelas jämnt inom gruppen.

  • Testa den egna funktionaliteten, men även testa att integrera flera olika funktionaliteter tillsammans. Vi ser ibland att olika gruppmedlemmar arbetar på helt egna grenar i Git och att integreringen inte sker förrän på slutet, och det kan vara ett stort misstag. Integrera så tidigt ni kan.

    Ett tips är att skapa ett antal featureflaggor där man kan slå av och på olika funktionaliteter, med "fallback" till en väldigt grundläggande funktionalitet om någon flagga är falsk. Exempel: Om FIND_SAFE_PATHS är True används någons "hitta-säker-väg-implementation". Om flaggan är False (kanske för att funktionen inte är färdig eller för att man vill testa om det är den funktionen som orsakar en bugg) anropas automatiskt en fallback som använder den inbyggda förflyttningen istället.

  • Planera arbetet och hålla en tidplan (mer om det senare).

  • Rapportera hur det går och diskutera frågor och problem (mer om det senare).

  • Arbeta på projektdelen av den individuella slutrapporten när du har material, och arbeta vidare med polering av utredningsdelen när du har fått kommentarer.

Planering av grupparbetet

För att hålla reda på hur det går och vem som gör vad, och se till att inget faller mellan stolarna, är det viktigt att ha en viss planering.

För att ge ett exempel på hur man kan göra har vi skapat ett enkelt Google-dokument (spreadsheet) där man kan planera arbetet på hög nivå. Vill ni planera på detta sätt kan ni skapa en egen kopia av detta dokument, fylla i medlemmarnas namn, och börja planera! Ni kan också välja att planera på annat sätt.

Obs! Dokumentet behöver delas med samtliga gruppmedlemmar, så samtliga kan skriva i dokumentet. Se de allmänna delningsinstruktionerna.

I dokumentet finns en kolumn för gruppen som helhet och en för varje gruppmedlem.

För varje vecka kan man i förväg skriva in en ungefärlig plan för vad man tänker göra. Det är då naturligt att man har en tydligare och mer konkret plan för de närmaste veckorna veckor framöver (med flera tydliga att-göra-punkter), medan planen blir mer "ungefärlig" ju längre in i framtiden man kommer. Även de mindre detaljerade delarna är dock viktiga för att man ska kunna se att planen i sin helhet verkar rimlig!

När veckan har gått skriver man också in vad man faktiskt har gjort, vilket ofta inte stämmer exakt med planen. Sedan är det dags att lägga några minuter på att uppdatera och förtydliga den framtida planen.

Redovisning/diskussion varje vecka

Under HT2 har vi ett redovisningstillfälle varje vecka utom den första och den sista. Detta är både en del av examinationen och ett sätt att hjälpa er att komma framåt med arbetet. Vid frånvaro, se kursinfo.

På redovisningstillfällen kommer varje grupp att få 30 minuter till att diskutera nuläget med er handledare. Ni behöver då vara förberedda på att t.ex. förklara hur det har gått med basagenten och diskutera lite om hur ni tänker fortsätta ert arbete efter föregående veckan.

Presentation som slutredovisning

Vid slutredovisningarna kommer ni att ha lite mer tid att redovisa vad ni har åstadkommit under terminen. Varje grupp kommer att redovisa separat under ett eget pass, där varje individ får en viss tid tilldelad att presentera sitt eget resultat. Varje grupp kommer att vara närvarande i högst en timme.

Kodinlämning

När du lämnar in slutrapporten, som innehåller projektdelen, behöver du också "lämna in" den programkod du har skrivit. Vid behov kan granskaren titta på den för att få mer information om vad du gjorde och hur du implementerade det.

Fokus är inte på att koden ska vara snyggt skriven eller extremt väldokumenterad! Däremot behöver det finnas någon form av översiktlig kommentar om var just din kod ligger och hur den hänger ihop. Detta läggs i filen liuid123.txt eller liuid123.md i roten av filarkivet (repository), där liuid123 är ditt ID.

Inför inlämningen skapar du tillsammans med gruppen en gemensam tagg (på main-branchen) för den commit du vill "lämna in". På det sättet skyddar du dig mot eventuella ändringar gjorda av andra gruppmedlemmar senare, till exempel vid komplettering. Du kan sedan slå upp denna tagg i projektet i Gitlabs webgränssnitt. Gå till Repository / Tags i vänstermenyn, som i detta exempel:

Klicka på taggens namn (t.ex. "v32.50.0" i exempelbilden -- inte en commit-hash som "2869de24" eftersom det är själva taggen vi vill åt). Kopiera sedan den URL du får fram i webläsaren. I exemplet blir det https://gitlab.com/gitlab-org/gitlab-ui/-/tags/v32.50.0; i ditt fall blir det t.ex. https://gitlab.liu.se/tddd92-2025/tddd92-2025-projekt-sgX-XX/-/tags/taggnamn, beroende på vilken grupp du är med i och vad du kallade din tagg.

Denna URL/länk ska du ha med i din inlämningsissue när du lämnar in en individuell slutrapport!


Sidansvarig: Jonas Kvarnström
Senast uppdaterad: 2025-10-10