SC2001 - Algorithm Design and Analysis
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.
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.
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
- Grokking Algorithms 2nd Edition
- this was perfect for getting an initial intuition for algorithms
- Intro to Algo. 3rd Edition or more famously known as CLRS
Final words
overall, i enjoyed this module. have fun and have fun struggling.