visa kunskap om den vetenskapliga grunden för att utveckla och analysera algoritmer och datastrukturer som korrekt och effektivt löser olika typer av problem samt omfattande kunskap om dess beprövade erfarenhet
visa förmåga att skapa, analysera och kritiskt utvärdera olika algoritmiska lösningar
visa förmåga att simulera och utvärdera datorprogram i situationer när de blir så komplexa att de inte kan överblickas
visa kunskap om matematiska verktyg för analys av algoritmer
visa förmåga till lagarbete och samverkan genom grupparbete samt visa förmåga att på egen hand identifiera behov av och förmåga till inhämtning av ytterligare kunskap för att stärka sin kompetens
visa förmåga att planera och, med adekvata metoder, genomföra kvalificerade uppgifter inom givna ramar
visa förmåga att göra bedömningar med hänsyn till teknikens möjligheter samt visa färdighet i att presentera och diskutera sina slutsatser och den kunskap och de argument som ligger till grund för dessa
Kursinnehåll
Kursen kommer att ha teoretisk tonvikt på algoritmisk problemlösning. Kursen innehåller algoritmer och datastrukturer, framförallt för sökning i och sortering av stora datamängder och grafiska problem. Vanligt förkommande datastrukturer som köer, stackar, listor, prioritetsköer, träd och söktrad, grafer, mängder, och tabeller samt ekurrensekvationer, effektivitetsmått, övre gränser. Analys av algoritmers asympototiska tids- och minneskomplexitet. Paradigmer för design av algoritmer.
Förutsättningar
Grundläggande behörighet samt att kursen förutsätter kunskaper i objektorienterad programmering, objektorienterad design, och diskret matematik motsvarande de som kurserna D0009E Introduktion till programmering, D0010E Objektorienterad programmering och design och M0009M Diskret matematik ger. De praktiska momenten förutsätter allmän datorvarana.