Posted on

NUS Computing Review: CS4231 Parallel and Distributed Algorithms

During the first lecture, the lecturer was basically trying to scare people into not taking the module. Quote from the slide:

“This is a 4000-level module. Not recommended for 1st, 2nd, or 3rd year students – but if you think you can handle this challenging module, you can still take it but you are encouraged to chat with me before enrolling.”

This feels very exaggerated in my opinion. There were plenty of 1st, 2nd, and 3rd years who took this module.

But yes, the module is quite hard.

I originally took this module because I thought the parallel algorithms in the Google Codejam Distributed looked interesting, and I thought taking this module would help me there. I was very very wrong. This module is purely theoretical, and there is no coding involved. This module mostly involves proving things, like whether a scenario is solvable, or whether an algorithm is correct. Nonetheless, the stuff taught in the module is interesting.

The tutorials were right after the lecture, making it effectively a 3 hour lecture.

Haifeng is very good at explaining things, and he is able to explain concepts well even without fancy power point animations. During the lecture, he would pause and let the class ask questions, which would lead to a deeper discussion. After covid happened, all physical lectures were moved to webcast. All the subsequent webcasts were uploaded almost immediately, and we could plan when to watch them at our own time. Due to the lack of an audience, the webcasts move much faster than the physical lectures, as no one could ask any questions.

The grading was very clean: 40% midterm, 60% finals.

Due to covid, both midterms and finals were conducted online. Haifeng would release the word document, and everyone would download it. After the time limit, everyone would upload the completed word doc. There was no proctoring. The questions were hard to Google, as Haifeng purposely chose questions that were not Google-able. He even added some made-up names like “coterie ordering” to waste people’s time if they tried to Google. He said that he might randomly interview people after the exam to determine if they cheated or not.

This module is interesting, but I’m not sure how or where to apply all the theoretical stuff I learnt.

Head over to our Shop for more module content!