INF205 Resource-efficient programming
Credits (ECTS):5
Course responsible:Martin Thomas Horsch
Campus / Online:Taught campus Ås
Teaching language:Norsk
Course frequency:Annually
Nominal workload:125h = 26h lectures + 26h computer lab + 73h self-study including work on programming tasks
Teaching and exam period:The course starts in the spring parallel. The course has teaching/assessment in 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:
- 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
- Interprocess communication (MPI)
- Programming and sustainability
- Responsible use of high-performance computing infrastructure
- Interfacing with ROS (e.g., for embedded systems)
Learning outcome
After completing the course you will be able to
- implement solutions in modern C++
- manage memory safely
- make use of capabilities provided by the C++ Standard Library and third-party libraries
- implement data types from "first principles"
- assess programs and their use in terms of sustainability metrics
- write code suitable for embedded systems and high-performance computing
- create interfaces allowing your 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, INF200
- Evaluation based on programming project. A-F.
- An external examiner participates together with the internal examiner in the design of the project assignment and the evaluation guidelines.
- Programming-related exercises and mandatory reports on the progress of the programming project. Details will be given at the beginning of the course.
- 26h lectures, 26h computer lab
- REALFAG