course-details-portlet

INFT2503 - C++ for programmers

About

Examination arrangement

Examination arrangement: Home examination
Grade: Passed / Not Passed

Evaluation Weighting Duration Grade deviation Examination aids
Home examination 100/100 4 hours

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

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

Aids: all printed and written aids allowed.

New/Postponed 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 To
IFUD1048 5.0 AUTUMN 2021
IINI4003 5.0 AUTUMN 2021
TDT4102 5.0 AUTUMN 2022
More on the course

No

Facts

Version: 1
Credits:  7.5 SP
Study level: Third-year courses, level III

Coursework

Term no.: 1
Teaching semester:  AUTUMN 2023

Language of instruction: Norwegian

Location: Trondheim

Subject area(s)
  • Engineering
Contact information
Course coordinator:

Department with academic responsibility
Department of Computer Science

Examination

Examination arrangement: Home examination

Term Status code Evaluation Weighting Examination aids Date Time Examination system Room *
Autumn ORD Home examination 100/100

Release
2023-12-14

Submission
2023-12-14


15:00


19:00

INSPERA
Room Building Number of candidates
Spring UTS Home examination 100/100

Release
2024-05-16

Submission
2024-05-16


09:00


13:00

INSPERA
Room Building Number of candidates
  • * The location (room) for a written examination is published 3 days before examination date. If more than one room is listed, you will find your room at Studentweb.
Examination

For more information regarding registration for examination and examination procedures, see "Innsida - Exams"

More on examinations at NTNU