DD2387 Programsystemkonstruktion med C++ 6,0 hp
Program System Construction Using C++
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++.
Utbildningsnivå
Avancerad nivåKursnivå (A-D)
CHuvudområde
Informationsteknik
Betygsskala
A, B, C, D, E, FX, F
Kurstillfällen/kursomgångar
HT12 cprog för programstuderande
Perioder
HT12 P1 (4,0 hp), P2 (2,0 hp)
Anmälningskod
50185Kursen startar
2012 vecka: 34Kursen slutar
2013 vecka: 1Undervisningsspråk
SvenskaCampus
KTH CampusAntal föreläsningar
Antal övningar
Undervisningstid
DagtidUndervisningsform
NormalAntal platser
Ingen begränsningSchema
Schema (nytt fönster)Kursansvarig
Alexander Baltatzis <alba@kth.se>
Lärare
Alexander Baltatzis <alba@kth.se>
Målgrupp
Alla som uppfyller förkunskapskraven
Del av program
- Civilingenjör och lärare, åk 4, MADA, Villkorligt valfri
- Civilingenjörsutb i datateknik, åk 3, Valfri
- Masterprogram, datalogi, åk 2, CSCA, Villkorligt valfri
- Masterprogram, datalogi, åk 2, CSCB, Villkorligt valfri
- Masterprogram, datalogi, åk 2, CSCE, Villkorligt valfri
- Masterprogram, maskininlärning, åk 2, MAIA, Villkorligt valfri
- Masterprogram, maskininlärning, åk 2, MAIB, Villkorligt valfri
HT13 cprog13 för programstuderande
Perioder
HT13 P1 (4,0 hp), P2 (2,0 hp)
Anmälningskod
51348Kursen startar
2013 vecka: 36Kursen slutar
2014 vecka: 3Undervisningsspråk
SvenskaCampus
KTH CampusAntal föreläsningar
Antal övningar
Undervisningstid
DagtidUndervisningsform
NormalAntal platser
Ingen begränsningSchema
Schema (nytt fönster)Kursansvarig
Alexander Baltatzis <alba@kth.se>
Lärare
Alexander Baltatzis <alba@kth.se>
Målgrupp
Sökbar för studenter på civilingenjörsprogram som har uppnått minst 90 hp varav minst 50 hp från årskurs 1.
Sökbar för studenter på masterprogram.
Del av program
- Civilingenjör och lärare, åk 4, MADA, Villkorligt valfri
- Masterprogram, datalogi, åk 1, CSCB, Villkorligt valfri
- Masterprogram, datalogi, åk 1, CSCE, Villkorligt valfri
- Masterprogram, datalogi, åk 2, CSCA, Villkorligt valfri
- Masterprogram, datalogi, åk 2, CSCB, Villkorligt valfri
- Masterprogram, datalogi, åk 2, CSCE, Villkorligt valfri
- Masterprogram, industriell ekonomi, åk 1, DKIA, Villkorligt valfri
- Masterprogram, maskininlärning, åk 2, MAIA, Villkorligt valfri
- Masterprogram, maskininlärning, åk 2, MAIB, Villkorligt valfri
- Masterprogram, systemteknik och robotik, åk 1, Rekommenderad
- Masterprogram, systemteknik och robotik, åk 2, Rekommenderad
Lärandemål
Efter genomgången kurs ska du kunna
- programmera med dynamisk minnesallokering
- tillämpa standardbiblioteket
- skriva riktig C++-syntax
- skriva testkod
- relatera till avancerad C++-litteratur
- programmera generiskt med typparameterisering
- tillämpa dina förkunskaper om objektorienterad programmering i C++
- modellera ett omfattande objektorienterat projekt
- presentera och motivera en objektorienterad modell
Ambitionen är att så väl som möjligt, givet den avsatta tiden, förbereda er på näringslivets krav på en programmerare. Du som går kursen ska efter genomgången kurs känna att du behärskar alla delar av C++ och att du fått ett självförtroende så att du kan gå in i befintliga C++-projekt i näringslivet och vidareutveckla eller underhålla koden.
Som programmerare på ett företag kan du hamna i en situation där du är alldeles ensam om att fatta dina beslut. Då är det viktigt att du behärskar de mest centrala begreppen. Mitt i kursen ges en tenta som testar de centrala begreppen och även din förmåga att kunna slå upp och förklara svårare begrepp.
C++ är ett innehållsrikt och komplext språk jämfört med t.ex. Java. En del nya programmeringsbegrepp som dynamisk minneshantering och typparameteriserad programmering. Förutom att dina kunskaper testas på tentan så får du tillfälle att öva på dessa begrepp i de första labbarna.
Den sista uppgiften är skriven för att lösas med klassisk objektorientering. Objektorienterad programmering förutsätts du kunna sedan tidigare och dina kunskaper kommer att kompletteras med det som gäller specifikt för objektorientering i C++.
Uppgiften är ditt sätt att visa att du behärskar centrala delar av språket C++. Att du vet hur polymorfism och virtual fungerar, att du kan sätta restriktioner på data med public/private/friends/const och att du kan hantera minnesallokering rätt.
Kursens huvudsakliga innehåll
C++ utveckling från C och Simula till ISO-standard.
Genomgång av alla delar av C++ enligt ISO-standarden, däribland klasser, enkelt och multipelt arv, överlagring, generiska funktioner och klasser, särfall, konstantdeklarationer, strömmar, namnrymder, typekvivalens och typkompatibilitet, preprocessorn.
Programkonstruktion med C++: god programmeringsstil, tillvägagångssätt vid objektorienterad utveckling i C++, tumregler och tips för design och implementation av C++-program, stöd för modularisering och minneshantering, effektivisering av programkoden, vanliga fel och fällor, Unicode och lokalisering, användning av standardbiblioteket, verktyg för testning och felsökning, statisk och dynamisk länkning och namnmangling, portabilitet.
Laborationsdelen (LAB1) består av två laborationer och en projektuppgift. Laborationsdelen förväntas ta ca 100 timmar.
Behörighet
För fristående kursstuderande krävs 90 högskolepoäng varav 45 högskolepoäng inom matematik eller informationsteknik. Dessutom krävs engelska B eller motsvarande.
Rekommenderade förkunskaper
Kunskaper i objektorientering och Javaprogrammering motsvarande DD1361 Progammeringsparadigm, DD2385 Programutvecklingsteknik, DD1344 Grundläggande datalogi, DD1346 Objektorienterad programkonstruktion, DD1332 Objektorienterad programmering eller 2D1343 Datalogi.
Litteratur
Meddelas senast 4 veckor före kursstart på kursens hemsida. Föregående läsår användes J. Lajoie & S. Lippman: C++ primer
Examination
- LAB1 - Laborationsuppgifter, 4,5 hp, betygsskala: P, F
- TEN1 - Skriftlig tentamen, 1,5 hp, betygsskala: P, F
I denna kurs tillämpas skolans hederskodex, se: http://www.kth.se/csc/student/hederskodex.
Krav för slutbetyg
Skriftlig tentamen (TEN1; 1,5 hp).
Laborationsuppgifter (LAB1; 4,5 hp).
Ges av
CSC/Datalogi
Examinator
Alexander Baltatzis <alba@kth.se>
Övrig information
Kursen kan inte kombineras med den utgångna kursen 2D1358 OOPK med C++.
Påbyggnad
DD2455 Teoretiska grunder för objektorientering.
Versionsinformation
Kursplan giltig från och med
HT09.
Examinationsinformation giltig från och med
HT07.
