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
Teaching support
Prerequisites
Recommended prerequisites
Assessment method
Examiner scheme
Mandatory activity
Teaching hours
Admission requirements