Programming Parallel Computers 2018


Course description

This is the web page of the course CS-E4580 Programming Parallel Computers, lectured in spring 2018 at the Department of Computer Science, Aalto University.

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.

Prerequisites & registration

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.

Please use Oodi to register for the course, then follow the instructions for the prerequisite test.

Required parts & grading

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:

Optional parts

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.