Kursomgång vt22
Kursen innehåller sex individuella inlämningsuppgifter som lämnas in via KTH git och presenteras vid de obligatoriska övningarna.
Det är tillåtet att missa ett enskilt övningstillfälle om man berättar för sin övningsassistent i förväg och dessutom lämnar in den skriftliga delen av uppgiften i tid.
I slutet av kursen blir det också ett lite större individuellt projekt där du får möjlighet att välja och implementera ett eget mindre programbibliotek.
Hederskodex
Denna hederskodex gäller för de individuella uppgifterna och slutprojektet. I korthet:
- Du får inte kopiera från andras lösningar.
- I inlämningsuppgifterna ska du ärligt redovisa hjälp som erhållits och källor som använts.
- Vid den muntliga examinationen ska du kunna redogöra för hela uppgiften och lösningen.
- Att hjälpa studiekamrater som kört fast i en uppgift är positivt och lärorikt för både den student som får och den som ger hjälp, men man ska inte dela sina lösningar publikt.
Betyg
Kursen examineras med individuella skriftliga inlämningsuppgifter som redovisas muntligt i samband med de obligatoriska övningarna. Övningarna betygssätts med G/VG och slutbetyget beräknas så här:
A | 6 G | 5-6 VG |
B | 6 G | 4 VG |
C | 6 G | 3 VG |
D | 5 G | 2 VG |
E | 5 G | 0-1 VG |
Fx | 4 G | |
F | 0-3 G |
- IND1 2hp är ett graderat betyg baserat på övning 1-6,
- LAB1 4hp är projektet och bedöms med P/F.
Uppgifter vt22
Övning x på kursen ska lämnas in i katalogen kthid-ovnx i organisationen grudat22 på KTH GitHub. Om ni loggar in på KTH GitHub för första gången så kan det ta någon dag innan ni kommer åt er katalog.
Övningsgrupper
- Grupp 1 Stefan Nilsson <snilsson> Enstaka kurs Zoom
- Grupp 2 Cajsa Pierrou <cajsap> Zoom
- Grupp 3 Theo Ingelstam <theoi> Grundläggande
- Grupp 4 Zakaria Sabbagh <zsabbagh> Grundläggande
- Grupp 5 Hovig Manjikian <hoffek>
- Grupp 6 Jesper Amilon <jamilon>
- Grupp 7 Marcus Dicander <dicander>
I grupp 3-4 kommer vi gå igenom alla grundläggande uppgifter extra noggrannt.
Grupperna 1-4 ges på den tidigare tiden i schemat i salsordning och grupp 5-7 på de senare tiden. På den första övningen kommer alltså grupp 1 att vara i sal B22 kl 8, grupp 2 i sal B23 kl 8, ..., grupp 5 i sal B23 kl 13, ...
Om du går i en zoom-grupp så kommer du att få en länk till videomötet med mejl från din övningsassistent.
Labbar och individuell hjälp
Labbarna är till för att ni ska kunna ställa frågor om veckans inlämningsuppgift. Labbarna sker antingen på plats eller via Zoom på de schemalagda tiderna. Vi bestämmer på första föreläsningen. Ställ dig i grudat-kön så får du en inbjudan när det blir din tur.
EECSs allmänhandledare hjälper också till med programmeringsfrågor och andra problem två gånger dagligen varje vardag under terminstid, oftast 11–13 och 17–20.
Föreläsningar
- F1 (Mån 21/3, 15.00) Introduktion. Algorithms: What’s the problem?
- F2 (Ons 23/3, 10.00) Dokumentation och enhetstestning, tidskomplexitet. /ovn0/grudat22/ * Time complexity: Count your steps [VIDEO] * Överkurs: API design
- F3 (Fre 25/3, 13.00) Ordo-notation. Big O notation [VIDEO] * Time complexity of array operations [VIDEO]
- F4 (Tis 29/3, 13.00) Binära sökträd och hashtabeller. Binary search trees [VIDEO] * Treaps [VIDEO] * Hash tables [VIDEO]
- F5 (Tis 5/4, 15.00) Binärsökning och korrekthet. Loop invariants [VIDEO] * Induction [VIDEO]
- F6 (Tis 12/4, 10.00) Sortering och tidskomplexitet. Insertion sort vs. Selection sort [VIDEO] * Quicksort * Time complexity of recursive functions [VIDEO] (Överkurs: The fastest sorting algorithm?)
- F7 (Tis 25/4, 10.00) Grafer. Your basic graph [VIDEO]
- F8 (Tis 3/5, 08.00) Dynamisk programmering och reguljära uttryck. Dynamic programming with memoization [VIDEO] * Regular expressions [VIDEO]
- F9 (Tis 10/5, 10.00) Programvaruteknik och API-design. Tips inför projektet [VIDEO] * 12 steps to better code * API design [VIDEO] * Why Go?
- F10 (Tis 17/5, 10.00) UTGÅR
Det finns texter och korta filmer som du ska titta på inför varje föreläsning. Skriv gärna ner frågor som du vill ta upp på föreläsningen. Föreläsningarna kommer att hållas på plats.
Kurslitteratur
Det finns ingen obligatorisk kursbok på papper. Du hittar all kurslitteratur via länkarna i föregående avsnitt. Du kan också ha nytta av de här sajterna och böckerna om du vill lära dig mer om algoritmer och programvaruteknik.
Kursnämnd
Agaton Domberg <domberg>
Lärare
- Stefan NilssonExaminator, Kursansvarig