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 tre första veckor en introduktion till grundläggande programmering i C++, motsvarande innehållet i en grundkurs i C++. Grunderna för objektorienterad programutveckling (analys, design och kodning tas upp och övas i ett mindre projekt, huvudsakligen under kursens andra del.

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 lika många timmar som den schemalagda tiden.

För kursens mål, mm, se kursplanen i LiTHs studiehandbok. Se även Kursplanering, bedömning och betygssättning (PDF) och Aktivitetsöversikt (PDF).

Kurslitteratur, mm

Allt egenproducerat kursmaterialet är tillgängliga på webben. Här är två klassika böcker om C++, vilka uppdaterats för den nya standarden C++11:

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 den nya 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 en hemtentamen. 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 kursens eget schema på webben, där planeringen av föreläsningar, lektioner, laborationer, deadline för olika aktiviteter finns. Kursen inleds med en lektionen och en introduktionslaboration. Först därefter börjar föreläsningarna och de ordinarie laborationerna som ingår i examinationen.

Organisation

Föreläsningarna i Ht1 behandlar kursens innehåll med avseende på C++. Första föreläsningen i Ht2 orienterar om objektorienterad programutvecklingsmetodik och verktyg för detta. Övriga föreläsningar i Ht2 behandlar datastrukturer och algoritmer.

Lektionerna kommer att omfatta orientering om C++kompilering och förberedelse i olika former inför laborationerna. På lektion 6 delas hemtentamen ur och en video om sorteringsalgoritmer visas.

Laborationerna (LAB2) omfattar tre 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 en hel del även vid sidan av den schemalagda tiden. 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. Undvik besök i disciplinnämnden — laborationsgrupper ska inte ha något som helst utbyte/samarbete då det gäller specifika programlösningar och kod!

Projektet (PRA1) genomförs huvudsakligen under Ht2 i grupper om 4-6 personer. Projektet består i att ta fram en enkel 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 endast godkänt (G) eller underkänt (U).

Hemtentamen (UPG2) behandlar datastrukturer och algoritmer och är en teoretisk del, oberoende av programmering och programmeringsspråk. Hemtentamen lämnas ut i slutet av den fjärde veckan av Ht2 och genomförs huvudsakligen under den femte veckan av Ht2 (10 kalenderdagar står till förfogande). Hemtentamen betygssätts 4 (väl godkänd), 3 (godkänd) eller U (underkänd).

Slutbetyg på kursen bestäms genom sammanvägning av betygen på hemtentamen (UPG2) och laborationerna (LAB2) (3+3=3, 3+4=4+3=4, 4+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: Jonas Lindgren
Senast uppdaterad: 2015-08-18