course-details-portlet

INFT2503

C++ for programmers

Choose study year
Credits 7.5
Level Third-year courses, level III
Course start Autumn 2025
Duration 1 semester
Language of instruction Norwegian
Location Trondheim
Examination arrangement Home examination

About

About the course

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 outcome

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

Learning methods and activities

Online study. Lessons and exercises with feedback.

Compulsory assignments

  • Excercises

Further on evaluation

Compulsory assignments: 8 exercises are required to be approved in order to sit for the exam.

Re-sit exam: May/June

In the event of a re-sit examination, the written examination may be changed to an oral examination.

Course materials

Lessons are published on the learning platform, and the recommended textbook is given at the start of the study.

Credit reductions

Course code Reduction From
IFUD1048 5 sp Autumn 2021
IINI4003 5 sp Autumn 2021
TDT4102 3.7 sp Autumn 2025
This course has academic overlap with the courses in the table above. If you take overlapping courses, you will receive a credit reduction in the course where you have the lowest grade. If the grades are the same, the reduction will be applied to the course completed most recently.

Subject areas

  • Engineering

Contact information

Course coordinator

Department with academic responsibility

Department of Computer Science