YoVDO

Energy Efficient Programming

Offered By: openHPI

Tags

Computer Science Courses C Programming Courses Assembly Language Courses Macros Courses Algorithm Optimization Courses CPU Architecture Courses

Course Description

Overview

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.


Syllabus

  • Intro: In this section, you'll get to know the course lecturer, Prof. Vesselin Iossifov. We'll also introduce the concepts and contents, that are used and covered in this course.
  • Week 1 - Motivation, Concepts, and Architecture: The first week of the course presents all the basic knowledge you need to know, including: The motivation for energy efficient programming, computer functionality and architecture basics, and an introduction into x86-programming.
  • Week 2 - Coding techniques for energy efficient programming: The second week dives deep into various coding techniques, that allow energy efficient programming of superscalar CPUs, including: Coding techniques in C and Assembler, as well as Streaming Instruction Extensions (SSE) and vector intrinsics.

Taught by

Prof. Dr. Vesselin Iossifov

Related Courses

Intro to Binary Exploitation
HTB Academy via Independent
Malware Analysis: Assembly Basics
Pluralsight
Getting Started with Reverse Engineering
Pluralsight
Mastering x86-64 Real Assembly Language from Zero | ASM+
Udemy
Mastering Reverse Engineering & Malware Analysis | REMASM+
Udemy