P02 Slutprojekt

Det har blivit dags att avrunda kursen med det examinerande projektet. Eftersom vi har testat en mängd olika paket under vårterminen så kommer det finnas möjlighet att göra ditt slutprojekt med olika inriktningar. Det kommer finnas projekt som görs i form av en tutorial för de lägre betygen men det kommer också finnas påbyggnadsmöjligheter för projekt som baseras på tutorials för att kunna nå högre nivåer på slutprojektet.

Betyget på kursen bygger på allt du har gjort där vi bedömer svårighetsgrad och kvalitet för att sätta det betyg du har uppnått.

P02.1 Alternativa slutprojekt

Här listar vi två styrda projekt du kan välja mellan och ett valfritt projekt. Om du väljer ett helt eget projekt så behöver du vara noggrann med planering för att säkerställa att du arbetar mot det betyg som du vill nå.

P02.1.1 Game of 40

Uppgiften är att skapa en applikation inom valfritt textbaserat programmeringsspråk där en eller flera spelare kan spela ett tärningsspel som heter Game of 40.

P02.1.1.1 Spelregler

Spelet spelas med en tärning och minst två spelare. För att vinna spelomgången skall det sammanlagda värdet av alla tärningsslag du slagit bli minst 40. Slår du en sexa på tärningen så förlorar du alla dina poäng i den omgången, tidigare sparade poäng kan inte förloras. Du kan när du vill stanna, spara dina poäng, och sedan överlåta tärningen till nästa spelare.

Innan du börjar hacka kod, gör en grovplanering av hur du skall lägga upp arbetet. Det är oftast mer effektivt att sedan lösa en deluppgift i taget. Om du vill så finns det en tutorial att följa för att lösa grunduppgiften som leder till betyget E.

P02.1.1.2 Grundkrav

Följande grundkrav finns för att ha löst uppgiften.

  • Applikationen skall vara buggfri.
  • Tärningarnas värde behöver lagras på ett sådant sätt att du kan visa värde på varje tärning och inte bara en slutsumma.
  • Innan du börjar koda applikationen bör du skapa en planering där du skissar på ett gränssnitt, grafiskt eller textbaserat, så att du vet hur spelet skall presenteras och spelas. Använd också aktivitetsdiagram/pseudokod där du anser att det behövs för att lösa och/eller förtydliga svårigheter i spelets logik eller kod.
  • I grundvarianten så skall det vara en spelare som spelar mot datorn. Hur datorn spelar spelet skall kodas och dokumenteras. Enklaste varianten är att datorn alltid slår tre slag och sedan sparar sina tärningar.
  • Spelet skall följa de grundläggande reglerna, väljer du att skapa specialregler så skall detta dokumenteras.

P02.1.1.3 Tilläggsfunktionalitet mot betyget C

Grundkraven skall först vara uppnådda sedan skall följande tilläggsfunktionalitet läggas till;

  • Datorn skall ha två svårighetsgrader. Den ena svårighetsgraden är den som implementerades i grunduppgiften och den andra är en lite smartare logik som du skapar själv. Den du skapar själv skall dokumenteras med text och med aktivitetsdiagram och pseudokod.
  • Fråga spelaren vilken av datorns svårighetsgrad du vill möta när omgången börjar.
  • Möjlighet att spela flera omgångar utan att spelet avbryts med en resultaträknare i slutet av varje omgång.

P02.1.1.4 Tilläggsfunktionalitet mot betyget A

Tilläggskraven mot betyget C skall vara uppnådda först sedan skall följande tilläggsfunktionalitet läggas till;

  • Tkinter, eller annat GUI, läggs till.
  • Välja att kunna spela två spelare eller spelare mot dator.

Gemensamt för all tilläggsfunktionalitet är att det är bättre att göra vissa delar av bra kvalitet än att göra flera delar av tveksam kvalitet. Betyget på kursen sätts som en samlad bedömning av allt du har gjort under kursen.

P02.1.2 Banken

Vi har tidigare jobbat med en bankapplikation och om du har följt tutorial så motsvarar detta betygsnivå E, det räcker dock inte att ha gjort endast denna för att nå betyget E på kursen. Om du vill vidareutveckla bankapplikationen så är det möjligt för att nå ett högre betyg.

Följande tilläggsfunktionalitet är lämplig att lägga till för att nå ett högre betyg;

  • Flera konton till en enskild användare.
  • Flera användare kopplade till banken med någon form av inloggning.
  • Bygga banken i en grafisk miljö med Tkinter eller annat paket för GUI.

Att lösa en av punkterna ovan har en svårighetsgrad motsvarande betyget C, att lösa två av punkterna, gärna med GUI, motsvarar svårighetsgraden A.

Återigen, uppgiften sätter svårighetsgraden och utförandet sätter kvaliteten på ditt arbete. Kombinationen av svårighetsgrad och kvalitet kommer avgöra ditt betyg.

P02.1.3 Annat projekt

Du har möjlighet att göra ett valfritt projekt men då ställs det lite större krav på dig själv. Sätt ett tydligt betygsmål med kursen och gör en presentation av det projekt du vill göra så att läraren kan göra en bedömning om det projektet är genomförbart och att det uppnår den svårighetsgrad som krävs för din betygsambition.

Det är ok att delvis använda sig av tutorials på nätet/litteratur men det är ett absolut krav att alla denna hjälp finns med i dokumentationen när ditt projekt redovisas. Vi behöver se vilken hjälp du fått för att kunna avgöra vad du själv har gjort.

P02.2 Checklista

För att samla ihop vad som behöver vara gjort i kursen så finns det en checklista som är lämplig att följa.

P02.3 Redovisning

Denna kurs redovisas genom att du bokar en individuell tid där du visar upp dina projekt. Denna redovisning sker individuellt där vi sitter ner i 20 minuter och kollar på vad du har gjort under kursen och vilken kvalitet det håller. Under vecka 18/19 kommer en bokningslista att läggas ut där du själv bokar lämpligt tillfälle att redovisa dina kunskaper. Sista dag för redovisning är tisdagen 11 juni. Om du vill ha chans att göra en komplettering ifall du inte nått det önskade betyget så rekommenderar jag att du bokar en tid för redovisning lite tidigare.

Redovisningarna startar vecka 20.