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
  • Learning activities
    Lectures, computer lab and programming tasks.
  • Teaching support
    Course room on Canvas, assistance in the computer lab, public course website (home.bawue.de/~horsch/teaching/inf205/).
  • Syllabus
    • B. Stroustrup, A Tour of C++, 3rd edn., Pearson Education (ISBN 978-0-13-681648-5), 2023.
    • B. Stroustrup, H. Sutter (eds.), C++ Core Guidelines, 2015-2025.
  • Prerequisites
    INF120 or equivalent
  • Assessment method
    Portfolio evaluation. A-F.

    Programming project Karakterregel: Letter grades
  • About use of AI
    K2. Specified use of AI. No generative AI tools whatsoever are permitted when working on submissions that contribute to the grade by portfolio evaluation. For other purposes, they can be used freely.

    Descriptions of AI-category codes.

  • Examiner scheme
    The external examiner approves the portfolio evaluation setup.
  • Mandatory activity
    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.
  • Teaching hours
    24h lectures, 12h computer lab
  • Admission requirements
    REALFAG