Module Reviews: Y1S2

CS2040: Data Structures and Algorithms

Lecturer: Prof. Chong Ket Fah

Assessment:
3% Tutorial Attendance
2% Lab Attendance
15% One Day Assignments (ODA, 10 x 1.5%)
12% Take Home Assignments (THA, 8 x 1.5%)
8% VisuAlgo Quiz (2 x 4%)
20% Midterm
40% Final Exam

Module Difficulty
If you are taking this module, I assume you have already taken CS1010 or its equivalent, hence understands programming in a nutshell.

The whole programming part in this module will be in Java, so regardless of the Java crash course in the first week, I suggest you to learn Java elsewhere too.

Are the lecture contents easy? Yes and no. Yes because you might have seen this before and how it works. No because the questions assessed will be quite tricky given your understanding of the data structures and algorithms taught.

Are the assessments easy? Mostly not really. You've got to spend some time especially on the THAs although the deadline is 2 weeks. Sometimes, you have to be rained on ideas on solving the problems despite the hints given from the lab sessions and maybe the tutorial sessions. Do attend these as your presence will contribute to your grade and these sessions will help you on the ODAs and the THAs.

VisuAlgo quiz is not that hard if you practice over and over again. You can actually find a certain pattern or "hack" on the given questions.

Finally, is the final exam easy? No. As I said, some questions are tricky unless you have seen the insights before, either from PYPs or other platforms.

TLDR, nothing is easy but rest assured that they are indeed doable.

The workload below is measured weekly.
Lectures - 2h
If you have taken CS1231 before, this should be quite an advantage as some contents might be a review of what you've learned in CS1231. The content is understandable to me at least although it is quite exhaustive, including the hard parts which are actually based from intuitive ideas. I agree with the other reviewers that taking this during special term may be a very fast pace, since the whole module is quite exhaustive in 13 weeks, talk about 5/6 weeks.

Prof. Chong explains the material very well. We all loved his catchphrase after finishing his algorithm demonstrations with VisuAlgo, probably his signature phrase. You'll get to hear this if your lecturer is him.

Lab - 2h
Every lab sessions, the TA will explain about the recently covered data structure along with its algorithms, which will be the main topic of the upcoming ODA and THA. As the name suggests, ODAs are only for one day and these lab sessions are a chance for you to figure out how to solve them. Besides ODAs, there are also THAs which you can also consult on. Both of the VisuAlgo quizzes will be held during two of all the lab sessions.

