Detaljschema
Kursens pedagogiska upplägg
- Studera på det sätt som är effektivast för dig! Allt föreläsnings- och övningsmaterial finns tillgängligt i förväg.
- Koncentrerade entimmesföreläsningar med läsanvisningar. Kom förberedd och var vaken för bästa resultat! I avsnittet dynamisk programmering används omvänd undervisning (flipped classroom).
- Övningsuppgifter med fullständiga lösningar. Övningsgrupper med svårighetsgradering. Ett urval av uppgifterna löses på övningarna, resten lämnas för egen övning.
- Momenten i kursen tränar verkliga arbetssituationer för bättre autenticitet.
- Aktiverande färgfrågor på föreläsningarna och kontinuerlig examination med labbteoriuppgiftsredovisning inför varje datorlabb gör att du automatiskt hänger med i kursen.
- Undervisning byggd på pedagogisk forskning - en hel doktorsavhandling om ADK las fram 2014!
- Målrelaterade betygskriterier; välj själv betyg!
- Gott om tid för labbar och mästarprov, ingen stressad tentasituation.
Kursen består av 33 föreläsningar och 14 övningar. Alla föreläsningar efter första veckans tre föreläsningar är egentligen entimmesföreläsningar (men av schematekniska skäl har vid ett tillfälle två entimmesföreläsningar kommit att hamna direkt efter varandra). Viggo Kann [VK] och Stefan Nilsson [SN] delar på föreläsningarna. Följande tabell visar vad som kommer att behandlas under föreläsningarna och övningarna. För varje föreläsning anges vilket material i kurslitteraturen som behandlas. Du bör ha skummat det innan du kommer till föreläsningen för att ha riktig glädje av föreläsningen. Föreläsning 9-11 om dynamisk programmering har omvänd undervisning, så videor ska ses och uppgifter ska göras före varje föreläsning
Undervisning, redovisningar och läsanvisningar
- KT=Kleinberg-Tardos, oavsett om det är KTorig eller KTnie
- KTorig=Kleinberg-Tardos International Edition (2006) eller motsvarande amerikanska utgåva
- KTnie=Kleinberg-Tardos New International Edition (2014), när denna skiljer sig från den tidigare utgåvan (kapitel 5 Divide and Conquer kommer före kapitel 4 Greedy Algorithms och kapitel 13 Randomized Algorithms kommer före kapitel 12 Local Search)
- Sup=supplementet Algorithms and Complexity
Period 1
- F1 (timme 1
Download timme 1, timme 2) 27 augusti (2 timmar)
[SN+VK] Introduktion till kursen. Repetition av algoritmanalys, beräkningsmodeller, bitkostnad, enhetskostnad. (KT: 29-56)
Mer material: tidskomplexitet Links to an external site., bitkostnad Links to an external site., ordonotation Links to an external site., mästarsatsen. Links to an external site.
-
F2 28 augusti (2 timmar)
[SN] Repetition av sortering (animering 1 Links to an external site., animering 2 Links to an external site.). (KTorig: 209-221/KTnie: 115-127)
Effektiv kodning och testning. Labbpartnermatchning i pausen.
Mer material: insättningssortering Links to an external site., quicksort Links to an external site.. Se även Diverse länkar.
-
F3 29 augusti (2 timmar)
[VK] Datastrukturer: repetition Links to an external site., hashning Links to an external site., praktiska datastrukturer, trie Links to an external site. (animering Links to an external site.) (KT: 57-65) Latmanshashning, skipplistor Links to an external site.. (Sup: 77-83 Download Sup: 77-83) Labbpartnermatchning i pausen.
-
Ö1
Download Ö1 30 augusti
Algoritmanalys.
-
F4 2 september
[SN] Grafer: djupetförstsökning Links to an external site., breddenförstsökning Links to an external site.. (KT: 73-107)
Mer material: grafteori och grafsökning Links to an external site., grafpaket i Go Links to an external site.
-
F5 3 september
[VK] Datastrukturer: bloomfilter. Tillämpning: rättstavning.
Mer material: bloomfilter Links to an external site.
-
F6 4 september
[SN] Korrekthetsbevis.
Mer material: invarianter Links to an external site., induktion Links to an external site..
-
Ö2
Download Ö2 4 september
Datastrukturer och grafer. Teoriredovisning för labb 1.
-
F7 10 september
[SN] Algoritmkonstruktion: giriga algoritmer, totalsökning. (Sup: 31-48, KTorig: 115-136, 183-188/KTnie: 157-179, 225-230)
-
F8 11 september
[SN] Algoritmkonstruktion: dekomposition. (KTorig: 221-234, 242-246/KTnie: 127-140, 148-152) -
F9 12 september (OBS! förberedelse krävs)
[SN] Algoritmkonstruktion: dynamisk programmering, del 1. (KT: 251-260)
Visualiseringar: Fibonaccitalen Links to an external site..
Utdelade uppgifter med lösningar Download Utdelade uppgifter med lösningar -
Ö3
Download Ö3 12 september
Dekomposition och dynamisk programmering. - Labb 1 13 september
Konkordans, redovisning. - F10 16 september (OBS! förberedelse krävs)
[VK] Algoritmkonstruktion: dynamisk programmering, del 2. (KT: 261-290)
Utdelade uppgifter med lösningar Download Utdelade uppgifter med lösningar - F11 18 september (OBS! förberedelse krävs)
[VK] Dynamisk programmering, del 3: konstruktion av lösning och motivering av korrekthet. (KT: 290-301, 307-311)
Utdelade uppgifter med lösningar Download Utdelade uppgifter med lösningar -
F12 19 september
[SN] Grafer: minimala spännande träd (Prim Links to an external site. och Kruskal Links to an external site.), kortaste stigar (Dijkstra Links to an external site.). (KTorig: 137-157/KTnie: 179-199) -
Ö4
Download Ö4 19 september
Dynamisk programmering. Teoriredovisning för labb 2. -
F13 24 september
[VK] Grafer: maximala flöden Links to an external site.. Lecture notes Links to an external site. (Princeton) (KT: 337-357, 367-373)
- MAS1-övning 24 september
Redovisning av övningsmästarprov 1 som förberedelse till mästarprov 1. -
F14 25 september
[VK] Undre gränser. (Sup: 17-29)
Genomgång av lydelsen till uppgift 1 och 3 på mästarprov 1.
-
F15 26 september
[SN] Algoritmkonstruktion: geometriska algoritmer, geomalgorithms.com Links to an external site., Grahamscan: beskrivning Links to an external site., animering Links to an external site..
Genomgång av lydelsen till uppgift 2 på mästarprov 1.
-
Ö5
Download Ö5 26 september
Grafalgoritmer och undre gränser.
- Labb 2 27 september
Rättstavning, redovisning.
-
F16 30 september kl 10
[SN] Algoritmkonstruktion: sortering i linjär tid. Räknesortering och radixsortering Links to an external site.. (Sup: 1-6)
- F17 30 september kl 11
[SN] Algoritmkonstruktion: textsökning. (Sup: 7-16, Pythonkramaren II: 46-48 Download Pythonkramaren II: 46-48)
-
F18 1 oktober
[SN] Algoritmkonstruktion: polynomberäkningar och FFT. (KTorig: 234-242/KTnie: 140-148)
-
Ö6
Download Ö6 2 oktober
Algoritmkonstruktion. Teoriredovisning för labb 3.
Sammanfattning av alla algoritmer hittills i kursen.
-
F19 7 oktober
[SN] Probabilistiska algoritmer. (KTorig: 707-734, 769-776/KTnie: 661-688, 723-730)
Lasvegas- och Montecarloalgoritmer Links to an external site.
-
F20 8 oktober
[SN] Reduktioner. (KT: 451-459)
-
Ö7
Download Ö7 9 oktober
Probabilistiska algoritmer. Reduktioner. -
Mästarprov 1, senast onsdag 9 oktober klockan 19!
Uppgiftslydelsen läggs upp i Canvas 25 september.Algoritmer. Muntliga redovisningar sker 14-18 oktober.
-
F21 10 oktober
[SN] Introduktion till komplexitet, motivering. (KT: 463-466 hela sidan)
Period 2
-
F22 28 oktober
[VK] Formella definitioner, turingmaskiner Links to an external site.. (PDF att läsa)
-
F23 30 oktober
[SN] Oavgörbarhet. (Sup: 49-73)
-
Ö8
Download Ö8 31 oktober
Genomgång av lösning till mästarprov 1. Oavgörbarhet.
- Labb 3 1 november
Flöden och matchningar, redovisning.
-
F24 4 november
[VK] Cooks sats. (PDF att läsa) -
F25 6 november kl 14
[VK] NP-fullständighetsbevis. (KT: 466-495)
-
F26 6 november kl 15
[VK] NP-reduktionsvisualisering med Alvie Links to an external site..I Alvie finns reduktioner för delmängdssumma (Subset Sum) och hörntäckning (Vertex Cover) visualiserade och bevisade.
Alvie är utvecklat av Pierluigi Crescenzi. Om du inte vill ladda ner Alvie själv kan du titta på reduktionsvisualiseringarna som filmer:
Visualisering av reduktionen av 3-CNFSAT till delmängdssumma som Flash och Quicktime.
Visualisering av reduktionen av 3-CNFSAT till hörntäckning som Flash och Quicktime.
-
Ö9
Download Ö9 7 november
NP-fullständighetsbevis. Teoriredovisning för labb 4.
-
F27
Download F27 13 november kl 15
[SN] NP-fullständighetsreduktioner. (KT: 459-463)
-
F28
Download F28 13 november kl 16
[SN] Mer NP-fullständighetsreduktioner. (KT: 497-505) -
Ö10
Download Ö10 14 november
NP-fullständiga problem.
-
F29 18 november
[SN] Heuristiska algoritmer Links to an external site.. Simulated annealing Links to an external site.. (KTorig: 661-670/KTnie: 749-758) -
F30 19 november
[VK] Approximationsalgoritmer. (KT: 599-630) - MAS2-övning 21 november
Redovisning av övningsmästarprov 2 och genomgång av fler exempel på NP-fullständighetsproblem som förberedelse till mästarprov 2.
-
F31 25 november
[VK] Mer approximationsalgoritmer. (webbsida Links to an external site. om Christofides algoritm, Viggos lista med approximationsresultat för NP-svåra optimeringsproblem)
Genomgång av lydelsen till uppgift 1 och 3 på mästarprov 2. -
F32 26 november
[VK] Komplexitetsklasser. (KT: 495-497, 531-547)
Genomgång av lydelsen till uppgift 2 på mästarprov 2.
-
Ö11
Download Ö11 28 november
Approximationsalgoritmer. Teoriredovisning för labb 5.
-
Mästarprov 2, senast 5 december klockan 13!
Uppgiftslydelsen läggs upp i Canvas 21 november.Komplexitet. Muntliga redovisningar sker 9-13 december.
-
F33 3 december
[SN+VK] Links to an external site.Repetition. Kursens betygssystem.
-
Ö12
Download Ö12 4 december
Komplexitetsklasser och repetition. - Labb 5 6 december
Heuristik för rollbesättningsproblemet, redovisning.
- Extra labbredovisningstillfälle 11 december för alla labbar, inklusive högrebetygslabben. Bokningslistor.
- Teoritenta 17 december klockan 9-12 i sal F1 och F2.
- Ommästarprov för mästarprov 1 och mästarprov 2 offentliggörs 17 december och redovisas skriftligt 4 januari och muntligt veckan 7-10 januari 2020.
- Frivillig munta för högre mästarprovsbetyg, 9-10 januari 2020. Anmälan görs under perioden 31 december 2019 till 6 januari 2020.
- Redovisning av högrebetygslabben Heuristik för rollbesättningsproblemet (inga andra labbar kan redovisas), 14 januari 2020 kl 9-12.
Efter period 2 är kursen slut. Den som har labbar kvar att redovisa kan göra det antingen i labbveckan i juni eller på labbpassen i systerkursen DD2352 Algoritmer och komplexitet. Säg till den du redovisar för att du ska ha labben rapporterad på adk19.
Den som har mästarprov kvar kan göra dom i en senare kursomgång av antingen ADK (som går varje hösttermin) eller systerkursen DD2352 (som går varje vårtermin; du ska inte registrera dig på DD2352; du får leta upp kursrummet i Canvas och läsa informationen om mästarproven där). Kursledare för DD2352 är Per Austrin. Säg till den du redovisar för att du ska ha mästarprovet rapporterat på adk19.
Den som har tentan kvar kan gå upp på omtentan i april 2020 eller nästa ordinarietenta i december 2020.