A really interesting course that covers some of the more current algorithms. We didn't really go over parallel algorithms (even though it's in the course name). The course content changes every year, but for us we did some basic review of COMP3821 stuff that was cut from the course since Aleks stopped teaching it (skip lists, Karger's min-cut algorithm, etc.), Google PageRank, some voting aggregation and recommender systems, and some applications of discrete Fourier transforms and similar. If you've done generalised Fourier series in
MATH2221 then most of the DFT stuff should be familiar. Some of the proofs are quite maths-heavy, though Aleks is really good at explaining the concepts regardless. Be warned though, you'll be expected to understand how the proof and concepts work, so if you don't have a good relationship with maths you might want to reconsider. The project is probably the main part of this course, and the lack of marking criteria is kind of annoying, but Aleks told us that he'd basically accept anything as long as it related to algorithms. Always best to check with him before you start though. The content isn't very difficult if you put in the time to understand it, but since the exams were open book, you're tested on your understanding more than your ability to regurgitate the content. I much preferred this personally, but it meant that a few trickier questions could be snuck into the exam testing how you'd extend some of the stuff we learnt to new or harder scenarios. Regardless, it was a very fun course, and I'd recommend it to anyone thinking of going into data science or theoretical CS. It goes over a lot of different algorithms and their uses, without sacrificing depth of study. Also, Aleks is great, love him.