Till KTH:s startsida Till KTH:s startsida

Laborationer

Kursen har totalt 13 laborationer, varav 7 är obligatoriska, se tabell längst ner på denna sida. CSC:s hederskodex tillämpas i kursen.

Laborationerna kan göras i grupp om högst två personer.

Labbkompendium

Kursens labbkompendium innehåller alla kursens labbar.

Obligatoriska och betygshöjande laborationer

De obligatoriska laborationerna är F1, F2, L1, L2, S1, S2, Inet.  De obligatoriska labbarna kan redovisas på labb-tillfällen utan föranmälan.

De betygshöjande laborationerna är F3, L3, S3, S4, X1, X2.  För de betygshöjande labbarna anmäler man sig till redovisning enligt instruktioner i labb-kompendiet, man kan alltså inte redovisa dessa på samma sätt som de obligatoriska labbarna.

För mer information om obligatoriska och betygshöjande laborationer samt betyg se Examination.

Labb-kvitto och rapportering

Skriv ut labb-kvitto och se till att få dina labb-handledares signaturer på dina godkända laborationer!  Se även till att med jämna mellanrum kontrollera i rapp att alla dina labbar har rapporterats.

Tidsfrister

Bonusdatum

Varje obligatorisk labb har ett bonusdatum (dessa är listade i schemat). Redovisar man labben innan detta datum får man ett bonuspoäng till motsvarande kontrollskrivning (se examinations-sidan för info om hur dessa fungerar). De obligatoriska labbarna kan även redovisas efter respektive bonusdatum (men ger då inget bonuspoäng).

Sista datum för obligatoriska labbar

Under våren: Det kommer under vårterminen finnas kompletteringstillfällen för redovisning av obligatoriska labbar, man behöver ej vänta till labbveckan eller nästa läsår.

Sista tillfälle under läsåret: Man kommer att kunna redovisa de obligatoriska labbarna under CSC:s restlabbsvecka som brukar äga rum i början av juni.  Precis som vid redovisning av obligatoriska labbar under andra tillfällen behövs ingen speciell föranmälan för detta.

Framtida läsår: Redovisning av obligatoriska labbar för komplettering till godkänt kan göras under senare läsår, men det är då den framtida kursomgångens version av labbkursen som gäller.

Sista datum för betygshöjande labbar

Betygshöjande labbar kan bara redovisas under läsåret för den aktuella kursomgången (plussning ett senare år är ej tillåtet). Sista datum för att skicka in lösningar på betygshöjande labbar är söndag 15 maj.  Redovisning kommer att ske i samband med CSC:s labbvecka i början på juni.

Lärare Per Austrin skapade sidan 24 augusti 2015

Per Austrin flyttade sidan från Programmeringsparadigm (DD1361) 24 augusti 2015

Lärare Per Austrin ändrade rättigheterna 27 augusti 2015

Kan därmed läsas av alla och ändras av lärare.
En användare har tagit bort sin kommentar
kommenterade 9 september 2015

Kommer resterande labbar att läggas upp inom snar framtid? 

Lärare kommenterade 14 september 2015

Hej Tim!  Nu är nästa uppsättning labbar (L1-L3) upplagda.

kommenterade 28 september 2015

Kommer inte år L1 i kattis. Finns bara L2 och de andra haskellabbarna.

Lärare kommenterade 28 september 2015

Jakob: du skickar in på samma uppgift som F1, dvs https://kth.kattis.com/problems/kth%3Aprogp%3Awarmup.  Uppgiftslydelsen i Kattis är för F1.  Själva uppgiftstexten för L1 finns bara i labb-kompendiet.

En användare har tagit bort sin kommentar
En användare har tagit bort sin kommentar
kommenterade 6 oktober 2015

Vilken version av SWI-Prolog är det som körs på Kattis? Vill minnas från föreläsningen att det var 6.4.6 men hittar inget info i slides:en. 

kommenterade 12 oktober 2015

Är det bara för mig som sidan med laborationer inte laddar?

Lärare kommenterade 12 oktober 2015

Hej Peter! Inget verkar trasigt för mig, men jag är osäker på exakt vilken sida du menar eftersom du inte angav någon länk.

kommenterade 12 oktober 2015

När kommer resterande laborationer upp?

kommenterade 12 oktober 2015

Länken till labbarna: http://www.csc.kth.se/utbildning/kth/kurser/DD1361/progp15/labbar/progp15-labbar.pdf funkar inte för mig heller.

