Kontakt
bild3 bild2 bild1
Skolan för
datavetenskap
och kommunikation

2D1387 Programsystemkonstruktion med C++

Kursen ges läsåret 2005/2006 i period 1 och 2 med Alexander Baltatzis som kursansvarig och Daniel Aarno som kursadministratör.

Övningsassistenter på kursen är Daniel Aarno (bishop@kth.se), Jonas Sjöbergh (jsh@nada.kth.se) och Douglas Wikström (dog@nada.kth.se).

Kursen är en fortsättningskurs i datalogi som ger goda kunskaper i språket C++ och behandlar tekniker för effektiv konstruktion av stora programsystem i C++.

Kursen förutsätter kunskaper i objektorientering och Javaprogrammering motsvarande

Kursen kan ej kombineras med 2D1358 OOPK med C++.

Kursens mål har inte ändrats sedan förra året. Du ska få:

  • goda kunskaper om alla delar av programspråket C++
  • kännedom om och färdigheter i metoder för utveckling, dvs. utformning, implementation, provning och avlusning, av program i C++
  • ingående kännedom om svårigheterna med och svagheterna hos C++ och metoder att råda bot på dem,
Ambitionen är att så väl som möjligt, givet den avsatta tiden, förbereda er på näringslivets krav på en programmerare.

Kursregistrering

För att registrera sig på kursen och få rätt programmeringsmiljö, följ labblydelsen i lab1 eller lab2:
    datan> res checkin cprog05
    datan> course join cprog05

Kurslitteratur

Bok

Kurslitteratur är antingen Lippman eller Stroustrup. Det finns även en ny utkommen svensk bok av Johan Fagerström, Avancerad C++, det är ingen nybörjarbok. För referens rekommenderar vi att ni köper en bok om standardbiblioteket (exempelvis Josuttis nedan). Josuttis bok har man dock mest användning av i projektuppgiften och inte i de andra labbarna.

  • Josee Lajoie, Stanley Lippman, C++ Primer, 3rd edition , ISBN 0-201-82470-1
  • Bjarne Stroustrup, The C++ Programming Language, 3rd edition/special edition, ISBN 0-201-88954-4
  • Nicolai Josuttis, The C++ standard library, ISBN 0-201-37926-0

Kursbunt

Kursbunten kommer att finnas att köpa på studentexpeditionen innan första labtillfället.

Mycket av materialet finns eller kommer att finnas on-line. Ni kan skriva ut dem på nadas skrivare om ni vill. Var medvetna om att det finns en begränsning för hur mycket varje kontohavare på nada får skriva ut (400 sidor totalt tror jag). Föreläsningsanteckningar kommer att läggas ut efter hand.

Examination

Kursen har två obligatoriska moment i Ladok:
  • TEN1 -- Tenta, 1 poäng
  • LAB1 -- Datorlaborationer, 3 poäng

För att klara kursen krävs att du får godkänt på båda momenten.

Tenta

Tentamen är inte betygsatt, utan du blir antingen godkänd eller inte. Hjälpmedel på tentan är din kursbok. Det är tillåtet och uppmuntras att göra understrykningar och anteckningar i kursboken. Det är dock inte tillåtet att skriva in annan information som gamla tentor i kursboken.

Ordinarie tenta går lördag 22 okt 09:00-13:00 i salarna E31, E33-E36, E51-E53

Gamla tentor och lösningar går att nå via hemsidan. En delas ut med kursbunten. I år kommer tentans omfång att minska. Mer information om detta kommer på föreläsning.

Tentaresultatet anslås högst tre veckor efter tentan på institutionens anslagstavla på plan 3 (rakt ovan ingången till Osquars backe 2). Klagomål på rättning av tentan lämnas in skriftligen till kursledaren via expeditionen.

Labbar och projektuppgift

Två obligatoriska datorlabbar och en projektuppgift ingår i kursen. Dessa utgör momentet LAB1. Labbarna och projektuppgiften ska helst göras i tvåpersonsgrupper. Enpersonsgrupper kan godkännas i undantagsfall. Varje labb och projektuppgift som redovisas senast det labbtillfälle (dvs före den angivna tidpunkten) som finns angivet på labben ger tre bonuspoäng. Sammanlagt kan alltså labbarna och projektuppgiften ge 3 * 3 = 9 bonuspoäng. Bonuspoängen gäller ett kalenderår räknat från kursstart, dvs fram till augusti 2006. Bonuspoängsuppgifter för labb1 och labb2 kan bara redovisas under period ett och två.

Labbarna och projektuppgiften har dessutom ett antal frivilliga extrauppgifter. Redovisning av extrauppgifter kan leda till högre betyg, se avsnittet om betyg nedan.

