Göm menyn

Samarbete / lånad kod

Ni behöver vara medvetna om reglerna för samarbete och användning av fritt material, så att ni inte riskerar göra något som räknas som fusk eller vilseledande.

Följande regler gäller när man använder kod som man inte har skrivit själv (ensam).

Användande av klassbibliotek i JAR-filer

När du använder klassbibliotek i kompilerat format (JAR-filer) finns ingen risk att vi misstar denna kod för din egen. Då gäller följande:

  • Du får gärna använda alla klasser i standardbiblioteket för Java 17.

  • Du får också använda MigLayout och GSON, som vi har refererat till under föreläsningar och/eller i labbarna. Vi har redan lagt in dessa klassbibliotek som IDEA-libraries i projekten som vi skapar åt er.

    Följ instruktionerna för IDEA, eller den enklaste varianten: "You can also create a new library from JAR files located within a project content root. Select these files in the Project tool window, and then select Add as Library from the context menu". Du behöver inte tala om för oss att du använder dessa välkända bibliotek.

  • I projektet får du också gärna använda andra fullständiga klassbibliotek som du laddar ner från nätet, men läs då dessa varningar noga:

    • Du ska inte använda verktyg som Maven eller Gradle för att automatiskt hantera beroenden på klassbibliotek. Verktygen är visserligen användbara, men ger merarbete för handledarna och sätter käppar i hjulen för vår kodinspektion. Se istället instruktionerna för IDEA för att se hur du lägger till nya bibliotek.

    • Klassbiblioteken får inte vara ramverk som "tar över" eller "kontrollerar" projektets struktur. Det måste vara din kod som ger den övergripande strukturen och som driver allt framåt, medan klassbiblioteket får hjälpa till med isolerade deluppgifter – t.ex. att hantera uppritning av rörliga figurer på skärmen.

    • Var försiktig med klassbibliotek som kan bero på hårdvara eller liknande. Ditt program behöver gå att köra även på t.ex. handledarnas datorer.

    • Du kan inte räkna med att de som granskar ditt projekt är bekanta med det klassbibliotek du använder. I implementationsbeskrivningen i projektrapporten behöver du därför vara extra noggrann med att beskriva klassbiblioteken och hur de används i ditt projekt, och du kan behöva fler sidor än det angivna antalet. Missar du det kan du få tillbaka projektet för komplettering av dokumentationen.

    • Klassbiblioteken laddas normalt ner som JAR-filer (arkiv), och ska också alltid läggas till som JAR-filer i projektet och checkas in. De ska inte ligga med som källkod eftersom de då kommer att analyseras som om de vore en del av din egen kod!

    • Den kod du själv skriver måste så klart fortfarande ha en rimlig omfattning (bredd och djup). Klassbibliotek kan eventuellt hjälpa dig att komma längre men gör inte att du kan minimera den egna kodens omfattning.

  • Om du vill använda dig av externa program, t.ex. servrar som behöver startas av användaren själv, behöver du diskutera det med handledaren.

Användande av okompilerad källkod från andra

Du måste tydligt markera användning av okompilerad källkod som du hittar på nätet enligt nedan. Det gäller även för kortare kodfragment.

Tänk på detta, så att du inte riskerar misstanke om fusk / plagiat (där vi är skyldiga att anmäla alla fall där det skulle kunna ha inträffat).

  • Du får (i måttlig grad) använda enskilda fullständiga klasser vars källkod du hittar på nätet, under förutsättning att du lägger dem i ett paket vars namn innehåller "borrowedcode" (exakt så) eller lägger till "BorrowedCode" i klassnamnet. Du kan t.ex. lägga dem i package se.liu.liuid123.game.graphics.borrowedcode om ditt LiU-ID är liuid123, eller döpa en klass till MyListenerBorrowedCode. Detta mönster används sedan i automatisk kodanalys!

    Regeln gäller även om du modifierar den kod du hittar.

  • Du får (i måttlig grad) använda enskilda kodfragment som du hittar på nätet. Om kodfragmenten är längre än ett par rader ska de göras till separata metoder vars namn innehåller "borrowedcode", t.ex. "borrowedcode_dijkstras_algorithm()". Detta mönster används sedan i automatisk kodanalys!

    Är kodfragmenten mycket korta (1-2 rader) och svåra att lägga som egna metoder räcker det med en kommentar som innehåller texten "borrowedcode" (exakt så!).

    Regeln gäller även om du modifierar den kod du hittar.

  • Du får givetvis lära dig och inspireras av enskilda enklare kodrader du hittar på nätet, och om du anser att du faktiskt har lärt dig tillräckligt för att skriva detta själv utan att "titta på facit", får du använda sådan egenskriven kod utan att ange en källa. Men om det handlar om enstaka rader som du inte anser att du helt och fullt kan skriva på egen hand, är det bättre att ta det säkra före det osäkra och ange källan enligt ovan (borrowedcode)!

Denna metod att markera kod, genom speciella namn, är inte så snygg. Vi håller på att utveckla en annan metod, med hjälp av annoteringen @BorrowedCode, men det är inte säkert att den hinner implementeras under 2022.

Samarbete med andra kursdeltagare

För samarbete med andra kursdeltagare gäller följande regler. Tänk på detta, så att du inte riskerar misstanke om fusk / plagiat (där vi är skyldiga att anmäla alla misstankar).

  • Det är fullt tillåtet att diskutera gemensamma lösningar på ett problem, t.ex. hur man strukturerar en del av koden, så länge som varje projektgrupp skriver sin egen kod.

  • Om man faktiskt skriver koden tillsammans, eller skriver av, räknas detta som lånad kod enligt ovan och måste markeras!


Sidansvarig: Jonas Kvarnström
Senast uppdaterad: 2022-02-06