Hoppa till huvudinnehållet

DD2458 Problemlösning och programmering under press 9,0 hp

För att framgångsrikt lösa olika datalogiska problem krävs både gedigna teoretiska kunskaper och förmåga att tillämpa dessa kunskaper i praktiken.

Denna kurs fokuserar på förmågan att tillämpa teoretiska kunskaper om algoritmer, datastrukturer och komplexitet på givna problem. Att snabbt kunna analysera ett problem, göra bedömningar av föreslagna algoritmers komplexitet och kunna implementera en lösning snabbt och korrekt är användbara förmågor i arbetslivet. I denna kurs tränas problemlösningsförmåga dels med ett antal omgångar med hemuppgifter och dels med tidsbegränsade problemlösningssessioner.

Notera att detta är en ovanligt intensiv och arbetstung kurs.

Välj termin och kursomgång

Välj termin och kursomgång för att se aktuell information och mer om kursen, såsom kursplan, studieperiod och anmälningsinformation.

Kursval

Gäller för kursomgång

VT 2025 popup25 programstuderande

Anmälningskod

60139

Rubriker med innehåll från kursplan DD2458 (HT 2020–) är markerade med en asterisk ( )

Innehåll och lärandemål

Kursinnehåll

Algoritmer: beräkningsgeometri, grafalgoritmer, talteoretiska algoritmer, strängmatchning. Algoritmanalys och algoritmkonstruktion: dynamisk programmering, amorterad analys, rimlighetsbedömningar. Programmeringsfärdigheter, framför allt i C++ och Java.

Lärandemål

Kursens övergripande syfte är att studenterna dels ska kunna användaprogrammering som ett verktyg för problemlösning, dels kunna tillämpa teoretiska kunskaper från andra datalogikurser på praktisk problemlösning. Kursen har ett stort fokus på att gå hela vägen från teori (i form av algoritmdesign) till praktik (i form av ett fungerande program).

Efter godkänd kurs ska studenten kunna 

  • använda algoritmkonstruktionsmetoder som giriga algoritmer,  dynamisk programmering, dekomposition och kombinatorisk sökning för  att konstruera algoritmer i syfte att lösa givna problem, 
  • använda grundläggande algoritmer inom områden som t.ex.~grafteori,  talteori, och geometri på givna problem samt anpassa dem till  problemspecifika omständigheter, 
  • analysera effektiviteten hos olika algoritmer för att  avgöra vilka som i ett givet sammanhang är tillräckligt effektiva, 
  • jämföra olika problem med avseende på svårighetsgrad, 
  • implementera algoritmer och datastrukturer givet  abstrakta specifikationer, 
  • identifiera buggar i andras lösningsförsök på problem, 
  • kommunicera med andra under problemlösning i grupp, 
  • presentera algoritmer, datastrukturer och problem muntligt på ett koncist och begripligt sätt. 

Målen uppnås dels genom att studenten under kursens gång löser ett stort antal hemuppgifter, implementerar ett antal algoritmer för att bygga upp ett mindre algoritmbibliotek, löser problem i små grupper under "problemsessioner", samt presenterar lösningar på hemuppgifter.

Kurslitteratur och förberedelser

Särskild behörighet

Slutförd kurs i algoritmer och komplexitet motsvarande DD2350/DD2352.

Rekommenderade förkunskaper

DD2440 Avancerade Algoritmer

Utrustning

Ingen information tillagd

Kurslitteratur

Ingen information tillagd

Examination och slutförande

När kurs inte längre ges har student möjlighet att examineras under ytterligare två läsår.

Betygsskala

A, B, C, D, E, FX, F

Examination

  • LAB2 - Laborationer och problemlösningspass, 4,5 hp, betygsskala: A, B, C, D, E, FX, F
  • ÖVN1 - Skriftliga uppgifter, 4,5 hp, betygsskala: A, B, C, D, E, FX, F

Examinator beslutar, baserat på rekommendation från KTH:s handläggare av stöd till studenter med funktionsnedsättning, om eventuell anpassad examination för studenter med dokumenterad, varaktig funktionsnedsättning.

Examinator får medge annan examinationsform vid omexamination av enstaka studenter.

Examination kan endast ske i samband med pågående kursomgång.

Möjlighet till komplettering

Ingen information tillagd

Möjlighet till plussning

Ingen information tillagd

Examinator

Etiskt förhållningssätt

  • Vid grupparbete har alla i gruppen ansvar för gruppens arbete.
  • Vid examination ska varje student ärligt redovisa hjälp som erhållits och källor som använts.
  • Vid muntlig examination ska varje student kunna redogöra för hela uppgiften och hela lösningen.

Ytterligare information

Kursrum i Canvas

Registrerade studenter hittar information för genomförande av kursen i kursrummet i Canvas. En länk till kursrummet finns under fliken Studier i Personliga menyn vid kursstart.

Ges av

Huvudområde

Datalogi och datateknik

Utbildningsnivå

Avancerad nivå

Påbyggnad

Diskuteras med kursledaren.

Kontaktperson

Per Austrin, e-post: popup-17@csc.kth.se

Övergångsbestämmelser

LAB2 motsvarar det tidigare provmomentet LAB1, som kan ersättas av detta.

Övrig information

Deltagarantalet är begränsat till 25.

Kursen ges endast i mån av lärarresurser.


I denna kurs tillämpas EECS hederskodex, se:
http://www.kth.se/eecs/utbildning/hederskodex