INF205 Resource-Efficient Programming

Credits (ECTS):5

Course responsible:Martin Thomas Horsch

Campus / Online:Taught campus Ås

Teaching language:Norsk

Course frequency:Annually (spring semester, first half)

Nominal workload:125h = 24h lectures + 12h computer lab + 89h self-study including work on programming tasks

Teaching and exam period:The course is offered in the spring parallel. The course has teaching/assessment throughout the first half of the spring parallel.

About this course

This course introduces students with programming experience in high-level programming languages (e.g., Python) to programming in a compiled programming language with explicit memory management, with a focus on efficient use of computational resources (CPU time and memory). Specific topics are:

  • C++ as a modern programming language
  • Compiling and building projects
  • Pointers, memory allocation and deallocation
  • Working with the C++ Standard Library
  • Generic programming with templates
  • Implementing containers from first principles
  • Programming and sustainability
  • Interfacing with ROS (e.g., for embedded systems)

Learning outcome

After completing the course you will be able to

  • implement algorithms in modern C++
  • manage memory safely
  • use the C++ Standard Library and third-party libraries
  • implement data types from first principles
  • develop code suitable for embedded systems
  • assess programs and their use in terms of sustainability metrics
  • create interfaces allowing the code to interact with other software
  • Lectures, computer lab and programming tasks.
  • Course room on Canvas, assistance in the computer lab, public course website (home.bawue.de/~horsch/teaching/inf205/).
  • INF120 or equivalent
  • Portfolio evaluation. A-F.

    Programming project

    Grading: Letter grades

  • The examiner(s) carry/carries out the portfolio evaluation.
  • In excess of that which counts toward the portfolio evaluation, each student shall present on at least one of the tutorial problems within the tutorial sessions.
  • 24h lectures, 12h computer lab
  • REALFAG