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.
Syllabus:
Will be announced at the beginning of the course.
Prerequisites:
INF120, INF200
Recommended prerequisites:
TEL211
Mandatory activity:
Mandatory programming exercises. Details will be given at the beginning of the course.
Assessment:
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
Examiner:
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