Energy Efficient Programming

Course
  • Programming

Energy Efficient Programming

Efficiency in computer science often refers to the runtime or memory usage, that a certain algorithm needs to produce an output. However, efficiency can also describe the amount of energy, that is consumed by the hardware during the runtime of an algorithm.

This course explains the relevant computer architecture components, as well as different coding techniques, that allow computer scientists to design and program energy efficient algorithms. Participants will learn how intrinsic functions work and how they can be applied to an algorithm to reduce its energy consumption. In addition, the course presents a hands-on approach to measuring energy consumption of programs using the Intel VTune Profiler tool. In contrast to the existing clean-IT courses on openHPI, this course provides a deeper dive into specific, energy efficient, architecture coding techniques.

Offered by Prof. Dr. Vesselin Iossifov, Nils König | Last updated on Aug 31, 2026 | 1682 enrollments

  • Intermediate
  • EN
  • Certificate
Course information

In response to the growing energy consumption of software programs and digital technologies, energy efficiency is on the rise as a key metric for software development. However, computer scientists and developers often lack concrete, applicable tools, that help reduce an algorithm's energy consumption.

This course is aimed at students, researchers, or developers that work or study in computer science or a related field and want to learn more about energy efficient coding techniques.

In this course, you will learn:

  • The basic concepts of computer functionality and architecture, such as clock cycles, parallelism, execution pipelines, and superscalar architectures.
  • How to use coding techniques in C and assembly, to significantly minimize the number of instructions executed by the CPU
  • About intrinsics and macros, and how you can apply them to any algorithm to increase energy efficiency

The course consists of educational videos, multiple choice tests, and multiple, detailed coding examples. Depending on your prior knowledge and engagement with the coding material, you will spend 5-10 hours per week.

Prequisite knowledge for this course is fundamental programming experience in C, as well as basic knowledge about computer architecture concepts and functionality. Experience with an IDE (preferably Microsoft Visual Studio) is recommended to evaluate the programming examples.

You must achieve at least 50% of the points for a record of achievement. By accessing at least 50% of the resources, you will already receive a confirmation of participation.

Attention: This course is currently in self-study mode, in which you do not have access to graded assignments/exams. Therefore, we can only issue you a certificate of participation.

Learning goals
  • Understand the basic concepts of computer functionality and architecture
  • Learn how to use coding techniques in C and assembly, to significantly minimize the number of instructions executed by the CPU
  • Learn about intrinsics and macros, and how to apply them to any algorithm to increase its energy efficiency
Requirements for Proofs of Achievement
  • Confirmation of Participation: You will automatically receive a free Confirmation of Participation once you have completed at least 50% of the content.
  • Certificate: You will receive your official openHPI Certificate by earning at least 50% of the maximum number of points from all graded assignments.

Find out more on our page for Proofs of Achievement and Guidelines.

Our teachers

Watch the teaser for this online course

An error occurred while loading the video player, or it takes a long time to initialize. You can try clearing your browser cache. Please try again later and contact the helpdesk if the problem persists.