TDDC76 Programmering och datastrukturer
Kursinformation
Denna kurs är en påbyggnadskurs i programmering. 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 för mindre programmeringsuppgifter. I kursen används programmeringsspråket C++ med inriktning på procedurell och objektorienterad programmering. Grunderna för objektorienterad analys och design tas upp och övas i ett projekt.
Kursen har relativt få föreläsningar, få lektioner men relativt mycket tid för programmering. En hög grad av självstudier förutsätts.
För kursens mål, etc., se kursplanen i LiTHs studiehandbok.
Kursplanering 2012. (PDF)
Aktivitetsöversikt 2012. (PDF)
Kurslitteratur
För att följa kursen behöver du en C++-bok skriven för den nya standarden, C++11, och vårt eget datastruktur- och algoritmkompendium (eller en riktig bok om datastrukturer och algoritmer).
På C++11-fronten är det ännu magert på bokfronten då det gäller C++11. Följade är känt i augusti 2012:
• C++ direkt,
Jan Skansholm,
Tredje upplagan (2011), Studentlitteratur. 656 sidor.
En lärobok på svenska som är en nybörjarbok i programmering i C++.
Bokens 2:a upplaga har rekommenderats av studenterna som gått kursen tidigare.
Den tredje upplagan är omskriven för den nya standarden, C++11, men dessvärre
med påtagliga luckor och felaktigheter då det gäller C++11. Boken utgör en
blandning av C, C++98 (gamla standarden) och C++11. Den rekommendation som
kan ges är "i brist på annat" (det kommer att finnas en omfattande lista av
rättelser, förtydliganden, etc.).
• C++ Primer,
Stanley B. Lippman, Josée Lajoie, Barbara E. Moo,
5/E (2013), Addison Wesley. 960 sidor. (planerad att utges i augusti 2012).
Vi har ännu inte haft möjlighet att studera denna nya upplaga men den fjärde upplagan är en i
stort sett heltäckande lärobok som kvalitetsmässigt var klart bättre än C++ direkt (se ovan) och
detsamma förväntas gälla för dessa två böckers nya upplagor.
• The C++ Programming Language,
Bjarne Stroustrup,
4/E (2013), Addison Wesley. ??? sidor.
En klassiker, skriven av upphovsmannen till C++. Beräknad publicering är 2013-01-13.
Datastrukturer:
• Data Structures and Algorithm Analysis in C++, Mark Allen Weiss. Third edition (2006). Addison-Wesley (Pearson Education). 580 sidor. Täcker kursens innehåll väl.
• Data Structures and Problem Solving Using C++, Mark Allen Weiss. Second edition (2000). Addison-Wesley (Pearson Education). 900 sidor. Täcker kursens innehåll väl och dessutom mer.
Laborationshandledningar kommer att finnas i samband med kursstart. Allmän information och den introduktionslaboration som inleder laborationerna delas ut på den första lektionen. Den egentliga laborationsserien distribueras via webben.
Examination
Kursen examineras genom laborationer, ett mindre projekt och en hemtentamen. För mer information om examination, se kursens webbsidor.
Anmälan till laborationer
Anmälan till laborationer görs via IDAs webbaserade anmälningssystem WebReg under kursens inledning. Länk kommer att finnas från kursens webbsidor.
Om du inte redan är registrerad på kursen bör du göra det så snart möjligt!
Lärare och administrativ personal
Presenteras på kursens kontaktsida.
Schema
För schemat som helhet hänvisas till kursens eget schema på webben, där även planering finns. Kursen inleds med en lektionen och en introduktionslaboration. Först därefter börjar föreläsningarna och de ordinarie laborationerna.
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 praktiska frågor kring laborationerna (lektion 1), uppsamling efter laboration 1.1-1.3 och genomgång inför laboration 1.4-1.5 (lektion 2), genomgång inför laboration 3 och verktyget make (lektion 3), samt övning på objektorienterad programutveckling, främst objektorienteras analys (lektion 4). På lektion 5 delas hemtentamen ur och en video om sorteringsalgoritmer visas.
Laborationerna omfattar tre laborationsuppgifter, vilka i sin tur består av deluppgifter. De olika laborationstillfällena är inte direkt tillägnade vissa uppgift. Tidplaneringen gör du i princip själv, i förhållande till de deadline som finns för de olika laborationsuppgifterna. Arbete med laborationsuppgifter förutsätts ocksaå vara en aktivitet ingående i hemarbetstiden, dvs du får räkna med att arbeta vid dator en hel del även vid sidan av den schemalagda tiden. Laborationerna betygsätts väl godkänd (VG), godkänd (G) eller underkänd (U). Observera att det finns ett antal deadline för laborationer och att dessa måste hållas för att komma ifråga för högre betyg än godkänd. Observera också att i LADOK rapporteras godkända laborationer (LAB1) endast som G och att betyget G eller VG sammanvägs med betyget på hemtentamen till ett sifferbetyg som sätt för hemtentamen (UPG1).
Projektet genomförs huvudsakligen under Ht2 i grupper om 4-6 personer. Projektet består i att sammanställa en enkel kravspecifikation, samt genomföra objektorienterad analys (OOA), design (OOD) och programmering (OOP). För de olika momenten ska ett motsvarande mindre dokument inlämnas. 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 icke godkänt (U).
Hemtentamen behandlar datastrukturer och algoritmer och är helt oberoende av programeringsspråk. Den är planerad att genomföras under den femte veckan av Ht2. Hemtentamen betygssätts väl godkänd (VG), godkänd G eller underkänd (U). Observera dock att i LADOK betygssätts tentamen med sifferbetyg och att detta bestäms genom sammanvägning av betygen på hemtentamen och laborationerna (G+G=3, G+VG=4, VG+VG=5).
WWW
På kursens webbsidor kan du hitta bland annat följande:
- Information av olika slag; kursinformation, examination, aktuella meddelanden, schema med aktivitetsplanering, föreläsningsdagbok.
- Laborationsmaterial: uppgifter (släpps i samband med kursstarten) och stödmaterial.
- Projektanvisningar, projektförslag och annat material som rör projektet och dess genomförande.
- Läsanvisningar och annat instuderingsmaterial.
- Länkar till information om C++ och programmering i C++.
Bekanta dig väl med innehållet på kursens webbsidor!
Sidansvarig: Tommy Olsson
Senast uppdaterad: 2012-08-20
