Datastrukturer t.ex. stack, kö, array, ordnad array, träd, trie, rödsvarta träd, binära sökträd, hashtabell, länkad lista, prioritetskö, heap.
Algoritmer t.ex. binärsökning, insättning i ovan nämnda datastrukturer, borttagning i ovan nämda datastrukturer, selection sort, insertion sort, heapsort, bubblesort, quicksort, mergesort, radix sort, räknesortering, djupet-först-sökning, bredden-först-sökning, Warshalls algoritm, några AI-algoritmer.
Grundläggande förståelse för en algoritms komplexitet. Lite om komplexitetsklasser.
Denna kurs läses av de studenter som läst en grundläggande kurs och en fortsättningskurs i objektorienterad programmering och som behöver djupare programmeringskunskaper för framtida studier eller i arbetslivet.
Kursen syftar till att ge en bredare förståelse när det gäller val av implementation för att effektivisera och optimera problemlösningstid, körtid och minnesutrymme.
För betyg E:
Studenten ska kunna använda de datastrukturer som finns implementerade i klassbiblioteken i ett objektorienterat programmeringsspråk och kunna avgöra vilken av dem som är lämpligast för en given tillämpning.
Studenten ska kunna implementera en enkel algoritm i ett programmeringsspråk genom att utgå från en detaljerad beskrivning eller pseudokod.
Studenten ska kunna beskriva nedanstående datastrukturer med avseende på vilka de viktigaste operationerna är, när de är lämpliga att tillämpa och hur de fungerar.
Länkad lista, dubbellänkad lista, hashtabell, stack, kö, priortetskö, heap, binärt sökträd.
Studenten ska kunna implementera någon sorteringsalgoritm för en array.
Studenten ska ha en god uppfattning om vad komplexitet är, och vad olika komplexiteter innebär på en sådan nivå att han/hon ska kunna föra en diskussion om det angående en given algoritm.
Studenten ska kunna läsa om en algoritm och därefter kunna sätta sig in i koden för algoritmen till den grad att han/hon kan utföra en ändring av/göra ett tillägg till koden på korrekt sätt.
Studenten ska allmän kännedom om de datastrukturer och algoritmer som tas upp i kursen minst på den nivå att han/hon kan ge en kort förklaring av dem och vet var mer information finns att hämta.
Studenten ska kunna komma på en egen lösning (algoritm) på ett enklare problem och skriva ner pseudokod för lösningen.
För högre betyg D-A:
Studenten ska kunna analysera en algoritm och tala om vilken komplexitet den har.
Studenten ska kunna implementera en icke-trivial algoritm i något programmeringsspråk.
Studenten ska kunna lösa problem genom att komma på en algoritm som löser dem och sedan implementera den.