Göm menyn

TDDC76 Programmering och datastrukturer

Kursinformation

Detta är en påbyggnadskurs i programmering, datastrukturer och algoritmer. Deltagarna ska ha genomgått en grundkurs i programmering och förutsätts ha grundläggande färdigheter i att analysera och formulera programmerbara lösningar till mindre problem samt känna till grundläggande begrepp inom programmeringsspråk och datalogi. I grundkurserna har datorsystemet Unix (eller motsvarande) behandlats och det förutsätts att grunderna för att arbeta med filer och filkataloger, textredigering och liknande basfärdigheter behärskas. I kursen används programmeringsspråket C++. C++ är inget förkunskapskrav och därför utgör kursens första veckor en introduktion till grundläggande programmering och objekt orientering i C++, motsvarande innehållet i en grundkurs i C++. Kursens andra del utgör av ett projekt utformat för att ge övning i objektorienterad programutveckling (analys, design och kodning) och användning av vanliga datastrukturer i C++.

Kursen har få föreläsningar och få lektioner men mycket tid för programmering. En hög grad av självstudier är en förutsättning och ska, enligt normen, utgöra minst lika många timmar som den schemalagda tiden.

För kursens mål, mm, se kursplanen i LiTHs studiehandbok.

Kurslitteratur, mm

Allt egenproducerat kursmaterialet är tillgängligt på webben. Här är två klassika böcker om C++, vilka uppdaterats för standarden C++11 (och lite C++14):

Den svenska boken C++ direkt, tredje upplagan, Studentlitteratur (2011), rekommenderas inte på grund av allt för mycket fel och brister.

Det finns mycket på webben om C++, dock med varierande kvalitet och i en del avseenden föråldrat. I och med standarden C++11 och efterföljande (C++14, C++1y) kommer också nya kodningsstandarder för att programmera i C++ att utvecklas. Det kan vara svårt att sålla bort både rena felaktigheter och föråldrade saker och då det gäller programmeringsstil är processen på god väg men inte i hamn. En intressant webbsida är "The home of Standard C++ on the web." Det finns även föredrag och kurser på exempelvis YouTube.

Examination

Kursen examineras genom laborationer, ett mindre projekt och övningar i OpenDSA. För mer information om examination, se kursens webbsida för examination.

Anmälan till laborationer och registrering på kursen

Anmälan till laborationer ska göras under kursens inledning via IDAs webbaserade anmälningssystem WebReg. Länk finns från vänstermenyn på kursens webbsidor.

Om du inte redan är registrerad på kursen bör du göra det så snart möjligt! Den vanligaste orsaken till problem vid rapportering av resultat i LADOK är avsaknad av registrering.

Lärare och administrativ personal

Personalen presenteras på kursens kontaktsida. Praktiska frågor kring LADOK handhas av kursadministratören.

Schema

För schemat som helhet hänvisas till timeedit och till kursens aktivitetsöversikt på webben, där planeringen av föreläsningar, lektioner, laborationer, deadline för olika aktiviteter finns.

Organisation

Föreläsningarna i Ht1 behandlar kursens innehåll med avseende på C++.

Lektionerna kommer att omfatta orientering om C++ kompilering och förberedelse i olika former inför laborationerna.

Laborationerna (LAB2) omfattar fyra laborationsuppgifter, vilka i sin tur består av deluppgifter. Arbete med laborationsuppgifter förutsätts också vara en påtaglig aktivitet ingående i hemarbetstiden, dvs du bör arbeta med laborationer minst lika mycket utanför den schemalagda tiden som inom. Laborationerna betygsätts 4 (väl godkänd), 3 (godkänd) eller underkänd (U). Observera att det finns ett antal deadline för laborationerna, och att det finns deadline även vid komplettering. Missad deadline påverkar betyget. Undvik besök i disciplinnämnden — när du visar en specifik lösning på en (del)uppgift för någon som inte redan löst den uppgiften och denne använder din lösning så uppstår "misstanke om fusk" vilket drabbar er båda! Som lärare är vi förpliktigade att anmäla en sådan situation till disciplinnämnden.

Projektet (PRA1) genomförs huvudsakligen under Ht2 i grupper om 4-6 personer. Projektet består i att ta fram en kravspecifikation, genomföra objektorienterad analys (OOA), objektorienterad design (OOD) och objektorienterad programmering (OOP). För de olika momenten ska ett motsvarande dokument lämnas lämnas in. Observera att vissa moment ingående i projektet ska utföras redan under Ht1, bl.a. att bilda projektgrupper, föreslå projektuppgift och skriva en kravspecifikation. Projektet betygssätts individuellt med godkänt (G) eller underkänt (U). Med individuellt avses du inte får ett G bara för att resten av gruppen får G, utan du förtjänar ditt G genom att aktivt bidra till projektet i tillräcklig omfattning.

OpenDSA (UPG3) är ett webbbaserat verktyg för egen övning inom datastrukturer och algoritmer. Du kan påbörja arbetet när du vill, men det rekommenderas att arbeta kontinuerligt under hela kursen. Lösning av samtliga obligatoriska uppgifter krävs för godkänt.

Reflektionsuppgift (UPG4) är en frivillig uppgift som kan göras för högre betyg. I denna uppgift ska du reflektera kring användandet av datastrukturer i ditt projekt samt lite kring användandet av OpenDSA. Betygssätts godkänt (G) eller Underkänt (U).

Slutbetyg på kursen bestäms genom sammanvägning av betygen på Reflektionsuppgiften (UPG4) och laborationerna (LAB2) enligt följande (godkänd reflektion höjer lab-betyget ett steg):

UPG4 LAB2 Slutbetyg
U/G/- U/- -
U/- G/3 3
U/- VG/4 4
G G/3 4
G VG/4 5

WWW

På kursens webbsidor hittar du mycket användbar och viktig information. Genom att bekanta dig väl med innehållet på kursens webbsidor och ta tillvara all information och stöd som erbjuds kan du underlätta dina studier påtagligt.


Sidansvarig: Eric Elfving / Klas Arvidsson
Senast uppdaterad: 2017-08-11