Informationsteknik – Programmering i C++

Kurskod I340106
Studiepoäng 2
Lärandemål

Efter avslutad kurs ska den studerande känna till viktiga delar i C++, samt kunna använda dessa modernt och effektivt.
För att uppfylla målet skall den studerande kunna
– redogöra för minnesmodellen i C++
– förklara begreppet RAII och hur det tillämpas i modern C++
– redogöra för de speciella medlemsfunktionerna
– förklara hur typdeduktion fungerar i C++
– implementera funktioner och klasser med templates
– använda C++ Standard Library containrar, iteratorer och parallella algoritmer på ett modernt och effektivt sätt
– förklara innebörden av const och constexpr, och använda dessa
– förklara och använda exceptions i C++ och noexcept
– implementera parallellprogrammering i C++, både med trådar/ mutexes och med async/ futures

After completed course, the student shall know important parts of C++, and be able to use them in a modern and efficient manner.

To achieve the goal, the student shall be able to
– describe the C++ memory model
– explain the RAII concept and how it is applied in modern C++
– describe the special member functions
– explain how type deduction works in C++
– implement functions and classes with templates
– use C++ Standard Library containers, iterators and parallel algoritms in a modern and efficient manner
– explain the meaning of const and constexpr, and use them
– explain and use exceptions in C++ and noexcept
– implement parallel programing in C++, with treads/ mutexes and with async/ futures

Innehåll

– Minneshantering i C++, stack/ heap.
– lvalue, rvalue och forwarding referenser, move, forward
– RAII, smarta pekare
– Speciella medlemsfunktioner i C++. Vikten av att känna till vilka konstruktorer och operatorer kompilatorn genererar automatiskt, fallgropar och best practice.
– templates
– const, constexpr, constexpr if
– C++ Standard Library containrar, iteratorer, parallella algoritmer, auto, lambda, string_view, optional, variant, any
– structured bindings
– Pimpl-idiomet
– exceptions, noexcept
– threads, mutexes, atomic
– futures, promises

– Memory management in C++, stack/ heap.
– lvalue, rvalue and forwarding referenser, move, forward
– RAII, smart pointers
– Special member functions in C++. The importance of knowing the constructors and operators the compiler generates automatically, pitfalls and best practice.
– templates
– const, constexpr, constexpr if
– C++ Standard Library containers, iterators, parallel algorithms, auto, lambda, string_view, optional, variant, any
– structured bindings
– the Pimpl-idiom
– exceptions, noexcept
– threads, mutexes, atomic
– futures, promises

Närvaro

Obligatorisk närvaro vid laborationer samt vid genomgång av inlämningsuppgift.

Compulsory attendance at laborations and assignment review

Vitsordsskala

VG, G (för betygssättning)

Ämnesområde

Informationsteknik

Utbildningsprogram

Utbildningsprogrammet för informationsteknik

Examination

Godkända laborationer, inlämningsuppgift och tentamen.

Passed laboration, assignment and written exam.

Kurslitteratur och studiematerial

Meyers, S. (2014). Effective modern C++: 42 specific ways to improve your use of C++11 and C++14. Sebastopol, CA: O’Reilly Media. 315s.

En grundläggande bok i C++ rekommenderas som komplement, exempelvis
Lippman, S. B., Lajoie J. & Moo, B.E. (2013). C++ primer. 5. ed. Upper Sadle River, N.J.: Addison-Wesley. (938 s)
eller
Deitel, P.J. & Deitel, H.M. (2013). C++ how to Program. 9. ed. Upper Saddle River, N.J.: Prentice-Hall.1080 s.
Även äldre upplagor med C++98 fungerar i kombination med Meyers.

Meyers, S, (2014). Effective modern C++ :42 specific ways to improve your use of C++11 and C++14.Sebastopol,Calif.: O’Reilly Media.

A basic C++ book is recommended as a complement, for example
Lippman S. B., Lajoie J, Moo B.E., (2012). C++ Primer Fifth Edition: Addison Wesley. 938 s
or
Deitel H.M., Deitel P.J. (2016). C++ How to Program, Tenth Edition. Upper Saddle River, N.J.: Prentice-Hall. 1080 s
Older editions with C++98 also work in combination with Meyers.

Förkunskaper

Programmering 2, Objektorienterad programmering och design 1 och 2.

Dokumentering

Godkänt vitsord noteras i studiekort. Vid validering används vitsordet Godkänd.

Passed grade will be noted in the study card

Arbetsformer

Föreläsningar, laborationer och inlämningsuppgift.

Lectures, laborations and assignment.

Utskriven 27 juni 2019 kl 06:12