För att det inte skall bli för trångt i labbsalarna skall gruppmedlemmarna (vid kursstart) anmäla sig till en av fyra labbgrupper (grupp 1, 2, 3, eller 4). När de olika grupperna labbar framgår av kursschemat. Du anmäler grupp samtidigt som du registrerar dig på kursen, se avsnitt Kursregistrering.

Labbhandledning

Det finns schemalagda labbtillfällen från och med andra veckan av kursen och till och med den vecka då projektuppgiften ska redovisas. Det kommer att finnas handledare tillgängliga vid dessa labbtillfällen.

Labbarna och projektuppgiften (extrauppgifter ej medräknade) beräknas ta i genomsnitt 25+30+50=105 timmar att genomföra.

Börja i god tid med labbarna!

Får du problem kan du fråga handledarna. Kösystemet sima manager kommer att användas. För att få tillgång till det skriver du
       module add sima
och startar det med
       sm
välj cprog i listan över kurser.

Labbredovisning

Den första labben redovisas via inlämning av kod. Vid inlämningen ska du boka tid för återkopplingssamtal. Krav på koden står i labbpeket. Vid återlämningssamtalet tar den som rättat din labb upp eventuella brister som kan behöva kompletteras.

Den andra labben redovisas vid terminalsal. Eftersom många kursdeltagare blir klara först vid sista tillfället för bonus kommer endast förbokade redovisningar att tas vid detta tillfälle.

Du kan i princip redovisa alla labbarna och extrauppgifterna vid övriga labbtillfällen., men under det sista labbtillfället för varje labb kan bara den labben redovisas. Labben eller projektuppgiften måste vara färdig för att handledarna ska beakta en redovisning, dvs inga delredovisningar accepteras.

Om en redovisning inte godkänns innan sista redovisningstillfället är slut så finns ingen chans att få bonuspoäng tillgodoräknade. I undantagsfall kan redovisad labb kompletteras och redovisas på nytt vid nästa labbtillfälle.

Du skall boka tid för redovisning av extrauppgifterna. Läs på kurshemsidan hur du bokar tid till labbarna.

Labbhäftet innehåller en kvittenssida där handledare kan signera varje redovisad deluppgift. Det är ditt ansvar att få en underskrift från den labbhandledare som godkännt din redovisning. Det är sällsynt men det händer att en handledare missar att rapportera in en redovisning. I så fall får du redovisningen godkänd i efterhand (med eventuell bonus) genom att visa handledarens underskrift på kvittensbladet.

Labbarna och projektuppgiften måste redovisas senast ett år efter kursstart, annars måste labbdelen göras om med de labbar som ingår i den senaste kursomgången. Labbtillfällen efter kursens slut för labbredovisning (dock inte extrauppgifter) kommer att utlysas.

Hederskodex

Grundregeln är att det jobb du gör i kursen (labbar, inlämningsuppgifter, tentor m.m.) ska du göra själv, förutom labbarna som kan göras i tvåmannagrupper. Vid redovisning av labbar ska båda i gruppen kunna redogöra i detalj även för vad labbkompisen skrivit.

Ibland, speciellt när man skriver program, kan det vara nödvändigt att fråga någon annan (en kamrat eller en handledare) om hjälp med att hitta fel. Detta är tillåtet förutsatt att du uppfyller följande villkor.

  • Om du har fått hjälp med mer än bara någon enstaka rad i programmet ska du tala om detta för den labbhandledare som tar redovisningen samt ge ett skriftligt erkännande till den som hjälpte till, lämpligen i form av en kommentarrad överst i programmet, som talar om vem som hjälpt dig och med vad.
  • Du måste förstå hela den färdiga lösningen, även de delar du har fått hjälp med.
Varje annan form av samarbete och utnyttjande av andras lösningar betraktas som ett brott mot hederskodexen och kan bestraffas, t ex genom att du förlorar alla bonuspoäng eller får göra en ny uppgift. Ärendet kan även gå till disciplinnämnden.

Betyg

Under bearbetning För att få godkänt på kursen krävs minst 22 poäng på tentan och att labbarna och projektuppgiften blivit godkända.

Slutbetyget beräknas genom att summera dina poäng på tentan med poängen för extrauppgifter och bonuspoäng. Ditt betyg avläses sedan i tabellen nedan.

Poäng ECTS KTH SU
75A5
65B VG
55C4
45D
3527E3G

Konto vid Nada

För att kunna delta behöver du ett användarkonto på Nadas datorer. Vid första labbtillfället fredag 3/9 kommer vi att försöka ordna det åt er på delphi

Sidansvarig: Alexander Baltatzis <alba@kth.se>
Uppdaterad: 2005-11-14