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.
All information here is preliminary; please check this web page again before the course starts for the latest information. Due to the coronavirus situation, all lectures will be arranged online this year, and it will be possible to take part in all course activities remotely.
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 — the test opens on 6 April 2020, and closes on 17 April 2020, at noon.
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 exercise 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.