Examinationsdetaljer och betygskriterier

Rekommenderad arbetsinsats i kursen

 

1. Det enskillt mest effektiva sättet att klara kursen är att se sina universitetsstudier som ett heltidsjobb och att sprida ut inlärningen till litegrann varje dag.
2. Kom till de flesta föreläsningar och övningar mätt, utsövd och väl förberedd.
3. De tre L:en är Läsa, Laborera och Logga. I mer detalj nedan.

Läsa, Laborera och Logga

Läs aktivt. Efter varje kapitel, slå ihop boken och försök sammanfatta vad det handlade om. Använd sedan boken som facit för din sammanfattning.
Om du har valt en bok utan övningsuppgifter så kan du behöva göra egna uppgifter, förslagsvis är dessa kopplade till de problem som du vill lösa. Du kan också fylla ut med enkla uppgifter från Kattis Links to an external site..
Det sista L:et är att logga dina insatser. Skapa ett dokument, förslagsvis på google docs eller liknande och ha för vana att i slutet av varje pluggdag skriva några stödord eller frågor som dykt upp under dagens studier. Skriv också en timestamp, till exempel 2021-01-15. Gå sedan tillbaka en dag, en vecka, en månad och ett år för att se vad du gjorde den dagen. Du kan läsa mer om detta på KTH:s gruppwebb för studieteknik.

 

Tanken bakom betygssättningen

Målet med vår betygssättning är att betygssystemet ska vara enkelt att förstå, det ska belöna olika former av fördjupning inom ämnet och det ska vara enkelt för lärare och assistenter att bedöma. En student som har fått ett E i kursen har vidgat sina vyer genom att bemästra ett antal paradigmer och problemområden.

Ladokmoment

Kursen har två obligatoriska moment i Ladok.

  • LAB1 - Laborationer, 3,5 hp, betygsskala: A, B, C, D, E, FX, F
  • TEN1 - Tentamen, 2,5 hp, betygsskala: P, F

Nedan följer med detaljerad information om dessa moment.

Laborationer

Fem obligatoriska datorlabbar ingår i kursen. Dessa heter F1, F2, INET, S1 och S2. Dessa behöver utföras för att få godkänt i kursen.

Utöver dessa finns det fyra betygshöjande: F3, X1, X2 och S3. Varje labb ni löser innan deadline (se nedan) höjer ert betyg med ett betygssteg.

Det är tillåtet att labba ensam eller två och två. Om ni labbar i par så behöver båda i paret kunna redogöra för all kod annars får bara den ena godkänt. Om ni under labbens gång upptäcker att det är ett såpass stort kunskapsgap mellan er båda att den ena gör mycket mer än den andra, bryt upp paret. Ni kommer ändå inte att få godkänt båda två.

För högre betyg än E finns bara en deadline:  (datum kommer när bemanningen är klar).

Det rekommenderas som alltid att sprida ut inlärningen eftersom det inte är mänskligt möjligt att genomföra extralabbarna på alltför kort tid.

Betyg Vilka laborationer krävs
E Alla obligatoriska
D 1 betygshöjande laboration
C 2 betygshöjande laborationer
B 3 betygshöjande laborationer
A 4 (samtliga) betygshöjande laborationer.

 

Det finns schemalagda labbtillfällen under hela kursen. Det kommer att finnas handledare tillgängliga på dessa labbpass. Börja att göra labbarna i god tid och fråga handledarna om du får problem. Du kan i princip redovisa alla labbarna vid alla labbtillfällen, men under det sista labbtillfället för varje labb så prioriteras redovisningar av den labben.

Varje obligatorisk labb har även ett bonusdatum. Varje obligatorisk labb som blir färdig före sitt bonusdatum sänker kraven på sin efterföljande kontrollskrivning (se nedan), men inte på tentan.

Kontrollskrivningar

Kursen har 2 kontrollskrivningar (KS:ar). En i påsk på funktionell programmering och programmeringsparadigm samt en i maj i syntaxanalys. Dessa KS:ar kan tas istället för motsvarande del på tentan, så de studenter som klarar alla delmoment på KS:arna behöver inte skriva tentan alls.

På kontrollskrivningarna kommer ett antal teorifrågor inom ämnet. För att få godkänt behöver du svara rätt på samtliga frågor utom en där du tillåts ha ett halvt grovt fel, dvs ett fel som hade gett poängavdrag. Om du har klarat några laborationer innan bonusdatum så får du för varje uppnått bonusdatum utrymme för att göra ytterligare ett halvt grovt fel på nästa kontrollskrivning.

En ändring som har gjorts i kontrollskrivningarna från tidigare år är att det inte kommer att vara någon programmering på KS:en utan fokus kommer att ligga på teorifrågor. Ett bra sätt att öva på dessa teorifrågor är dock att programmera.

 

Tentamen

Tentamen består av kontrollskrivningarna och rättas på samma sätt bortsett från att bonuspoängen från F1, F2, S1 och S2 inte gäller längre. Däremot gäller bonuspoängen från Inet, så om den labben var klar på bonusdatumet (se detaljplan) så får du utrymme för ett halvgrovt fel till.

Arbetssituationer

Examinationsmomenten är tänkta att motsvara arbetssituationer. Funktionell programmering.

  • Facebook har använt Haskell för att skriva ett DSL för att filtrera spam.
  • Googles map-reduce använder funktionella principer för att snabbt parallellisera enorma beräkningar och sökningar.
  • C++, C#, Java, Javascript och Python har alla implementerat språkfunktioner som motsvarar de funktionella för att göra vissa problem enklare och effektivare att angripa.

Programmeringsparadigmer lär dig konsultens arbete.

  • Du får snabbt sätta dig in i ett nytt programmeringsspråk och lösa problem i det för att sedan kasta dig in i nästa språk.
  • Precis som funktionell programmering så har varje paradigm riktiga problem som de gör enklare. Prolog används till exempel för att dimensionera flygplan.

Inet lär dig en av de vanligaste programmeringsuppgifterna.

  • Att skriva servrar och klienter samt att dokumentera dessa är en mycket vanlig arbetsuppgift i näringslivet.

Syntaxanalys är vad programmeringsspråken gör hela tiden.

  • Vissa programmerare designar nya programspråk eller åtminstone domänspecifika språk. Dessa behöver parsers och kompilatorer och det behöver du.
  • Även om du inte gör egna programspråk så behöver du förhålla dig till begränsningarna som kontextfria grammatiker och liknande lägger på språk och det får du lära dig genom labbarna och tentan i kursen.
  • Verktygen (regexpar och liknande) är användbara till en hel del annat, till exempel att läsa olika former av indata som formulär, mätserier eller loggar.

Gamla extentor och kontrollskrivningar finns på Kth Social.