Informationsteknik – Programmering i C++

Course code I340106
ECTS Credits 2
Goals

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

Contents

– 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

Attendance

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

Compulsory attendance at laborations and assignment review

Grading scale name

VG, G (för betygssättning)

Vocational education and training

Informationsteknik

Degree program

Utbildningsprogrammet för informationsteknik

Descriptive assessment

Godkända laborationer, inlämningsuppgift och tentamen.

Passed laboration, assignment and written exam.

Material

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.

Prerequisite

Programmering 2, Objektorienterad programmering och design 1 och 2.

Documentation

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

Passed grade will be noted in the study card

Teaching methods

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

Lectures, laborations and assignment.

Utskriven 09 maj 2025 kl 16:56