185.190 VU Efficient Programs


Mandatory elective course in the Curricula "Computational Science and Engineering" (Module "Computational Informatics")), "Data Science" (Module "Big Data and High Performance Computing - Core"), "Logic and Computation" (Module "Programming Languages and Verification") "Software Engineering and Internet Computing" (Module "Computersprachen und Programmierung"), as either "VU Efficient Programs" or "VU Effiziente Programme". It has 2 hours (SWS) and 3 ECTS.


Registration: TISS (follow the link for the registration period).

Lecture time: Mon, 15:15-17:00, starting on 2023-10-02, EI 1 (Old EI, Gusshausstrasse 25, 2nd floor).

After the lecture part, the students will hold the presentations of the exercise part at the same time, starting at either 2023-12-18 or at 2024-01-08. For this part attendance is required.


You may also be interested in Stackbasierte Sprachen, held in German on Wednesday 16:15-18:00 in EI 6.


Lectures in German from the 2020W and 2021W semesters are available online. Note that the lecture changes over time, so if you follow only these videos, you will miss some of the current content; you will also miss the option of asking questions. The videos may still be useful if you have an easier time with German, or if you miss a lecture.

Learning outcomes

After successful completion of the course, students are able to determine whether a program is sufficiently efficient, to find inefficient parts, and to make them more efficient.


Is efficiency needed? Kinds of efficiency. The effect of specification on efficiency. Design for efficiency. The role of efficient algorithms (constant factors, logarithmic factors). Hardware characteristics (cache, block sizes, registers, bandwidth, latency). Microoptimizations. Tools.


A group of 3-5 students optimizes a program and presents the result. The grade is based on the presentation. The presentation should point out which optimization step worked how well, compare this to your expectations, and ideally also have an explanation of why an optimization step worked better or worse than expected.

While algorithmic optimizations are not the topic of this course, they are allowed (and, for the given exercise program, usually expected). One way to deal with that is to write the code resulting from an algorithmic optimization in a straightforward way, and then performing additional non-algorithmic optization steps that you can evaluate and present.

You can optimize a program of your choice. If you have no program that you want to optimize, an exercise program will become available sometime in November. For making the performance results comparable between groups, you should measure it on g0.complang.tuwien.ac.at. You will get an account on that machine once registration ends.

Given Exercise Program

Results Directory

If you want to publish your work (not graded), it is probably best to do that on platforms like Sourcehut or Github.

It would be nice if you also create a short page with a link to your work or a directory with your work in /nfs/unsafe/httpd/ftp/pub/anton/lvas/effizienz-abgaben/2023w/ (on the g0). This directory can be seen here in the WWW.

Results from earlier years



Anton Ertl