Tutorials - 1h
Just like my review on CS1010S, it's a smaller group discussion which may provide support for those who are shy at asking questions during both lectures and recitaions, so feel free to reach out to them. It's also a very very final recap of the latest lecture content so make sure you understand it before the next lecture (this is my suggestion or else you'll be overwhelmed?)

Personal Opinion
Probably the most useful module for tech interviews, since they mostly cover about data structures and algorithms.

Prof. Chong mainly uses Kattis, so you can actually practice Java there beforehand! Leetcode or Hackerrank can also be an alternative to practice your coding in Java or at least your understanding of the data structures and algorithms mentioned in the module description.

ODAs are generally easier and less complicated than THAs. ODAs are mostly testing your ability to use the existing Java syntaxes that actually represents the currently taught data structure/algorithm. You are not required to build your own data structure for ODAs, unlike some THAs. For those taking during this special term (2021), you can actually compare the difficulties yourselves. Do reach out your TAs if you are still stuck on the last days of submission!

VisuAlgo quiz, as I have mentioned, are not that hard, but are also prone to mistakes. My suggestion is to practice with the hard questions over and over, keep track of the time spent, and recognize the patterns which will be eventually found if you keep retrying! You will be given 2 attempts for each assessment during the lab sessions, so make sure you make no mistake. For myself, there was enough time to recheck, so don't worry much about having no time to finish the quiz too.

Finally, midterm and final exam. It was conducted through LumiNUS and they both go with the same strategy. Practice all the past papers, especially the ones made by the respective lecturers, since it may be the most relevant of all. Spend enough time for reading all of them one by one during recess/reading week, and manage time well during the real exam. Despite being open book, I didn't have really much time checking them as I kept doing the exam questions until the end and rechecked without looking at the cheatsheets again.

One more thing, Java should be only for ODAs and THAs. You are not required to type out the Java code during the exams like CS1010 modules. An English explanation or a pseudocode will work, as long as the explanation is clear and works in optimal time complexity.

Expected grade: A

LSM1303: Animal Behaviour

Lecturer: Prof. N. Sivasothi

Assessment:
50% CAs (starting from individual map exercise, group project, and the final symposium)
10% Lecture Quizzes (3-3-4)
10% Blog CA (yes, we posted a blog!)
30% Final Exam

Module Difficulty
To be fair, I expected myself to be just in the middle because I'm not a life science pro. But I enjoyed the content of the lecture regardless, it is easy to digest although slightly hard to memorize it. The whole thing is open book so it is not really a big deal to me.

The workload below is measured weekly, except for labs.
Lectures - 2h
Definitely by Prof Siva. It was every 8 AM in the morning so I watch the recording instead of the live session most of the time (night owl here!). As I said, content-wise, it is very fun to listen and understand because Prof Siva delivers the lecture in a very casual way. At some point, I might actually consider his lectures as an action story, especially during the NatGeo videos.

Labs - 2h, fortnightly
Very happy with an offline class during the sem. Got to see my groupmates IRL as well. Other than that, it is either a lecture recap or a preparation for the group project. The final lab session was the final symposium itself. It is not the biology lab where you are supposed to do some microscopic research with lab jacket, not like that :)

Group Project
We are to form a group of five before the first lecture. This can be anyone taking the module, maybe your friends are taking it too, no restrictions! This group will last through the whole sem.

The module is about animal behaviour, so as a group we were expected to observe a certain animal behaviour and in a nutshell record and report them. This means there was a field trip organized by ourselves to the wild, i.e. nature reserve (should not be held in captive like the zoo). Perhaps most of the module workload lies on this assessment, because after observing we had to create a group pitch then continue with the final presentation.

Personal Opinion
Had fun with the group project especially with my fellow groupmates who deserve the credit for our final work! I had to take this module because it is one of my faculty requirements. I was discerning between this module and other modules but that time I felt this mod was worth a shot, won't wait until next academic year.

A tip for me is to not mess up your final symposium. The TAs are very helpful especially on giving feedbacks to our draft presentation and about our field trip + its recce.

TLDR, should you take this mod? Why not? Enjoyed the casual lectures, wonderful time with your group mates, easy-to-digest content, learnt new things. This module has left a wonderful impression to me, in addition to being the first offline module I have taken during my NUS life.

Expected grade: B

MA1101R: Linear Algebra I (now MA2001)

Lecturers: Prof. Dilip Raghavan and Prof. Jonathon Teo Yi Han

Assessment:
15% Weekly Quiz (best 10 out of 12)
15% Practice Questions (4x throughout the sem)
20% Midterm
50% Final Exam

Module Difficulty
I do not know if most of the content was covered during JC but it was during my high school. Therefore I did not spend too much time struggling during the first half of the sem. However, during the second half of the semester the difficulty increased noticeably but not dramatically, but still manageable. Overall, as one of the introductory math mods, it is not that much of a killer. Probably the bell curve will do the job for you, whether it is against you or not.

TLDR, an easy module in terms of understanding the content.

The workload below is measured weekly.
Lectures - 2h
The live session was taught to me under Prof. Jonathon.
We had a bunch of prerecorded lectures by Prof. Dilip to watch every week before Prof. Jonathon's live lecture. The prerecorded lectures cover everything from the lecture slides and is OTOT, so the duration may very. Some sped the video into 2x speed or maybe 6x speed, if they are quite pro. The live lectures are pretty much the recap of the webcast lectures with some practice PollEv questions. Democracy is much loved during his lecture so feel free to answer anything.

