Module Reviews: Y1S1

CS1010S: Programming Methodology

Lecturers: Prof. Leong Wai Kay and Prof. Ben Leong

Assessment:
25% Coursemology
5% Participation (Tutorials and Forums)
15% Midterms
15% Practical Exam
40% Final Exam

Overview
This module teaches the programming methodology with Python starting from the primitives (data types and simple Python operators), functional abstractions, recursion, higher-order functions, data abstraction (ADT), sequences (tuples and lists), searching, sorting, dictionaries, object-oriented programming (class), memoization, dynamic programming, exception handling, and data visualization (using matplotlib and some other mentioned packages).

Module Difficulty
For those who are new into programming, you might want to spend much more time on getting familiar with the Python environment. But don't worry, the CS1010S tutors are there to help you, also possibly your fellow peers through the Coursemology forum, which is the platform where CS1010S is using for submitting missions. I also suggest to look for more external references which other reviews have provided (I suppose so).

The workload below is measured weekly.
Lectures - 2h
This was taught to me under Prof. Leong Wai Kay.
I feel that some lectures have an extremely high pace due to the content quantity but mostly they're fine.

If you missed anything from the lecture, the recording will be posted on Coursemology, so nothing to worry about! Feel free to adjust your pace at your own will.
Plus, you can also type in some reflections from each lecture in the Coursemology forum which may help you for both the Participation grade and the Coursemology grade. (do once in a week and you might gain 4/5 participation grade)

Recitations - 1h
Basically a recap of what's taught in the lecture. From here I learn something new from Prof. Ben Leong which I didn't realize during the lecture.

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

Missions (and Trainings)
It may seem to be more coding but it's actually more thinking and less coding. Therefore it may take a while to finish a single missions. Take most of your time for this and possibly ponder over the tasks in the missions.

Try to complete your mission as early as possible as they might come in a faster pace as it goes to the end of the module. Otherwise, procrastination might take the wheel.

From my personal experience, the missions were easy at the start, then the difficulty reached its peak at the middle of the semester, then it goes down again to somewhat doable. For the hardest mission, you might spent 4h-3d (depends on you) and for the easiest it may take 1h-1d.

The trainings section consists of Lecture trainings which is like a pre-test for the lecture content, Tutorial trainings which is the main questions discussed during tutorial (feel free to ask more than this during tutorial) and Extra Practice which is basically for those who have spare time for it or those who consider missions as a piece of rainbow cake, full of journey but easy for them, or for those who are aiming for the OCD badge/achievement, hearsay one of the tasks of Hercules in CS1010S.

Personal Opinion
The heart of CS1010S is the gamification of this module through Coursemology, which gave me incentives to do the components of this module really well, such as the missions and the trainings such as extra practices.

Make sure you reach level 50 in Coursemology because almost everyone will get it. Also, this module is not bell-curved, so do your best and do not get intimated by competitive vibes.

Final Comments (or maybe the TLDR part :v)
All in all, I think every step of my journey in CS1010S is worth the time, and I would recommend you guys to experience the same. CS1010S profs and tutors are trying their very best to help you, it's your turn to do your best effort too. Consistent and reaching out is key!

Expected grade: A

MA1102R: Calculus (now MA2002)

Lecturer: Prof. Wang Fei

Assessment:
15% Homework Assignments, 10 each weighs 1.5%
40% Tests, 2 each weighs 20%
5% Lab Quiz
40% Final Exam

Overview
This module covers about functions, intuitive and precise definitions of limit, continuity, differentiation, integration and its techniques and applications, inverse and transcendental functions, and finally ODE (ordinary differential equation).

In addition, the lab class uses SageMath as the helping language (quite similar to Python) which covers about basic syntaxes, how to compute limits, how to differentiate, how to integrate, and how to solve ODEs.

Module Difficulty
In a nutshell, this is a further recap of what you have learned in H2 Mathematics, it's not much different in terms of concepts.

The module is OTOT when I took it. This means there is no fixed timing for lectures and tutorials every week but they will upload the videos on a certain schedule. There will be a homework assignment every week to be completed until there are ten of them, each covering a single lecture topic, a single-topic tutorial questions every week and a SageMath note every two weeks until there are five.

The first tests covers the first half of the whole module content while the second test tcovers almost all the whole module content with the same amount of question, so just recap the concepts of the first half of the module and you're good for the second test!

Personal Opinion
The pace is really really on your control because it's an OTOT module. I do not know for the following semester but for me it's manageable.

I like the accent of the lecturer (Prof. Wang Fei) but aside from that I found the lecture's content very understandable without me repeating it. There may be some point where it doesn't even exist in H2 but trust me it's related, so it's not impossible to understand it, such as the well-known precise definition of limit and the fundamental theorem of calculus, which are new to me but fun to know.

The tutorial sheets, as I mentioned previously, are given for you to solve beforehand and the solutions will be provided after that.

Although I found the tests to be a challenging time trial, the results were pretty decent and much around what I expected.

The lab quiz is quite chilling for me, for it's quite similar to Python so I had a quick understanding on the notes.

The final exam is doable, except for the last question. The rest is very similar to the past papers and regardless of the allocated time there should be some sparked ideas on the questions. Aside from that, I was very satisfied I finished the rest :-)

My own suggestion for the final exam, explore all the past year papers as quick as possible so that it may be brought up during the consultation sessions provided, if you wish to. They are very similar time to time, year by year.

Final Comments (or maybe the TLDR part)
Despite the module being a bit different this sem (OTOT unlike usual), it's still a module that you can go through and finish.

Again, it's a further recap of H2 calculus, hence you might understand some parts already.

I believe you can have fun learning about the very basics of calculus.

Expected grade: A