Back to Reviews

SC2001 - Algorithm Design and Analysis

module SC2001 AY24/25 Sem 1

Published: December 24, 2025

Last Updated: February 10, 2025

Overview

we learnt about dp, time complexity analysis techniques, greedy, string matching and other graph algorithms.

The Good

the first half lecture by Prof Evan was really a breath of fresh air. he was actually explaining things and not just reading off the slides. really loved his energy as well. however, while his slides were great for presentation, it wasn’t very helpful for studying. his last lecture really stuck with me because he touched on AI and its relevance in the computing field, reminding us to get used to struggling and not having answers.

💬 “AI is only good for problems that have already been solved. the longer you spend on something, the more chance you’ll have at being better than AI at it.” ~ Prof Evan (i think)

Prof Huang also did a great job for the second half, clear explanations. the pace is slower but the content is harder compared to the first part, for me, since im not really a math person.

The Bad

there were some unstandardised teaching of algorithms with more than 1 implementation, leading to different intermediate workings. it was prim’s if i remember correctly. ultimately, my tutor suggested to use the implementation in the supplementary slides.

i also found one question in the finals (AY24/25 Sem 1) to be quite ridiculous, the kruskal’s table of connected components. it was more of a definition question than a critical thinking one, the definition that none of the lecturers/tutors emphasized. pretty sure i got it wrong. what a lame way to test knowledge. (im just salty lol)

Key Takeaways

supplementary slides are important! make sure you master their contents.

know also the nitty-gritty details of the definitions of data structures/algorithms, otherwise you’ll be caught off guard by something as simple as the ridiculous final exam question i mentioned above.

string matching in part 2 took up the majority of my finals revision, so make sure you got a good grip of all the other contents before starting on this topic. this is so that you can focus solely on string matching. AI sucks at string matching btw.

🔥 i cannot emphasise this enough but you need to practice!

a lot of people find dp difficult to grasp at first and that’s because IT IS. i struggled with it for the longest time. but i promise you the more you struggle through problems on your own, the better it will get. the keyword here is STRUGGLE. don’t rely on AI to give you immediate answers.

the dp question in the finals was literally a leetcode medium problem.

Resources

  • LeetCode (dynamic programming)

Textbooks I used

Final words

overall, i enjoyed this module. have fun and have fun struggling.