I think it should be 4 hours but one of the sessions was cancelled so we only had 2h of live lecture every week.

Personally I think Prof. Jon did very well on his lectures. Despite the fast pace that he had warned us before, he always makes sure his students are on track. Therefore, he won't be hesitated to be consulted a lecture part with, such as the common misconceptions and tips on proving questions.

Tutorials - 1h
In this module there is a provided handbook (the same over time, check other reviews) which consists of lots and lots of practice questions. Feel free to consult these during the tutorial sessions. Some of these sessions are actually for all of us to be assessed on the graded practice questions having 3-4 questions every session.

MATLAB
We're allowed to use MATLAB for any of these assessments. The Profs gave us four OTOT lab sessions (every 2-3 weeks) for us to practice on. There wasn't any special MATLAB quiz like the past semesters probably did, but it is probably useful to speed up your matrix operations or to check your final answer.

Personal Opinion
To me, the pressure is actually the bell curve rather than the material, probably because I have learnt the first two out of seven chapters before in high school. If you are taking this as an elective module, I think it is fine as long as you can find the connection between one topic and another, e.g. you will use matrix in the final chapters but matrix was taught on Chapter 2. Otherwise, it is a core module and that means you have to take this, just like me.

Make sure you do well on the quiz although they will pick the best 10 out of 12. You have unlimited attempts to do this so check and review thoroughly, and do not miss the submission deadline.

Final exam was one of the most "okay" exams that I took during the sem. Not too easy yet not too hard as well. The format of the final exam is very likely to be the same over time so do practice from PYPs, anywhere you can find it, including NUSMathSoc (I did contribute a solution there, check it out!).

One more thing, spend enough time for the prerecorded lectures and the textbook if you think you won't do well in this module. Repeating the video or slowing it down will take time for your better understanding. Every question other than the proving question is MATLAB-able, so spend most of the time on proving questions. This can be done by reading all the PYPs and recognizing the secret jutsus applied on them. They usually are the last questions on the final exam or the final part of a question, if not the last question.

Expected grade: A

ST2131: Probability

Lecturers: Prof. Gan Fah Fatt and Prof. Chan Yiu Man

Assessment:
30% Quizzes (10 x 3%)
70% Final Exam

Module Difficulty
The first chapters are digestable and reflects what a probability question should be. After the recess week, this module is basically calculus on crack. I don't know whether this module falls below algebra or combinatorics, probably both but preferably the former one.

The workload below is measured weekly.
Lectures - 4h (2 x 2h)
This was taught to me under Prof. Chan Yiu Man.
To be honest, I expected the pace to be faster but both lecturers somehow managed to cover all 8 chapters in 13 weeks. In addition, during the second lecture of the week, Prof will usually go through the tutorial questions in case the tutors didn't.

Tutorials - 1h
Basically a date, probably for some obvious reasons. But, at least try the questions given beforehand. If you have got any difficulties, then attend those sessions.

Personal Opinion
Each weekly quiz consists of 3 questions, they are way easier than the current week's lecture content but still you have to be meticulous about it as each question is worth 1% of your final grade. I can't say much about the quizzes other than not missing the deadline.

Tutorial questions are mostly doable, they are taken from Ross's handbook (you can Google this or check other reviews if any) and are well-ranged from easy to difficult questions. Fret not, the Profs and tutors will discuss these during the lecture/tutorial sessions.

If this module is too difficult for you, I suggest do practice from other questions in the same handbook but not taken for the tutorial questions. The answers are on Google since the handbook doesn't really provide them.

Kinda messed up during the final exam due to some stupid mistakes but turns out I wasn't the only one so I guess the bell curve saved my life?

Good news, no midterm or graded assignments. Bad news, no midterm or graded assignments too, because you cannot keep track of your own performance among the other students, plus lecture pace and oh my, look at the final exam weightage!

Final Comments (or maybe the TLDR part :v)
Calculus go brr

Expected grade: A