Course code INF205

INF205 Resource-efficient programming

Norsk emneinformasjon

Search for other courses here

Showing course contents for the educational year 2022 - 2023 .

Course responsible: Martin Thomas Horsch
ECTS credits: 5
Faculty: Faculty of Science and Technology
Teaching language: EN
(NO=norsk, EN=Engelsk)
Teaching exam periods:
The course starts in the autumn parallel. The course has evaluation in the autumn parallel.
Course frequency: Annually
First time: Study year 2022-2023
Course contents:

This course introduces students with considerable programming experience in high-level programming languages such as Python to programming in a compiled programming language with explicit memory management, with a focus on efficient use of memory and compute resources. Specific topics are:

  • Modern C++ syntax and semantics
  • Compiling and building projects
  • Pointers, memory allocation and deallocation
  • Working with the C++ Standard Library
  • Generic programming with templates
  • Implementing containers from first principles
  • Message passing and interprocess communication
  • Requirements of embedded programming
  • Optimization
Learning outcome:

After completing the course you will be able to

  • implement solutions in modern C++
  • manage memory correctly in larger projects
  • make use of capabilities provided by the C++ Standard Library and third-party libraries
  • implement data types from "first principles"
  • write code suitable for embedded systems
  • create interfaces allowing your code to interact with other software
Learning activities:
Lectures, computer lab and programming tasks.
Teaching support:
Course room on Canvas, online discussion forum, assistance in the computer lab.
Will be announced at the beginning of the course.
INF120, INF200
Recommended prerequisites:
Mandatory activity:
Mandatory programming exercises. Details will be given at the beginning of the course.
Evaluation based on programming project. A-F.
Nominal workload:
125h = 26h lectures + 26h computer lab +73h self study including work on programming tasks
Entrance requirements:
Special requirements in science
Type of course:
26h lectures, 26h computer lab
An external examiner participates together with the internal examiner in the design of the exam assignments and the examiner's guide. The external examiner checks the internal examiner's assessment of a random selection of candidates as a calibration at certain intervals in accordance with the department's guidelines for grading.
Examination details: Programming project: Letter grades