kommenterade 12 oktober 2015

Högerklicka -> Spara som så fungerar det nog bra.

Lärare kommenterade 12 oktober 2015

Länken till labbkompendiet fungerar för mig, oavsett hur jag försöker hämta det.  När ni säger "inte funkar", kan ni vara mer specifika angående på vilket sätt det inte fungerar? (timeout till servern, access denied, etc)

kommenterade 12 oktober 2015

Att högerklicka och välja "Save link as" på länken som postats här ovan fungerar utan problem för mig i Chrome. Om jag däremot högerklickar och väljer "Open in new tab" så klarar inte Chrome av att öppna filen direkt från den URL:en.

Det kan alltså vara värt att spara filen först som Alexander föreslog ovan. Med filen sparad så är det i alla fall för mig inga problem att sedan öppna den i Acrobat Reader.

kommenterade 13 oktober 2015

Problemet verkar vara att chrome inte klarar att öppna filen. Med andra browsers fugerar det för mig. När vi säger att det inte funkar menar vi att den fastnar när den laddar den.

kommenterade 14 oktober 2015

När jag lämnar in min L2- kod till kattis får jag: "Exited (non-zero exit status)" på testfall 21. Ska jag tolka detta som att mitt program är för långsamt eller vad är det som händer? Vet inte riktigt hur jag ska tackla detta.

Lärare kommenterade 14 oktober 2015

Peter: det första att kolla är vilket resultat din inskickning fick.  I det här fallet gissar jag att det var "Run-Time Error", dvs att den kraschade.

Anledningen till att man får Run-Time Error kan såklart variera, men ett vanligt problem i Prolog är att man anropar något predikat som man inte definierat, eller som man definierat med ett annat antal variabler.

kommenterade 16 oktober 2015

Är det möjligt att lägga upp labb S1? Hittar förra årets på kattis, är det samma i år?

kommenterade 16 oktober 2015

Undrar samma som Alexander. Det skulle vara förträffligt att kunna gå igenom den under tentaveckorna.

Lärare kommenterade 16 oktober 2015

Alexander, Dan: nu är S1 (och flera andra) upplagd!  Det är samma S1 som förra året, så om ni börjat på den är det bara att fortsätta.

kommenterade 19 oktober 2015

Vilken adress har kurs-mailen (för F3 labben)?

kommenterade 20 oktober 2015

I skelett.mzn som man får med sig i L3:an så får vi ett skumt fel.

MiniZinc: evaluation error:
    cannot evaluate expression 'labs'

Verkar vara compute_presentations funktionen som inte går att köra.
För skelettet borde väl gå att köras som det är , bara att det inte ger rätt svar?

kommenterade 21 oktober 2015

www.minizinc.org verkar ha kraschat. Den har i vilket fall inte gått att nå under hela dagen.

Hur är tanken att man ska bekanta sig med språket nu?

kommenterade 21 oktober 2015

Genom någon trevlig arkiveringstjänst, typ https://web.archive.org/web/20150906005307/http://www.minizinc.org/ så går den att nå.

Lärare kommenterade 21 oktober 2015

Artem: se labb-kompendiet.

kommenterade 22 oktober 2015

Vem kontaktar man om man inte fått L1 inrapporterad?

kommenterade 22 oktober 2015

Jag undrar sammas sak som Jonas, är det tänkt att skelettet inte ska vara körbart?

kommenterade 22 oktober 2015

Jag undrar samma sak som Sasha. Dessutom är ju funktionskommentaren helt whack så det blir svårt att veta vad den är tänkt att göra.

kommenterade 24 oktober 2015

Jag hade samma problem med kodskelettet på L3, men det visade sig att det var version 2.0.7 av MiniZinc som strulade. Med 2.0.2 så fungerar det som det ska.

kommenterade 25 oktober 2015

Vem kontaktar man om man inte fått L1 inrapporterad i RAPP?

Lärare kommenterade 26 oktober 2015

Christopher -- man mailar företrädelsevis till kursmailen progp-15@csc.kth.se (men om man råkat maila mig personligen hamnar det också rätt så småningom). Sedan praktiserar man tålamodets ädla konst.  Om man av någon anledning har väldigt bråttom med att få det fixat kan man skicka ett mail och fråga hur det går och om det går att skynda på.  Man bör däremot inte skicka en identisk kopia av det första mailet, det kommer om något snarare ha motsatt effekt än den önskade och är ett slöseri med tid för alla inblandade.

