Kursen behandlar abstrakta datatyper, algoritmer, en introduktion till formella språk och grammatiker, automatteori samt tillämpningsexempel. Kursen ger också en introduktion och praktiskt arbete med att utforma en frågeställning och utifrån denna formulera kriterier för att bedöma lämpligheten hos en lösning. Studenterna får sedan värdera olika lösningsförslag utifrån dessa kriterier. Under kursen används programspråket C och där introduceras bland annat funktionspekare och hur man använder kommandoradsparametrar.
Abstrakta datatyper som behandlas är bland andra träd, trie, heap, och graf. Datatypernas informella och formella specifikationer, generella egenskaper och användningsområden liksom olika implementationsmöjligheter och deras specifika egenskaper behandlas. Vidare behandlas grundläggande algoritmer förknippade med dessa abstrakta datatyper, deras komplexitet och karakteristiska egenskaper. På kursen gås ett antal problemlösningsstrategier som tex brute force, greedy, divide and conquer och dynamisk programmering igenom.
Kursen ger en introduktion till formella språk och grammatiker där studenterna får arbeta med reguljära språk med hjälp av reguljära uttryck och finita automater. Under kursen kommer studenterna få praktiskt använda de abstrakta datatyper och algoritmer vi gått igenom för att skapa egna finita automater.
Teoridelarna i kursen tillämpas genom problemlösning (att konstruera algoritmer) och programmering (att överföra algoritmer till källkod i ett programspråk) där ett större programmeringsprojekt kommer behandla formella språk och automater.
Den här kursen innehåller tillfällen som är en del av ett program på Umeå universitet. Du kan bara söka kursen om du går det programmet. Information om ansökningstider och vad som gäller för dig får du från din institution.