TDIU04 |
Programmering i C++, standardbibilotek, 2,5 p
/
4 hp
/Programming with C++ Standard Library/
För:
DI
EL
|
|
Prel. schemalagd
tid: 48
Rek. självstudietid: 59
|
|
Utbildningsområde: Teknik
Ämnesgrupp: Datateknik Nivå (A-D):B
Huvudområde: Datateknik Nivå (G1,G2,A): G1
|
|
Mål:
IUAE-matris
Kursens ska ge ge kunskaper om och färdigheter i att använda standardbiblioteket för programspråket C++. Enkla klasser, undantag (exceptions), operatoröverlagring och mallar (templates) introduceras. Tyngdpunkten ligger på programmering med hjälp av standardbiblioteketskomponenter, speciellt containrar, iteratorer, algoritmer, funktionsobjekt och lambdauttryck samt tillhörande hjälpklasser, som exempelvis klassen pair, och hjälpfunktioner, som exempelvis funktionen make_pair. Efter genomgången kurs ska studenten:
- ha kunskaper om hur standardbibliotekets containrar, iteratorer, algoritmer och funktionsobjekt är konstruerade, vilka operationer som kan användas på dem samt hur de kan kombineras.
- kunna konstruera och använda lambdauttryck, som alternativ till enkla funktionsobjekt.
- kunna lösa databearbetningsproblem med hjälp av standardbibliotekets containrar, iteratorer, algoritmer och funktionsobjekt och med lambdauttryck samt hjälpklasser och hjälpfunktioner.
- själv kunna konstruera enkla funktionsobjektsklasser, även som mallar, och använda sådana tillsammans med standardbiblioteksalgoritmer.
|
|
Förkunskaper: (gäller studerande antagna till program som kursen ges inom, se 'För:' ovan) Grundkurs i programmering i C++. Detta avser grundläggande problemlösnings- och programutvecklingsmetodik, procedurell programmering i C++ (variabler, uttryck, satser, funktioner), in-och utmatning med strömmar, standardtypen string och sekvensiella standardcontainrar som exempelvis vector.
OBS! Tillträdeskrav för icke programstudenter omfattar vanligen också tillträdeskrav för programmet och ev. tröskelkrav för progression inom programmet, eller motsvarande.
|
|
Påbyggnadskurser Objektorienterad programmering, datastrukturer och algoritmer.
|
|
Organisation: Kursen består av föreläsningar, lektioner och laborationer.
|
|
Kursinnehåll: Föreläsningarna, lektioner och laborationer behandlar enkla klasser, containrar, iteratorer, algoritmer, funktionsobjekt, tillhörande hjälklasser och hjälpfunktioner, lambdauttryck, undantag och enkla mallar.
- Sekventiella containrar (array, deque, forward_list, list och vector).
- Adaptrar (priority_queue, queue och stack).
- Ordnade associativa containrar (map, multimap, set och multiset). Hjälpklassen pair och hjälpfunktionen make_pair.
- Containerteratorer. Iteratorkategorierna input, output, forward, bidirectional och random access.
- Strömiteratorer (istream_iterator, ostream_iterator).
- Insättare (back_insert_iterator, front_insert_iterator, insert_iterator, hjälpfunktionerna back_inserter, front_inserter, inserter).
- Algoritmer (till exempel för att stega igenom containrar för att söka, räkna, kopiera, byta ut, modifiera, ta bort eller ersätta elerment). Sökning och sortering.
- Funktionsobjekt. Grundläggande, fördefinierade funktionsobjektsklasser (aritmetiska, logiska, jämförare, negerare).
- Egendefinierade funktionsobjekt. Göra om egna funktionsobjekt till mallar.
- Lambdauttryck.
- Operatoröverlagring.
- Undantag. Standardundantagen.
|
|
Kurslitteratur: C++ Primer 5/E, Stanley B. Lippman, Josée Lajoie, Barbara E. Moo, Addison-Wesley, 2012. Traditionell lärobok. (förslag)
Material på kursens webbsidor (för lektioner, laborationer, mm).
|
|
Examination: |
DAT1
LAB1
|
En datortentamen (U,3,4,5). Programmeringsuppgifter (U, G). |
2 hp 2 hp
|
|
|
Programmeringsuppgifterna övar och prövar studentens kunskaper om och färdigheter i att använda standardbiblioteket för C++ samt att konstruera egna komponenter (funktionsobjektsklasser, lambdauttryck) för användning i kombination med standardbibliotekskomponenter.
Datortentamen prövar studentens förmåga att lösa problem, att använda centrala delar av standardbiblioteket för C++ och att konstruera egna komponenter för användning tillsammans med standardbibliotekskomponenter.
|
|