kommenterade 26 oktober 2015

Good point! :) tack så mycket!

kommenterade 29 oktober 2015

I sköldpaddelabben,

Hur ska man veta att programmet (inputten) är slut, så att man kan gå till nästa fas? Det finns inget tecken som markerar detta och jag begriper inte hur man ska lösa detta då alla input varianter i java som jag undersökt är blockerande.

Lärare kommenterade 29 oktober 2015

Jakob: Du läser till end-of-file.  Tutorial 2 i Kattis kan ev. vara till hjälp även om den inte pratar jättemycket om det.  Det smidigaste sättet att testköra lokalt är att spara ned det Leonardo-program man vill testa med i en fil, säg test1.in, och sedan köra med standard input omdirigerat till den filen, vilket i terminalen görs med

java MySolution < test1.in
kommenterade 3 november 2015

I Inet, ska förändring av välkomsttext förändra välkomstexten för de klienter som redan körs, eller räcker det att det är en ny välkomsttext för de klienter som startar efter att den är ändrad?

Lärare kommenterade 3 november 2015

Jakob: Framgår inte detta av punkt 5 under krav på "Systemet"?

kommenterade 3 november 2015

Ja, kanske det... :)

kommenterade 3 november 2015

Är det ok att skicka nummer, ex: saldo, utdrag, etc som en sträng av tecken, istället för att kontvertera dem till ett gäng bytes? ett tecken i java är ju 2 bytes, så "100000" blir då 12 bytes. Detta skulle kunna konverteras till 0010|0111|0001|0000, alltså 4 bytes istället, men det blir ett jävla meck att transformera hit och dit...

Lärare kommenterade 5 november 2015

Jakob: ni har frihet att designa en lösning själva som ni föredrar, inom de ganska löst givna ramarna för labben.

kommenterade 5 november 2015

Jag försöker lösa S2 men får vid uppladdning till Kattis felet: Unknown mainclass "Main.java" som orsakar kompileringsfel där Main.java är min huvudklass. Vad menas med detta?

Lärare kommenterade 6 november 2015

Soroush: Main.java later som namnet pa filen snarare an klassen.  Gissar att din klass heter "Main"?

kommenterade 11 november 2015

Ang. S1. Står i rapp att vi har redovisat den för sent (vi redovisade 9/11). Antar att detta är fel? Vi vill gärna ha bonuspoäng till KSen :)

Lärare kommenterade 11 november 2015

Alexander: fixat!

kommenterade 11 november 2015

Per: Ja, klassen heter Main. Får samma felmeddelande även utan .java förlängningen. 

kommenterade 11 november 2015

Soroush: Du skiver såhär: om din class Main ligger i paketet pack : pack.Main

kommenterade 17 november 2015

Behöver man använda sig utav en databas på Inet labben, eller kan man skapa användarna direkt i java-koden? Behöver ändringarna sparas om servern startas om?

kommenterade 17 november 2015

Finns det en möjlighet att indatan på S3 är tom eller bara består av kommentarer, och i så fall hur är det tänkt att man ska hantera dessa?

kommenterade 17 november 2015

Förlåt jag menade på S2.

Lärare kommenterade 18 november 2015

Jonas W: Ja, ändringar ska sparas om servern startas om eller kraschar under drift.

Lärare kommenterade 18 november 2015

Abdallah: Ja det är möjligt.  I detta fall kommer ju programmet inte rita några linjer alls, utdata ska alltså vara tom.

kommenterade 19 november 2015

På Inet-labben, är tanken att man ska kunna byta språk (flera gånger) under pågående körning i klienten eller ska det vara ett val man gör en gång vid varje inloggning? Om det ska kunna göras under körningen så antar jag att det är tillåtet att använda mer än 10 tecken i meddelandet som beskriver vilka språk som går att välja? Det blir ju en ganska dålig användarupplevelse annars att försöka begripa vilka språk som finns.

kommenterade 19 november 2015

Vilket radnummer ska rapporteras när ett program saknar avslutande citationstecken?

kommenterade 23 november 2015

Någon som har koll på vad filen full av skräp som Kattis testar innehåller eller tror sig veta vad den kan innehålla i S2? Testfall 23.

kommenterade 23 november 2015

I labb X1, när man skriver en lösning i prolog, hur ska kattis veta vilket predikat den ska köra i början? I C och java finns en main metod, men jag är inte säker om det finns något liknande i prolog.

