INFT2503
C++ for programmers
Autumn
Trondheim
Norwegian
About this course
Content
System programming language in Unix like systems such as Linux and MacOS, with focus on C++ in particular. C++ will be compared to other relevant system programming languages such as C and Rust.
System programming languages are programming languages specifically designed to be resource efficient, with better memory utilisation, are more energy efficient and result in faster runtime than other programming languages such as Java, Python and JavaScript.
Content:
- Resource management in system programming languages
- More about object-oriented programming, such as struct in C, multiple inheritance in C++ and traits in Rust
- Error handling
- Containers
- Functional algorithms
- Constant expressions and template meta-programming
- Parallelisation and asynchronous programming
- Operator overloading
Learning outcomes
Knowledge
The candidate can give an account of:
- resource acquisition is initialisation (RAII)
- pointers, smart pointers and references
- object-oriented programming in system programming languages
- various forms of error handling
- constant expressions, template meta-programming and operator overloading
- different types of containers and functional algorithms
- advantages and disadvantages of parallelisation and asynchronous programming
Skills
The candidate can:
- create stable and resource efficient software and software libraries in C++
- read and understand C++ source code written by others
- use 3rd party libraries
General competence
The candidate is better able to:
- make professionally justified choice of programming language for given tasks
- contribute to the development of software and software libraries written in a system programming language
- acquire new knowledge in a field in continuous development
Teaching methods
Online study. Lessons and exercises with feedback.