Notes from NUS
Learning.
An ongoing project.
A NUS Computer Science graduate, now studying Data Science and Machine Learning part time. There is always more to learn.
The next chapter
Data Science &
Machine Learning.
I’m studying alongside my work as a Software Engineer at Google. My current courses:
Principles of Machine Learning
Currently takingUndergraduate course archive
Semester 1 of 10
Y1 Semester 1
Personal reflections from the time I took each course. Course content and teaching may have changed.
CS1101S Programming Methodology
Could be considered one of the hardest introductory modules in NUS. There is a very heavy workload. 4h solely on lectures and 2h on tutorials. On top of that you still are required to do coding tasks, which could take up literally 1 whole day.
You would start off with the theory of recursion, and some basic programs that limit your answer to using solely recursion. This encourages you to think in a different way - a way where a programmer should think. This way of thinking would help you in your future career as a programmer/computer scientist.
All in all, CS1101S is definitely memorable for me, and it’s definitely much better than other CS1010 modules in terms of the concepts we learnt.
CS1231S Discrete Structures
Could be considered the hardest module in semester 1, this module requires knowledge from H3 Mathematics, for the topics on logic. If you do not have such knowledge, then it will be very hard to chase for top grades. Furthermore, the S version meant that all students taking the mod is from CS, and the bell curve would be disadvantages to those who do not have strong fundamentals in mathematical logic.
The topics covered are the following:
- Logic and proof techniques propositions, conditionals, quantifications.
- Relations and Functions Equivalence relations and partitions. Partially ordered sets. Well-Ordering Principle.
- Function equality. Boolean/identity/inverse functions. Bijection.
- Mathematical formulation of data models (linear model, trees, graphs).
- Counting and Combinatoric Pigeonhole Principle. Inclusion-Exclusion Principle.
- Number of relations on a set, number of injections from one finite set to another, Diagonalization proof An infinite countable set has an uncountable power set.
- Algorithmic proof An infinite set has a countably infinite subset. Subsets of countable sets are countable.
IS1103 Ethics in Computing
One of the worse module in NUS. (Thankfully they reorganized this mod into IS1108)
This was taken during covid semester, the entire module was conducted in 10 quizzes (10 weeks) and each quiz has 10 questions - that's 100 questions for 100% of the grade! The questions were supposedly based on the provided textbook (which you need to buy/pirate). It was well known that there are many people who cheated in this mod, where they will form large groups to discuss and distribute the quiz answers.
MA1521 Calculus in Computing
This module covers fundamental data structures and algorithms, including arrays, linked lists, stacks, queues, trees, and graphs.
The workload is heavy with weekly assignments and quizzes. Understanding the time and space complexity of algorithms is crucial for doing well.
CS2040S has provided me with a strong foundation in data structures and algorithms, which is essential for any software engineer.
RVX1002 What do you mean? Meaning & Communication in Intercultural contexts
This was one of the better mods I have taken in semester 1. The module was conducted in a small class of around 16 people, however since it was covid semester, some of my classmates are connected to the class through Zoom, whereas the rest of us are at the physical classroom.
I didn't have any idea what it was about, until I started learning from the mod. I felt that the prof was very engaging despite the lack of interaction from my classmates. It was definitely an interesting topic to learn. This module was very much about linguistics and how to simplify people's communication.