Lärare kommenterade 23 november 2015

Robert: det ska fungera på samma sätt som i Sample Input 8 -- REP är ett kommando som alla andra, och testfall 8 beskriver vad som ska hända om filen tar slut mitt i ett kommando.

Lärare kommenterade 23 november 2015

Thimmy: det är som beskrivningen antyder bokstavligen talat en fil med slumptecken (fast bara skrivbara tecken och whitespace, mer specifikt ASCII 32 till 126, tabbar och ny-rads-tecken).

Lärare kommenterade 23 november 2015

Abdallah: det finns en lång utvikning om Prolog i labblydelsen som borde hjälpa dig att komma igång.

kommenterade 3 december 2015

Hejsan. Vad betyder bonusdatum för Inet labben? Kommer man få bonuspoäng till tentan?

Lärare kommenterade 3 december 2015

Victor: se https://www.kth.se/social/course/DD1361/subgroup/ht-2015-progp15/page/examination-255/

kommenterade 3 december 2015

När kommer det börja dyka upp redovisningstilfällen för L3?

Lärare kommenterade 3 december 2015

Hej!  Jag ska dra iväg ett mail imorgon till alla som väntar på redovisning, mitt mål är att ta det i samband med labbpassen vecka 51.

kommenterade 4 december 2015

Hej Per, hur är det nu, är bonusdatumen gruppspecifika eller har alla deltagare absolut sista bonusdatum den dag den sista gruppen har sin "priodag"? Det har inte varit något problem tidigare men nu ligger Inet-labben på måndag för grupp A och fredag för grupp B och C.

kommenterade 15 december 2015

Hej Per,

Blir det någon S3 eller S4, eller har jag missat något? Jag har ogärna kurser som ligger och släpar in i nästa period.

Tack på förhand!

kommenterade 12 januari 2016

Hej Per

Hann inte riktigt klar med Inet vilka dagar kan man redovisa den under vårterminen

Lärare kommenterade 14 januari 2016

Hej Jonathan, det kommer finnas någon form av redovisningsmöjligheter under våren innan labbveckan, men jag vet inte ännu exakt hur det kommer se ut.  Jag kommer posta info här när jag vet.

kommenterade 7 februari 2016

Hej Per! Finns det någon uppdatering kring redovisningsmöjligheter under våren?

Lärare kommenterade 8 februari 2016

Hej Alexander: inte konkret ännu, men tanken är att det från och med ungefär slutet på Februari ska finnas en återkommande tid varannan eller var tredje vecka då det finns möjlighet att redovisa obligatoriska labbar.

Lärare kommenterade 14 mars 2016

Alexander och Jonathan: nu finns information om redovisningsmöjligheter av obligatoriska labbarna här: https://www.kth.se/social/course/DD1361/subgroup/ht-2015-progp15/page/labbredovisning-varen-2016-2/

kommenterade 8 april 2016

Ang. L3

Jag kan inte köra programmet alls på skolans ubuntu-datorer. Får ett fel jag inte lyckas felsöka

  skelett.mzn:113:
  in call 'forall'
  in array comprehension expression
    with l = 1
  skelett.mzn:114:
  in call 'forall'
  in array comprehension expression
  in array access
  cannot evaluate expression 'X_INTRODUCED_1'


Kör jag lokalt på ubuntu hemma så går det bra. Dock så får jag väldigt olika resultat beroende på vilken solver jag väljer. Med g12fd klarar jag inte mer än ett Medium-testfall. Med Gecode klarar jag labben men får ganska mycket långsammare tider på Easy-fallen.

Har du något krav på vilken solver jag ska använda, eller ska jag välja en och skriva det i rapporten?

kommenterade 9 maj 2016

Alexander, fick du något svar på detta?

Jag undrar samma sak, finns det krav på att använda en specifik solver?

Lärare kommenterade 9 maj 2016

Hej Alexander, Ernst!  Ledsen att jag missat att svara på detta.

Det är i princip OK att använda en annan lösare.  MEN:

1. Ni ska fortfarande använda MiniZinc för att modellera problemet.

2. Er lösning ska gå att köra i CSC:s Ubuntu-miljö.

Speciellt punkt 2 begränsar i praktiken valet av lösare ganska mycket, även om ni i princip antagligen kan installera en lösare som inte redan finns på ert eget konto och referera till denna i instruktionerna.