TDDD86 Datastrukturer, algoritmer och programmeringsparadigm
Laborationer
Laborationer
Laborationerna ska gennomföras i grupper av max två personer. De bör genomföras i par. Det är inte tillåtet att ge eller få hjälp i en laboration (om det inte tillåts explicit i kursen, e.g., att studenter inom samma par ska så klart samarbeta, eller att man ska använda STL biblioteket). Se även IDAs policy och regler för datorlaborationer. Fusk är ett försök att vilseleda. E.g., att lämna in kod och försöka att få det att se ut som att man har skrivit den själv när man har tagit den från en annan person, en hemsida eller ett AI-tjänst. Det är inte tillåtet att göra egna lösningar tillgängliga för andra (e.g., offentliga via GitHub), att kopiera kod från andra studenter/grupper/personer, från nätet (e.g., Stackoverflow eller andra hemsidor) eller verktyg (E.g., ChatGPT eller GitHubs copilot). Detta gäller även om ändringar gjordes.Laborationsuppgifter
Laborationsuppgifterna är åtta till antalet och finns beskrivna nedan.
Anmälan via Webreg:
- Obligatoriska labbar (LAB1): Laborationerna bör genomföras i par. Anmälan via denna länk. Deadline: 5:a september.
- Extra uppgifter och labbar: Samma par som (LAB1) eller individuellt. Anmälan via denna länk. Deadline: senaste 1:a december, men innan demonstrationen.
- Bonusproblem. Individuella. Anmälan via denna länk. Deadline 1:a january.
Allmänna anvisningar
Labbarna är avsedda att genomföras i IDE:n Qt Creator men det går bra att använda en text editor (vim/emacs/annat) i kombination med qmake (mer information).
Samtliga i labbgruppen skall bidra till lösningen av samtliga laborationer och förväntas också kunna motivera och förklara programkoden. För att bli godkänd krävs inte bara ett program som förefaller fungera på några testexempel utan koden skall vara rimligt effektiv och läsbar. Särskilt vill vi att ni beaktar vår stilguide.
Redovisning av labbar
Redovisning av labbar sker i två steg:
- (i) Demonstration av labben för assistent under ett labbtillfälle.
- (ii) Inlämning av kod till assistent enligt nedan.
Laborationer lämnas in via LiUs Gitlab (inte IDAs Gitlab!):
- Använd era LiU ID.
- Varje laborationspar ska skapa ett projekt som heter "TDDD86-HT23". Varje labbpartner ska vara minst en developer i projektet.
- Glöm inte att lägga till alla åtta assistenter och kursledaren som "Reporter"-medlemmar i projektet. Om en assistent har flera LiU-ID, välj anställdkontot (det med två siffror i slutet). Så t ex andma54, inte något annat.
- Skapa en folder för varje lab ni jobbar med:
e.g.,
TDDD86-HT23/lab1
,TDDD86-HT23/lab2
ellerTDDD86-HT23/El1
. - När ni får en ok från assistenten efter en demonstration ska ni lämna in koden genom att:
- göra en commit med
git commit -m "TDDD86 Lab [nummer] redovisning"
och enpush
- meddela assistenten med ett mail.
- göra en commit med
- När laborationen är rättad får ni ett e-postmeddelande till era studentkonton.
- Vid komplettering använd Gitlab och gör en ny commit och push.
Det är viktigt att projektet är komplett:
- se till att alla filer som utgör en del av laborationen är med i projektet
- använd exakt de filnamn som är angivna i laborationsuppgiften.
Deadline
Laborationerna 1-4 ska vara redovisade och koden inlämnat innan slutet av första perioden (dvs. senaste vid slutet av vecka 41). Om resultatet är godkänt får ni 2 bonus poäng för att få högre betyg på LAB1 (Betyg LAB1 i ladok). Resten av laborationerna skall vara redovisade senast den 12e januari. Observera att detta är en strikt deadline och att det finns möjlighet att alla studenter som vill det hinner inte demonstrera då. Därför rekommenderar vi starkt att samtliga labbar ska demonstreras innan Jul (som brukar vara vår deadline). Dessutom ska ni har lämnat in koden via Gitlab (dvs, med encommit
och en push
) senaste detta datumet.
Det brukar bli långa köer under vecka 41 eller vid slutet av
kursen. Observera att man kan demonstrera bara under de bokade
labbtillfällen. Väntar inte med att bli klar och med att demonstrera
dina labbar!
Se även IDAs policy
och regler för datorlaborationer.
Betyg - LAB1
Godkänt på de åtta laborationsuppgifterna är ett krav för betyg 3 på momentet LAB1. För att få högre betyg kan man samla poäng genom att bli klar med laborationer 1-4 ska vara redovisade och koden inlämnat innan slutet av första perioden (dvs. senaste vid slutet av vecka 41) (och intePoäng | Betyg på LAB1 |
---|---|
0 till och med 7 | 3 |
8 till och med 15 | 4 |
16 och över | 5 |
Extra laborationsuppgifter
Ett sätt att samla poäng för att få högre betyg på kursen labbmoment är att göra extra laborationsuppgifter. De extra labbuppgifterna finns dels som åtta möjliga utökningar, E1-E6 samt E8, av de befintliga labbarna och dels som två helt fristående extra labbar, EL1 (som också ha en utäkning E7) och EL2. Dessa extra labbuppgifter bör genomföras i par och redovisning går till på samma sätt som för de ordinarie labbuppgifterna. Om du vill samla poäng genom att göra extra laborationsuppgifter behöver du vara anmäld till ett särskilt moment i webreg för att vi ska kunna bokföra dina resultat. Eftersom det kan hända att två personer i samma labbgrupp inte har samma ambitionsnivå är anmälan i webreg individuell, men vi hoppas förstås att ni ska arbeta tillsammans med er laborationspartner.
Deadline för de extra labbupgifterna är samma som för de ordinarie labbarna, förutom för uppgiften E5 där poängtilldelningen avgörs genom en tävling. För att vi ska hinna förbereda tävlingen är sista inlämningsdatum för E5 satt till 1 December 2023 kl 23:59.
- E1 (@labb2) ger 1 poäng
- E2 (@labb2) ger 3 poäng
- E3 (@labb3) ger 3 poäng
- E4 (@labb3) ger 3 poäng
- E5 (@labb3) ger 4 poäng 1:an, 3 till 2:a och 2 till 3:a.
- E6 (@labb4) ger 2 poäng
- EL1 ger 6 poäng
- E7 (@EL1) ger 3 poäng
- E8 (@labb7) ger 2 poäng
- EL2 ger 8 poäng
Bonusproblem
Bonusproblemen i kursen är ett frivilligt moment som innefattar lösandet av skojiga, intressanta och utmanande problem relaterade till innehållet på föreläsningarna om datastrukturer och algoritmer. Syftet med bonusproblemen är att öka förståelsen för kursens innehåll genom relevanta programmeringsuppgifter. Det kommer dels finnas uppgifter relaterade till föreläsningarna och dels till kursen i stort. De senare är mer av fördjupningskaraktär. Genom att lösa uppgifterna kan man samla poäng för att få högre betyg på labbmomentet i kursen.
Uppgifterna i årets bonusproblemsomgång kommer att finnas i onlinedomaren Kattis. Om en student löser tillräckligt många bonusproblem innan utgången av 10 Januari 2023 ger det poäng enligt nedan. För att tillgodogöra sig poängen måste studenten vara registrerad på kursen i Kattis, annars ser inte kursledningen resultaten och kan inte heller göra någon plagieringskontroll av inskickade uppgifter. Registrering görs genom att klicka på registreringslänken på kursens Kattis-sida. (Man behöver vara inloggad för att registreringslänken ska synas.) Dessutom behöver studenten vara anmäld till bonusproblemsomgången. Bokföring av resultaten sköts via ett särskilt moment i webreg, så om du tänkt samla poäng genom att lösa bonusproblem behöver du anmäla dig i webreg också. Maila din assistent en länk till inlämningen när du har löst en uppgift.
- 0-1 lösta uppgifter ger 0 poäng.
- 2-3 lösta uppgifter ger 1 poäng.
- 4-7 lösta uppgifter ger 2 poäng.
- 8-11 lösta uppgiter ger 3 poäng.
- 12-14 lösta uppgifter ger 4 poäng.
- 15 lösta uppgifter ger 5 poäng.
Bonusproblemen är individuella uppgifter. Som vanligt går
det bra att föra informella diskussioner kring uppgifter i kursen, men
i det här fallet måste varje student själv komma på och skriva sin
lösning till problemen. Redovisning sker, efter att uppgiften
fått "Accepted" i Kattis, genom att skicka ett mejl till respektive
assistent med en länk till det submission-id i Kattis som blivit
godkänt. Mejlet måste skickas från
studentens @student.liu.se
-adress.
Bra KATTIS-länkar
- Kursens sida på Kattis.
- Komma igång med KATTIS.
- Om du behöver skicka in samma labb många gånger till KATTIS kan det vara skönt att använda sig av submit-skriptet istället för webbgränssnittet.
Laborationsuppgifter
Labb 1 |
Labb 2 |
Labb 3Uppgiftsbeskrivning |
Labb 4
|
Labb 5 |
Labb 6Uppgiftsbeskrivning
|
Labb 7 |
Labb 8 |
Extra laborationsuppgifter
Extra labb 1 |
Extra labb 2 |
Sidansvarig: Ahmed Rezine
Senast uppdaterad: 2023-11-21