Skip to content
Main menu hidden.

Performance Programming, 7.5 Credits

Swedish name: Prestandaprogrammering

This syllabus is valid: 2023-06-26 and until further notice

Course code: 5DV237

Credit points: 7.5

Education level: First cycle

Main Field of Study and progress level: Computing Science: First cycle, has at least 60 credits in first-cycle course/s as entry requirements

Grading scale: TH teknisk betygsskala

Responsible department: Department of Computing Science

Established by: Faculty Board of Science and Technology, 2023-03-17


Software consumes resources such as time, memory, energy, etc. when running. Software developers need to aware of the resource usage of the systems they develop and take steps to make their systems more efficient. This requires an understanding of the underlying hardware, and, more importantly, a desire and ability to apply that knowledge when designing, implementing, and analyzing software systems. The purpose of this course is to provide students with the knowledge, abilities, and attitudes they need to become proficient developers of efficient software systems that run faster, require less memory, and consume less energy. The fundamental concepts and ideas developed during the course are illustrated and practiced using the C++ programming language. While no prior experience with C++ is assumed, students are expected to have enough experience with imperative and object-oriented programming languages (e.g., C and Java) to be able to quickly and independently learn the basics of the language using the textbook and other resources.

Expected learning outcomes

Knowledge and understanding
After completing the course, the student should be able to:

  • (FSR 1) describe performance-related features of processors (e.g., cores, pipelines, vector instructions, frequency scaling, hardware threads) and explain their impact on performance programming;
  • (FSR 2) describe performance-related features of memory management in hardware and software (e.g., memory hierarchies, virtual memory, dynamic memory allocation) and explain their impact on performance programming;
  • (FSR 3) explain concepts related to performance programming and analysis (e.g., latency, bandwidth, performance, scalability, energy efficiency).

Competence and skills
After completing the course, the student should be able to:

  • (FSR 4) evaluate the efficiency of software with respect to time, memory, and energy using a combination of analytical and empirical methods;
  • (FSR 5) use empirical methods in combination with algorithm analysis to identify plausible causes of performance-related issues in software and document the findings in writing;
  • (FSR 6) write high-performant and maintainable code in the C++ programming language and discuss such aspects in code reviews.

Judgement and approach
After completing the course, the student should be able to:

  • (FSR 7) judge if and how a particular performance optimization approach is appropriate in a given context by estimating the costs and benefits ahead of time;
  • (FSR 8) study, summarize, and orally discuss scientific or technical articles on topics related to performance programming.

Required Knowledge

At least 60 ECTS Computing Science. At least 7.5 ECTS programming; 7.5 ECTS data structures and algorithms; 7.5 ECTS object-oriented programming; 7.5 ECTS systems programming; 15 ECTS mathematics including 7.5 ECTS discrete mathematics.

Form of instruction

The instruction consists of lectures, seminars, and practical exercises. In addition to participating in scheduled activities, students are expected to engage in self-study of the course material.

Examination modes

The examination consists of a written exam in halls (FSR 1, 2, 3), written assignments (FSR 4, 5, 6), and seminars including code reviews and oral presentations (FSR 6, 7, 8). The grade scale is Fail (U), Pass (3), Pass with Merit (4), or Pass with Distinction (5).

Adapted examination
The examiner can decide to deviate from the specified forms of examination. Individual adaptation of the examination shall be considered based on the needs of the student. The examination is adapted within the constraints of the expected learning outcomes. A student that needs adapted examination shall no later than 10 days before the examination request adaptation from the Department of Computing Science. The examiner makes a decision of adapted examination and the student is notified.

Other regulations

If the syllabus has expired or the course has been discontinued, a student who at some point registered for the course is guaranteed at least three examinations (including the regular examination) according to this syllabus for a maximum period of two years from the syllabus expiring or the course being discontinued.


Valid from: 2023 week 26

C++ High Performance - Second Edition
Bjorn Andrist , Ben Garney , Viktor Sehr
2020 :