Göm menyn

TDIU20 Objektorienterad programmering

Laboration på distans


OBS: I nuläget går laborationerna på plats. Denna information finns här som referens, och för att underlätta vid en hastig övergång till distans.

Hjälp och samarbete

Kommunikation med er assistent

Laborationer på distans genomförs med Microsoft Teams. En guide för Microsoft Teams finns här. Varje klassgrupp (A, B, C, D) har var sitt "Team". I varje team kommer det att finnas följande kanaler:

  • En privat kanal för varje Webreg-grupp (två studenter som jobbar tillsammans). Dessa skapas manuellt av er assistent efter att ni registrerat er grupp i Webreg. Namnet beror av er schemagrupp och er webreggrupp, t.ex. "A101" för webreggrupp 01 i schemagruppen A1. Vi uppmuntrar att ni använder kanalen för att samarbeta i videosamtal under hela labpasset.
  • En öppen kanal "!Handuppräckning" för din grupp som fungerar som "hjälplista". Din assistent skapar ett inlägg i början av varje labpass. När ni behöver hjälp så svarar ni på assistentens inlägg för labpasset i !Handuppräckning. Tagga er assistent, skriv namnet på er kanal, och en mycket kort sammanfattning av er fråga. Er assistenten kommer att ansluta till ert pågående samtal i er kanal så snart som möjligt. Till exempel skriv @Axel Frosthagen A2-14 felmeddelande "undefined reference" i "!Handuppräckning-A2" eller @Eric Ekström B1-07 redovisa lab 1 klockslag "!Handuppräckning-B1".

    Det är viktigt att ni är redo för assistenten och har skärmdelning samt mikrofoner igång när ni är i er privata kanal. Detta för att vi ska spara så mycket tid som möjligt. Dessutom kommer ni då enkelt kunna samarbeta via Teams medan ni väntar på hjälp.

    Tänk också på att inte svara/ändra på ert inlägg i !Handuppräckning. Om ni svarar flyttas er post automatiskt i kön och ni förlorar er köplats. (Det är en inbyggd "feature" i Teams och inget vi kan åtgärda). Det betyder att ni få vänta längre eller assistenten i värsta fall missar er hjälpbegäran.

  • Kanalen General. Här kommer assistenten göra utskick till hela gruppen samt hålla eventuella gemensamma genomgångar, så se till att vara uppmärksamma på om något skrivs där så att ni kan lyssna på de gemensamma genomgångarna.

Om ni har några funderingar kring detta kan ni mejla någon av oss som jobbar i kursen!

Tider för handledning

Handledning av laborationer och lektioner kommer att ske enligt schemat i TimeEdit, men på distans via Teams istället för i datorsal. Där datorsalar är bokade kan ni använda dessa salar till att ansluta via rdp. Se Se sidorna för fjärrinloggning för mer information. Utanför schemalagda pass kan ni kontakta oss genom att skriva er fråga i kanalen "!Frågor och svar (Forum)". Ni hittar den i Teamet "TDIU20 - VT22: A & D" som alla kursdeltagare har tillgång till. Vi svarar efter bästa förmåga eller hänvisar frågan till lämplig schemalagd aktivitet. Förvänta er inte omedelbart svar, er assistent har egna kurser när hen inte är schemalagd för TDDC76. Det går även bra att skicka frågor via epost.

Samarbete inom varje grupp

Vår rekomendation är att använda Microsoft Teams som ni har tillgång till via era liu-konton. Ni kan använda det även utanför schemalagda pass. Teams har stöd för videosamtal med flera deltagare, syntax highlightning för kod i chatten och ni kan dela skärm för att underlätta samarbetet. Ni slipper även byta videosamtal för att kontakta assistenten. En guide för MS Teams finns här.

Vi förbjuder dock inte att ni använder andra verktyg för att kommunicera. Många har kanske erfarenhet av Slack eller Discord och det är okej att använda dessa verktyg. Använder ni Visual Studio Code finns tillägget Live share.

Kursens verktyg

OBS Detta gäller egna installationer. Om du använder fjärranslutning (Thinlinc, rdp) finns allt installerat redan.

I kursen kommer vi att använda open source verktyg som finns som standard eller enkelt tillgängliga i Ubuntu eller Debian.

Du behöver se till att ha en C++-kompilator installerad (GCC version 7 eller senare). För projektet krävs även grafikbiblioteket SFML, versionshanteraren git och byggverktyget make. Utöver det rekommenderar vi Valgrind och gdb för felsökning.

Sist men kanske viktigast behöver du ett bra kodredigeringsverktyg. Är du entusiast använder du förmodligen emacs eller vim som brukar finnas som standard i linux. Andra populära redigerare är VSCode och Atom.

Här följer exempel på hur verktygen kan installeras när du har tillgång till en terminal i Ubuntu (vare sig det är din egen Linux-installation, en virtuell maskin eller WSL).

OBS Detta gäller egna installationer. Om du använder fjärranslutning (Thinlinc, rdp) finns allt installerat redan.

