Göm menyn
Detta är en gammal version av kurshemsidan och kan innehålla inaktuell information. Klicka här för att komma till årets upplaga av kursen.

TDDI16 Datastrukturer och algoritmer

Ht1 2020

Laborationer på Windows

Laborationerna går att kompilera och köra med Visual Studio 2019 - Community Edition på Windows. För att göra detta behöver du ha windowsversionen av laborationerna som finns länkade nedan. Arkiven nedan innehåller samma sak som Linux/UNIX-versionen av arkiven, men också lite filer som gör det enklare att kompilera på Windows. Laboration 4 kräver inte heller SFML för att underlätta.

Windowsversioner av laborationsuppgifterna

  1. AVL-träd (AVL)

    Instruktioner - Givna filer

  2. Knäcka lösenord (Passwords)

    Instruktioner - Givna filer

  3. Ordkedjor (Wordchains)

    Instruktioner - Givna filer

  4. Mönsterigenkänning (Patterns)

    Instruktioner - Givna filer

Kom igång

Börja med att ladda ner och installera Visual Studio. Gå till nedlanningssidan, välj "Community Edition" i listan och följ instruktionerna.

I och med att laborationerna är gjortda för att köras från kommandoraden så ska vi se till att det går smidigt att få fram en terminal med rätt inställningar. Börja med att skapa en mapp där du har laborationerna (kanske till och med ett Git-repository):

Hitta sedan "Developer Command Prompt for Visual Studio 2019" i startmenyn under "Visual Studio 2019". Högerklicka på den, välj "Mer" och sedan "Öppna filsökväg".

Du ser nu följande fönster. Högerklicka på "Developer Command Prompt for Visual Studio 2019" och välj "Kopiera".

Högerklicka i mappen du skapade för laborationerna och välj "Klistra in".

Klicka på namnet till vänster om sökrutan i toppen av fönstret och kopiera sökvägen med Ctrl+C.

Högerklicka på filen du just kopierade och välj "Egenskaper".

Ta bort det som står i fältet "Starta i" och klistra in (Ctrl+V) det du just kopierade. Lägg till citationstecken (") före och efter namnet och klicka sedan på "OK".

Nu kan du dubbelklicka på genvägen så ska du se en terminal som ser ut som nedan. Terminalen ska starta i mappen med labbarna i så att det blir enkelt att komma igång sedan.

Ladda sedan hem källkoden för någon laboration och packa upp den i mappen du skapade, lämpligtvis i en egen undermapp för att hålla koll på vilka filer som hör till vilken labb. Du kan sedan använda cd i terminalen för att navigera till den mappen och använda dir för att se vilka filer som finns.

Kompilera kod

När du har skapat en genväg enligt instruktionerna ovan kan du använda den för att öppna en terminal där du kan kompilera kod. Navigera sedan till mappen med den labb du vill kompilera med cd som vanligt (exempelvis cd lab1).

Väl i rätt mapp kan du använda kommandot msbuild <projektfil> för att kompilera koden:

  • Labb 1: msbuild avl-tree_test.vcxproj
  • Labb 2: msbuild encrypt.vcxproj eller msbuild brute.vcxproj eller msbuild decrypt.vcxproj
  • Labb 3: msbuild wordchain.vcxproj
  • Labb 4: msbuild brute.vcxproj eller msbuild fast.vcxproj

Likt i UNIX kan && användas för att göra saker i tur och ordning. Exempelvis: msbuild wordchain.vcxproj && wordchain < input kommer kompilera labb 3 och köra den om allt gick bra.

Det kompilerade programmet kan sedan köras som vanligt med de kommandorader som anges i labbinstruktionerna. Det finns dock två skillnader:

  • Kommandot time finns inte tillgängligt.
  • Kommandot cat ska ersättas med kommandot type. Dock kommer type att skriva ut lite extra skräp i terminalen, vilket i allmänhet inte är något problem.
  • Vissa kombinationer av echo och cat kanske inte fungerar. Exempelvis: echo "a" | cat test.txt - | program kommer inte kunna ersättas av echo "a" | type test.txt - | program eftersom type inte riktigt fungerar som cat

Textredigerare

Nedan följer några idéer på textredigerare för Windows:

  • Emacs

    Emacs finns även för Windows. Hämta den härifrån. Packa upp filen på lämplig plats, och kör emacs.exe som finns i mappen bin.

  • Visual Studio

    Genom att dubbelklicka på projektfilerna som finns i den givna koden öppnas projekten i Visual Studio. Härifrån kan du direkt kompilera koden. Dock är labbarna inte gjorda att köras ifrån Visual Studio (du behöver ofta ge dem indata via kommandoraden).

  • Visual Studio Code

    Mer avskalad version av Visual Studio som har stöd för många språk och plugins. Ska kunna kompilera projekt via msbuild.

Regler för datorlaborationer

Regler för examinering av datorlaborationer vid IDA

Datorlaborationer görs i grupp eller individuellt, enligt de instruktioner som ges för en kurs. Examinationen är dock alltid individuell.

Det är inte tillåtet att lämna in lösningar som har kopierats från andra studenter, eller från annat håll, även om modifieringar har gjorts. Om otillåten kopiering eller annan form av fusk misstänks, är läraren skyldig att göra en anmälan till universitetets disciplinnämnd.

Du ska kunna redogöra för detaljer i koden för ett program. Det kan också tänkas att du får förklara varför du har valt en viss lösning. Detta gäller alla i en grupp.

Om du förutser att du inte hinner redovisa i tid, ska du kontakta din lärare. Då kan du få stöd och hjälp och eventuellt kan tidpunkten för redovisningen senareläggas. Det är alltid bättre att diskutera problem än att, t.ex., fuska.

Om du inte följer universitetets och en kurs' examinationsregler, utan försöker fuska (t.ex. plagiera, använda otillåtna hjälpmedel eller ej godkända AI-baserade assistenter) kan detta resultera i en anmälan till universitetets disciplinnämnd. Konsekvenserna av ett beslut om fusk kan bli varning eller avstängning från studierna.

Policy för redovisning av datorlaborationer vid IDA

För alla IDA-kurser som har datorlaborationer gäller generellt att det finns en bestämd sista tidpunkt, deadline, för inlämning av laborationer. Denna deadline kan vara under kursens gång eller vid dess slut. Om redovisning inte sker i tid måste, den eventuellt nya, laborationsserien göras om nästa gång kursen ges.

Om en kurs avviker från denna policy, ska information om detta ges på kursens webbsidor.


Sidansvarig: Filip Strömbäck
Senast uppdaterad: 2020-08-13