Engelskt namn: Data Structures and Algorithms
Denna kursplan gäller: 2009-01-19 och tillsvidare
Kursplan för kurser med start efter 2009-01-19
Kurskod: 5DV043
Högskolepoäng: 7,5
Utbildningsnivå: Grundnivå
Huvudområden och successiv fördjupning:
Datavetenskap: Grundnivå, har mindre än 60 hp kurs/er på grundnivå som förkunskapskrav
Betygsskala: Med beröm godkänd, icke utan beröm godkänd, godkänd, väl godkänd, godkänd, underkänd
Ansvarig institution: Institutionen för datavetenskap
Beslutad av: teknisk-naturvetenskapliga fakultetsnämnden, 2008-01-08
Reviderad av: teknisk-naturvetenskapliga fakultetsnämnden, 2009-03-24
Kursen behandlar grundläggande abstrakta datatyper, grundläggande algoritmer, komplexitetsanalys, tillämpningsexempel och olika problemlösningsansatser. Under kursen används programspråket Java. Moment 1, teori, 4.5 högskolepoäng Momentet behandlar grundläggande abstrakta datatyper såsom lista, stack, kö, träd, mängd, graf och tabell. Det behandlas deras informella och formella specifikationer, generella egenskaper och användningsområden liksom olika implementationsmöjligheter och deras specifika egenskaper. Vidare behandlas grundläggande algoritmer förknippade med olika abstrakta datatyper, deras komplexitet och karakteristiska egenskaper för typiska problem (till exempel sökning, sortering och traversering). Komplexitetsanalys av algoritmer introduceras (Ordo-notationen). Grundläggande problemlösningsstrategier diskuteras som till exempel divide and conquer, brute force, greedy och dynamisk programmering. Moment 2, färdighetsträning, 3 högskolepoäng Momentet utgörs av ett antal obligatoriska uppgifter. Teori från moment 1 tillämpas under grundläggande färdighetsträning: val, konstruktion och användande av datastrukturer och algoritmer vid programmering i ett objektorienterat språk. Färdigheter som (delar av) projektplanering, testning, debuggning och dokumentation övas. Komplexitet av enkla algoritmer undersökes.
Efter avslutad kurs ska studenten kunna: redogöra för grundläggande begrepp relaterade till datastrukturer och algoritmer redogöra för organisation och specifikation för grundläggande abstrakta datatyper såsom lista, stack, kö, träd, mängd, graf och tabell redogöra för grundläggande algoritmer, deras komplexitet och karakteristiska egenskaper välja lämpliga datatyper och algoritmer för ett givet problem välja och utföra lämpliga implementationer (konstruktioner) av de valda datatyperna och algoritmerna analysera enklare algoritmer praktiskt och teoretiskt med avseende på prestanda använda sig av grundläggande problemlösningsstrategier (som till exempel divide and conquer, brute force, greedy och dynamisk programmering) på nya problem tillämpa de teoretiska kunskaperna och objektorienteringsparadigmen praktiskt på ett programmeringsprojekt, dvs. konstruera en komplett programvara inklusive dokumentation (med systembeskrivning och webbaserad API) utifrån givna riktlinjer utforma en enkel arbetsplan för ett programmeringsprojekt som utförs i grupp samt dokumentera, följa upp och skriftligt utvärdera den gjorda planeringen.
Univ: För tillträde till kursen krävs kurserna Objektorienterad programmeringsmetodik (5DV081) eller Objektorienterad programmeringsmetodik för Öppen ingång (5DV090) eller motsvarande kunskaper. Dessutom är det en stark rekommendation att man läst Diskret matematik (5MA008).
Undervisningen bedrivs i form av föreläsningar, arbete i datorlabb och övningar i mindre grupper. Utöver schemalagda aktiviteter krävs även individuellt arbete med materialet.
Examinationen sker dels genom skriftlig tentamen (Moment 1, teoridel) dels genom ett antal obligatoriska uppgifter inklusive ett mindre projekt som genomförs i grupp (Moment 2, färdighetsträning). På Moment 1 sätts något av betygen Underkänd (U), Godkänd (3), Icke utan beröm godkänd (4) eller Med beröm godkänd (5). På moment 2 ges endast betygen Underkänd (U) eller Godkänd (G). På hela kursen ges något av betygen Underkänd (U), Godkänd (3), Icke utan beröm godkänd (4) eller Med beröm godkänd (5). För att bli godkänd på hela kursen krävs att samtliga prov och obligatoriska moment är godkända. Betyget utgör en sammanfattande bedömning av resultaten vid examinationens olika delar och sätts först när alla obligatoriska moment är godkända. Studerande som godkänts i ett prov får inte undergå förnyat prov för att få ett högre betyg. Studenter som underkänts på Moment 1 vid kursens slut erbjuds ytterligare två provtillfällen under året. För studenter som underkänts på Moment 2 vid kursens slut ges ytterligare ett provtillfälle under året enligt följande: Studenter som inte är godkända på enskilda obligatoriska uppgifter får möjlighet till ny examination vid ett tillfälle under året som meddelas vid kursens slut. Studenter som inte blivit godkänta på projektmomentet vid kursens slut kan få uppskov om de bedöms kunna slutföras inom en överskådlig tidsram som bestäms i samförstånd med kursansvarig lärare. Enskilda studenter som inte godkänts vid kursens slut men som regelbundet deltagit i sina projektmoment kan få en extrauppgift. Studenter som inte deltagit i projektmomenten får betyget Underkänd (U). Det innebär att studenter som inte deltagit i projekten under kursens gång erbjuds ytterligare provtillfällen endast när kursen ges nästa gång. För studerande som inte godkänns vid ordinarie provtillfälle anordnas ytterligare provtillfälle. En student som utan godkänt resultat har genomgått två prov för en kurs eller en del av en kurs, har rätt att få en annan examinator utsedd, om inte särskilda skäl talar emot det (HF 6 kap. 22 §). Begäran om ny examinator ställs till prefekten för Institutionen för datavetenskap. TILLGODORÄKNANDE I en examen får denna kurs ej ingå, helt eller delvis, samtidigt med en annan kurs med likartat innehåll. Vid tveksamheter bör den studerande rådfråga studievägledare vid Institutionen för datavetenskap.
Datatyper och algoritmer
Janlert Lars-Erik, Wiberg Torbjörn
2., [rev.] uppl. : Lund : Studentlitteratur : 2000 : x, 387 s. :
ISBN: 91-44-01364-7
Se Umeå UB:s söktjänst