g++, valgrind, gdb
$ sudo apt install g++
$ sudo apt install valgrind
$ sudo apt install gdb

SFML, make, git
$ sudo apt install libsfml-dev
$ sudo apt install make
$ sudo apt install git

vim emacs
$ sudo apt install vim
$ sudo apt install emacs

VSCode (valbart)
$ sudo snap install --classic code

Atom (Valbart)
$ wget -qO - https://packagecloud.io/AtomEditor/atom/gpgkey | sudo apt-key add -
$ sudo sh -c 'echo "deb [arch=amd64] https://packagecloud.io/AtomEditor/atom/any/ any main" > /etc/apt/sources.list.d/atom.list'
$ sudo apt update
$ sudo apt install atom

Programmera hemifrån

Det finns ett antal alternativ för hur du kan göra laborationerna på distans. Observera att vår support för olika alternativ är mycket begränsad. Om du inte får ett alternativ att fungera på egen hand, prova ett annat alternativ. Alternativen vi känner till beskrivs nedan:

  1. På ditt system

    Det här alternativet kräver lite mer pyssel och googlande för att få allt att fungera tillfredsställande, men när du väl är igång kan du programmera effektivt direkt på ditt system.

    Linux Kör du redan Linux på din dator (eller vill installera och testa) kan du göra laborationerna där. Se till att installera kursens verktyg.

    MacOS Även MacOS bör fungera utan problem, dock har jag inte möjlighet att testa laborationerna där. Se till att du har kommandot g++ i terminalen (har jag förstått det hela rätt så räcker det att installera XCode, men jag kan ha fel). Du kan även installera Homebrew som är en pakethanterare som förenklar fortsatta installationer. Sedan kan du installera fler paket genom att köra brew install följt av namnet på verktyget du behöver. Det finns en lista på tillgängliga paket. Paket som kan vara av intresse är gcc sfml git make valgrind gdb.
    Vill du köra grafiska fönster över ssh behöver du installera och starta XQuartz innan du öppnar ssh-terminalen och ansluter till ssh.edu.liu.se.

    Windows I Windows 10 kan du installera WSL (Windows Subsystem for Linux) med Ubuntu 18. Då får du tillgång till en terminal men Ubuntu Linux där du kan installera kursens verktyg. Vill du kunna starta grafiska program inifrån din WSL-terminal behöver du först installera och starta VcXsrv. Ett trick för att öppna arbetskatalogen i Windows egna Utforskaren är att skriva "explorer.exe ." i WSL-terminalen. Omvänt kan du hitta din hemkatalog i Windows genom att gå till /mnt/c/Users/<username>.

  2. I en virtuell maskin

    Om du inte kan eller vill köra laborationerna på ditt ordinarie system kan du installera ett Linux-system för laborationerna i en virtuell maskin och laborera därifrån. Även detta kräver en del pyssel för att komma igång, men vi har instruktioner för att komma igång. Att köra i en virtuell maskin kan innebära att programmen kör något långsammare jämfört med om man kör dem utanför den virtuella maskinen men för våra laborationer bör du inte märka någon skillnad. Tyngre program som din webläsare kan du köra utanför den virtuella maskinen.

    För installationsinstruktioner, se följande alternativ (välj ett):

    Öppna sedan en terminal och se till att de verktyg du behöver (se "kursens verktyg" ovan) blir installerade.

  3. Via fjärranslutning (ThinLinc eller rdp)

    OBS Kursen verktyg finns redan installerade när du fjärransluter med Thinlinc eller rdp. Du kan inte installera något själv.

    Kan du inte köra direkt på din dator hemma, eller i en virtuell maskin, så kan du använda ThinLinc för att få tillgång till en miljö lik den som finns i SU-salarna.

    Det här är det absolut enklaste och smidigaste alternativet. Det är lätt att komma igång, och är det något med anslutning eller inloggning som inte fungerar kan du få support från LiU-IT.

    Se instruktioner från LiU-IT för de olika fjärranslutningsalternativen. Tänk på att skärmbilden med dessa alternativ strömmas över nätverket vilket framförallt påverkar grafikprestanda. I Thinlinc delar du även serverns resurser med alla andra som är anslutna. Det är därför bra att köra t.ex. webbläsare, teams och zoom på din lokala maskin. Innan du loggar in på Thinlinc kan du gå in på "Options..." och fliken "Screen" och avmarkera "Full screen mode" om du lättare vill kunna komma åt fönster på din egen dator.

    När salar är bokade går det använda rdp för att ansluta till en maskin i den bokade datorsalen. Du hittar rdp-länkar till datorer i B-huset här.

  4. Via fjärranslutning (Visual Studio Code Remote SSH session)

    Efter inkommet tips visar jag i denna video hur du kan använda Visual Studio Code för att programmera på LiU's ssh-server men ändå få känslan att arbeta lokalt. Ytterligare ett tillägg (extension) till VSCode som kan vara värt att undersöka är Live Share där du kan dela ditt kodfönster med en kollega och ni realtid se vad den andra skriver.


Sidansvarig: Eric Ekström
Senast uppdaterad: 2022-01-25