This is a practical hands-on course on algorithm engineering for modern parallel computers. You will learn how to design programs that make the best possible use of the computing power of multicore CPUs and GPUs.
A good understanding of computer programming, algorithms and data structures, and a working knowledge of either C or C++ programming language. You will need to complete a prerequisite test before you can start to solve assignments.
Solve programming exercises, correctly and efficiently, and return your solutions on time via GitHub. There are both “recommended exercises” and “challenging exercises”. If you solve all recommended exercises correctly and sufficiently efficiently, you can get up to 77 points. The grade thresholds are:
There are 6 × 1 lectures and 6 × 2 exercises sessions, which you are encouraged to attend. Plenty of online material will be available for self-study. You are also strongly encouraged to take part in the online discussions in our Slack chat — this is the primary support channel for this course.
In addition to recommended exercises, there are also plenty of challenging exercises, worth 35 points in total. The course ends with a contest in which the fastest solutions of the entire course get up to 9 additional points. You can solve challenging exercises instead of recommended exercises, or in addition to recommended exercises. Overall, you can get up to 121 points in total, and the students with the highest number of points will get a special award.