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

Problem Solving and Programming under Pressure

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.

Visa kursinformation utifrån vald termin och kursomgång:

Kursomgång och genomförande

Ingen kursomgång är vald

Välj termin och kursomgång ovan för att få information från rätt kursplan och kursomgång.

Kursinformation

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.

Kursupplägg

Ingen information tillagd

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

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 samordnare för 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

Per Austrin

Ytterligare information

Kurswebb

Ytterligare information om kursen kan hittas på kurswebben via länken nedan. Information på kurswebben kommer framöver flyttas till denna sida.

Kurswebb DD2458

Ges av

EECS/Datavetenskap

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.

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.

Ö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