CD5440 Datastrukturer, algoritmer och programkonstruktion
Allmän information
Kursen skall ge grundläggande kunskaper om ofta använda datastrukturer och algoritmer samt hur dessa implementeras och tillämpas på olika problem. Dessutom avser kursen ge grundläggande kunskaper om utvecklingsmetodik för programvara. Kursen ges dagtid på halvfart i läsperiod 4 vt 2002 för datateknikprogrammet och elektronikprogrammet. Värdinstitution är Institutionen för Datateknik (IDt) på Mälardalens Högskola i Västerås.
Förkunskapskrav
Programstudenterna (datateknik/elektronik) förväntas ha kurserna datorarkitektur och programmeringsteknik 1, 5p, samt datorarkitektur och programmeringsteknik 2, 5p, avklarade. Fristående studenter skall ha inhämtat motsvarande kunskaper i programmeringsteknik, till exempel genom att kursen C-programmering, 5p, har avklarats.
Undervisning
Kursen består av föreläsningar, handledda övningstillfällen, laborationer och en projektuppgift som redovisas vid ett seminarium. Åtta föreläsningar kommer att ges. Dessa föreläsningar är delvis av översiktskaraktär vilket förutsätter att deltagarna studerar kurslitteraturen kontinuerligt under kursens gång enligt läsanvisningarna. Vidare kommer sex handledda övningstillfällen att finnas. Dessa övningar syftar till att exempel och övningar löses och diskuteras så att förståelsen ökas, både när det gäller grundläggande och svårare moment i kursen. Övningarna bygger på aktivt deltagande från studenterna. Laborationer genomförs i grupper om maximalt två studenter. Båda deltagarna i gruppen ska aktivt delta i arbetet och närvara vid redovisning av laborationerna. Uppgifterna redovisas och godkänns av laborationsassistent vid respektive laborationstillfälle. Man förväntas följa schemat för den grupp man tillhör. Om man skulle vara förhindrad vid något tillfälle kan man se efter om det finns någon ledig laborationsdator vid annat tillfälle. Laborationsanvisningar finns tillgängliga på kursens hemsida. Observera att det krävs betydligt mer tid än de schemalagda 4 timmarna till varje laboration för att hinna lösa alla uppgifterna. Schemalagda timmar är handledningstid. Räkna med att du behöver förbereda och läsa in dig och därmed lägga ner mycket mer tid än 4 timmar.
Kurslitteraturen består av boken Data Structures, Algorithms and Software Principles in C av Thomas A. Standish, Addison Wesley 1995, ISBN 0-201-59118-9. Boken kompletteras med ytterliggare kursmaterial såsom laborationsanvisningar, övningsmaterial samt diverse artiklar. När det gäller projektuppgiften i kursen så krävs också att litteratursökning genomförs efter relevant källmaterial.
Examination
För godkänt på kursen krävs det godkänd tentamen, laborationskurs och projektuppgift. Denna kursomgång kommer den skriftliga tentamen att vara en så kallad hemtenta. Dessutom används poänggivande inlämingsuppgifter under kursens gång som kommer att motsvara innehållet i hemtentan. Det kombinerade resultatet från dessa inlämningsuppgifter och hemtentan kommer att avgöra betyget på kursen. Mer utförliga regler om hemtentan samt betygssystemet kommer att ges i ett separat dokument som kommer att delas ut under kursen. I försättsbladet till övningsuppgifterna beskrivs reglerna för inlämingsuppgifternas genomförande. För att få skriva tentamen skall giltig legitimation och betalt kåravgiftskvitto/studentkort uppvisas då uppgifterna på hemtentan hämtas ut.
Bonuspoäng och betygssystem
I kursen används flera kompletterande examinationsformer som tillsammans påverkar betyget på kursen, nämligen inlämingsuppgifter samt hemtentamen. Ett poängsystem kommer att tillämpas så att poäng från de olika momenten som genomförts kombineras ihop till ett betyg. Reglerna för detta poäng- och betygsystem kommer att presenteras vid den första föreläsningen samt beskrivas i ett separat dokument.
Deadline
För laborationer gäller att samtliga laborationer skall vara redovisade vid sista laborationstillfället. Därefter ges endast tillfälle för redovisning i samband med de två ordinarie omtentorna för kursen. Boka i så fall tid med examinatorn i god tid i förväg, så kommer denne att göra upp ett redovisningsschema under veckorna för omtentorna.
Fusk
Det ligger i allas intresse att fusk förhindras såväl vid tentamen som vid laborationer och andra uppgifter. Särskilt vid programmeringsarbete är det ju lätt att kopiera filer med mera. Det är inte tillåtet att kopiera andras lösningar, vare sig helt eller delvis, och lämna in dessa som sina egna. Detta är fusk och kommer att anmälas som sådant till disciplinnämnden. Att åka snålskjuts på sina studiekamrater, dvs. att bara hänga med vid ett grupparbete, utan att aktivt ta del i arbetet och driva det framåt, är inte bara omoraliskt, utan det kommer också att betraktas som fusk. Om Mälardalens högskolas disciplinnämnd finner att en student har fuskat kan denne bli avstängd från fortsatta studier.
Lärare och administrativ personal
Föreläsare, kursledare, examinator:
Thomas Larsson
Institutionssekreterare och studievägledare:
Monica Wasell
Labassistenter:
Daniel Persson och
Johan Fredriksson
| Moment | Innehåll | Läsanvisningar |
|---|---|---|
| F1 | Introduktion, länkade datastrukturer, rekursion | Kapitel 1-3 |
| F2 | Modularitet och dataabstraktion, introduktion till software engineering | Kapitel 4-5 |
| F3 | Stackar, köer | Kapitel 7: Allt ingår utom avsnitt 7.9 |
| F4 | Listor, strängar och dynamisk minneshantering | Kapitel 8: Avsnitten 8.1-8.3 och 8.5 ingår |
| F5 | Algoritmanalys, sortering | Kapitel 6 och 13 |
| F6 | Träd | Kapitel 9: Avsnitten 9.1 till 9.7 ingår |
| F7 | Hashing och the Table ADT | Kapitel 11 |
| F8 | Grafer och repetition | Kapitel 10: Avsnitten 10.1 till 10.6 ingår |