Posted on

NUS Computing Review: CS2040C Data Structures and Algorithms

Grading Scheme: 

4 Home Assessments and VisuAlgo Quizzes (20%)

3 Quizzes (30%)

50% Final (online and invigilated)

Lecturer: Prof Alan, Ho Lun Cheng

Workload: Medium

Difficulty: Hard

Language: C++.

This module teaches basic data structures, like stacks, linked lists, queues, trees, heaps, graphs, and algorithms such as sorting, graph traversals(BFS, DFS), single-source shortest path(SSSP) and minimum spanning tree.

Prof Alan is a great lecturer. He explained the materials clearly, and he would answer all the questions the students had. He also makes the lecture notes much more interesting, making the students keen to read the whole lecture notes (even though the lecture can be as long as 200+ slides). The hardest topics, in my opinion, would be graph algorithms and sssp.

The lab sessions were compulsory. During each session, the tutor will discuss various problems and how to solve them. By the end of the lab session, we need to submit our Visualgo quiz submission (you need to get 7/10 for full marks). There were four home assessments; two weeks were given to finish each of them. The level of the assessments gradually increasing. Understanding the lecture notes suffice for completing the assessments.

There were three online quizzes (the third quiz served as a replacement for PE). The questions were mostly MCQs. There were some fill-in-the-blank questions, and there were some ‘coding’ questions. For the coding question, we need to submit the code via LumiNUS (which is horrible). Hence, before each quiz, you should ready with your visual code. The quizzes were not too difficult. However, you need to be thorough. There were some tricky questions. Careless mistakes will cost you a lot (especially for MCQs).

The final consisted of MCQs for the complexity analysis, coding question, and two fill-in-the-blanks questions. The MCQs and the coding question are similar to previous quizzes and tutorials. The fill-in-the-blanks questions were the hardest. You need to come up with the most efficient algorithm and explained it. To get ready for the final, you can do past papers from 2040C, 1020 and 2020.

Overall, this module is exciting, and there is a lot of knowledge you can get for this module. If you are interested in taking a second major or minor in CS or are interested in taking a CS module, this module (together with 2040/2040S) is a must.

Head over to our Shop for more module content!