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) 28 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 29 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.Mer material: insättningssortering Links to an external site., quicksort Links to an external site.. Se även Diverse länkar.
-
F3 30 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)
-
Ö1
Download Ö1 31 augusti
Algoritmanalys.
-
F4 3 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 4 september
[VK] Datastrukturer: bloomfilter. Tillämpning: rättstavning.
Mer material: bloomfilter Links to an external site.
-
F6 6 september
[SN] Korrekthetsbevis.
Mer material: invarianter Links to an external site., induktion Links to an external site..
-
Ö2
Download Ö2 6 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 12 september
[SN] Algoritmkonstruktion: dekomposition. (KTorig: 221-234, 242-246/KTnie: 127-140, 148-152) -
F9 13 september (OBS! förberedelse krävs)
[VK] 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 13 september
Dekomposition och dynamisk programmering. - Labb 1 14 september
Konkordans, redovisning. - F10 18 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 19 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 20 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 20 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)
-
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..
-
Ö5
Download Ö5 27 september
Grafalgoritmer och undre gränser.
- Labb 2 28 september
Rättstavning, redovisning.
-
F16 1 oktober kl 13
[SN] Algoritmkonstruktion: sortering i linjär tid. Räknesortering och radixsortering Links to an external site.. (Sup: 1-6)
- F17 1 oktober kl 14
[SN] Algoritmkonstruktion: textsökning. (Sup: 7-16, Pythonkramaren II: 46-48)
-
F18 2 oktober
[SN] Algoritmkonstruktion: polynomberäkningar och FFT. (KTorig: 234-242/KTnie: 140-148)
-
Ö6
Download Ö6 4 oktober
Algoritmkonstruktion. Teoriredovisning för labb 3.
Sammanfattning av alla algoritmer hittills i kursen.
-
F19 8 oktober kl 15
[SN] Probabilistiska algoritmer. (KTorig: 707-734, 769-776/KTnie: 661-688, 723-730)
Lasvegas- och Montecarloalgoritmer Links to an external site.
-
F20 8 oktober kl 16
[SN] Reduktioner. (KT: 451-459)
-
Ö7
Download Ö7 9 oktober
Probabilistiska algoritmer. Reduktioner. -
Mästarprov 1, senast onsdag 10 oktober klockan 13.00!
Uppgiftslydelsen läggs upp i Canvas 26 september.Algoritmer. Muntliga redovisningar sker 15-19 oktober.
-
F21 11 oktober
[SN] Introduktion till komplexitet, motivering. (KT: 463-466 hela sidan)
Period 2
-
F22 30 oktober
[VK] Formella definitioner, turingmaskiner Links to an external site.. (PDF att läsa)
-
F23 1 november
[SN] Oavgörbarhet. (Sup: 49-73)
-
Ö8
Download Ö8 1 november
Genomgång av lösning till mästarprov 1 Download lösning till mästarprov 1. Oavgörbarhet.
- Labb 3 2 november
Flöden och matchningar, redovisning.
-
F24 6 november
[VK] Cooks sats. (PDF att läsa) -
F25 7 november kl 14
[VK] NP-fullständighetsbevis. (KT: 466-495)
-
F26 7 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 8 november
NP-fullständighetsbevis. Teoriredovisning för labb 4.
-
F27
Download F27 12 november
[SN] NP-fullständighetsreduktioner. (KT: 459-463)
-
F28
Download F28 13 november
[SN] Mer NP-fullständighetsreduktioner. (KT: 497-505) -
Ö10
Download Ö10 13 november
NP-fullständiga problem.
-
F29 19 november
[SN] Heuristiska algoritmer Links to an external site.. Simulated annealing Links to an external site.. (KTorig: 661-670/KTnie: 749-758) -
F30 20 november
[VK] Approximationsalgoritmer. (KT: 599-630) - MAS2-övning 22 november
Redovisning av övningsmästarprov 2 och genomgång av fler exempel på NP-fullständighetsproblem som förberedelse till mästarprov 2.
-
F31 26 november
[VK] Mer approximationsalgoritmer. (webbsida Links to an external site. om Christofides algoritm, Viggos lista med approximationsresultat för NP-svåra optimeringsproblem) -
F32 27 november
[VK] Komplexitetsklasser. (KT: 495-497, 531-547)
-
Ö11
Download Ö11 29 november
Approximationsalgoritmer. Teoriredovisning för labb 5.
-
Mästarprov 2, senast 3 december klockan 9.15!
Uppgiftslydelsen läggs upp i Canvas 19 november.Komplexitet. Muntliga redovisningar sker 6-13 december.
-
F33 3 december
[SN+VK] Links to an external site.Repetition. Kursens betygssystem.
-
Ö12
Download Ö12 6 december
Komplexitetsklasser och repetition. - Labb 5 7 december
Heuristik för rollbesättningsproblemet, redovisning.
- Extra labbredovisningstillfälle 14 december för alla labbar, inklusive högrebetygslabben.
- 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-11 januari 2019. Länk till bokning av muntlig redovisning.
- Redovisning av högrebetygslabben Heuristik för rollbesättningsproblemet (inga andra labbar kan redovisas), 8 januari 2019 kl 13-16. Länk till bokning av redovisningstid.
- Frivillig munta för högre mästarprovsbetyg, 9-10 januari 2019. Anmälan görs under perioden 31 december 2018 till 4 januari 2019. Länk till bokning av munta.
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 (se schema Links to an external site.). Säg till den du redovisar för att du ska ha labben rapporterad på adk18.
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 Johan Karlander. Säg till den du redovisar för att du ska ha mästarprovet rapporterat på adk18.
Den som har tentan kvar kan gå upp på omtentan 18 april 2019 kl 14-16 eller nästa ordinarietentan i december 2019.