redogöra för grundläggande abstrakta datatyper och datastrukturer, bland annat listor, köer, hashtabeller, träd och grafer
redogöra för några av de algoritmer som används för att effektivt hantera dessa datastrukturer, och förklara varför de är korrekta
Färdigheter och förmåga
tillämpa grundläggande abstrakta datatyper och datastrukturer, samt algoritmer relaterade till dessa
implementera och använda abstrakta datatyper som gränssnitt, och datastrukturer som klasser, i ett objektorienterat programmeringsspråk
läsa, specificera och beskriva algoritmer, på en högre abstraktionsnivå än programkod
Värderingsförmåga och förhållningssätt
analysera effektivitet hos grundläggande algoritmer och datastrukturer
göra välgrundade val mellan olika datastrukturer och algoritmer för olika tillämpningar
Kursinnehåll
Följande ämnen täcks av kursen:
abstrakta datatyper
datastrukturer och algoritmer, med fokus på imperativa och objektorienterade programmeringsspråk
att använda invarianter för att designa och implementera effektiva datastrukturer
vanliga datastrukturer, såsom fält (arrayer), länkade listor, obalanserade och balanserade träd, heapar och hashtabeller
hur dessa kan användas för att implementera abstrakta datatyper, såsom stackar, köer, prioritetsköer, avbildningar, mängder och grafer
standardalgoritmer för dessa datastrukturer, inklusive deras resurskrav
söknings- och sorteringsalgoritmer
att använda olika bibliotek för datastrukturer och algoritmer
grundläggande komplexitetsanalys av datastrukturer och algoritmer
Förutsättningar
Grundläggande behörighet för grundnivå Samma behörighet som det kursägande programmet Kunskaper i objektorienterad programmering motsvarande minst 7,5hp, inklusive rekursiva funktioner och metoder. Grundläggande matematiska begrepp, såsom mängder, funktioner, relationer, grafer, logaritmer och induktionsbevis.