L2. En Modul

Uppgiftsbeskrivning

Länken till Drive-dokumentet hittas i Slack. Länk

Inlämning

Koden lämnas in genom formulär Daniel kommer tillhandahålla i Slack några dagar innan deadline ( se schema ). Formuläret kommer innehålla ert namn samt länk till git-repositorium samt några frågor.

Testrapport och kodkvalitetskrav lämnas in som ett markdowndokument i ert repositorium där även reflektionen skrivs. Namnge dessa filer som testrapport.md och reflektion.md

Bedömning

För godkänd nivå “E”

  • Funktionell kod. All kod skall vara testad. De flesta testfall skall fungera, något enstaka testfall får misslyckas eller känd bugg får finnas. Modulen måste dock fungera i stort. Det finns en testrapport som visar vad som fungerar och hur det är testat.

  • Koden är tillräckligt stor/komplex för att räknas.

  • Koden är förberedd för att återanvändas.

  • Det finns en läsbar dokumentation på github.

  • All kod finns med historik på github ( tänk minst daglig commit ).

  • Tabeller med Kodkvalitetskrav är ifyllda för det publika interfacet som baseras på kursboken.

  • En reflektion är skriven baserat på vad studenten har lärt dig.

  • Studenten uppfyller reglerna.

För högre betyg “A-D”

  • Samtliga punkter från “För godkänd nivå ”.

  • Testningen är övertygande och noggrann. Viktigaste kraven fungerar.

  • Koden överträffar storlek och komplexitet.

  • Det är mycket tydligt utifrån git-repositoriet hur modulen skall återanvändas. Exempel och dokumentation, installationsanvisningar.

  • En tydlig separation finns mellan modulen som skall återanvändas och de sätt som modulen har använts för att testa den. Exempelvis kan test-appen ligga i en separat katalog.

  • Kodkvalitetskraven är varierade i vilka regler de använder. Studenten är tydlig i hur regler och kodnamn samt metoder hänger ihop.

  • En välskriven reflektion är skriven som baseras på erfarenheter och lärdomar utifrån laborationen samt bokens kapitel 2 och 3.

Regler

  • Skriv all kod själv, skriv inte tillsammans med någon (sida vid sida-programmering). Ni får inte heller generera kod med hjälp utav LLM eller på andra sätt.

  • Kopiera inte kod från någon annan. Skriv inte av kod.

  • Använd inte bibliotek eller färdiga metoder för att lösa huvudproblemet, dvs er modul. Om ni tänker if-satser och for-loopar så tänker ni rätt. Ni får använda inbyggda typer och metoder som finns i språkets standardbibliotek. Men om ni behöver “installera beroenden” så skall ni helst undvika det. Diskutera med Daniel. Det är dock helt okej att använda ramverk i Test-App för att testa er modul.

  • Koden skall kunna delas med klasskamrater under senare laborationer och workshop. Ange licens för öppen källkod och publicera publikt på GitHub.

  • Koden är skriven i ett programmeringsspråk som förekommit tidigare än den här kursen i utbildningen. En annan student på samma program skall kunna förstå din modul utan att läsa in sig på ett ramverk.

  • Fokusera på Objektorienterad kod med klasser och metoder i klasser. Du kan ha kod utanför klasser men bara om den behövs för att starta upp koden ( ex. nodejs “server.listen(port…” ). Inga metoder i dina klasser får vara statiska mer än om det behövs för att starta upp koden ( Ex. java “public static void main(... ” )