My second semester at NUS and my firt semester as a Computer Science student (I managed to transfer ๐Ÿฅณ). The workload was much higher than the first semester, but it was still manageable as I utilised all my freshman S/U.

I took a total of 7 modules: 4 core modules (CS1231S, CS2030S, MA2001, MA1521), 2 common curriculum modules (DTK1234 and IS1108), and 1 RVRC module (RVX1000). I also took another CFG module CFG1004.

Total amount of MCs: 30

CS1231S Discrete Structures

Workload: Medium

Expected Grade: A+

Actual Grade: A+

Assessment:

  • 5% Tutorial Attendance
  • 10% Assignment 1
  • 10% Assignment 2
  • 25% Midterm
  • 50% Final

This module introduced various discrete structures: propositional logic, predicate logic, set theory, relations, functions, graphs, etc.

The module was a foundational math module for computer science, and it was also the most abstract one compared to the other math modules I took (Calculus and Linear Algebra).

The most challenging topics for me were partial orders and cardinality as they were quite abstract and hard to visualise.

The bellcurve for my semester quite low (compared to semester I) where I got the highest score for all the components ๐Ÿ˜….

I would recommend this module to anyone who wants to learn more about the fundamenetals math concepts in computer science.

CS2030S Programming Methodology II

Workload: High

Expected Grade: A+

Actual Grade: A+

Assessment:

  • 5% Weekly Lecture Quizzes
  • 30% 8 Lab Assignments
  • 10% Practical Assessment 1
  • 20% Practical Assessment 2
  • 10% Midterm
  • 25% Final

This module introduced various programming concepts: object-oriented programming, generics, exceptions, streams, etc. It is a natural continuation of CS1101S.

Except for OOP, most of the concepts were new and required a lot of practice. It became more difficult as the semester progressed, and the workload was quite high.

It was fortunate that I had some prior experience with Java thanks to CS2040, so I was able to focus on learning the new concepts.

The practical assessments were quite challenging to complete within the time limit, so it is important to practice a lot before the actual assessment.

I would recommend this module to anyone who wants to learn more about programming in general.

MA2001 Linear Algebra I

Workload: Medium

Expected Grade: A

Actual Grade: A+

Assessment:

  • 25% 4 Assignments
  • 25% Midterm
  • 50% Final

This module introduced various linear algebra concepts: vector spaces, linear transformations, eigenvalues, eigenvectors, etc.

If you take H2 Further Math, you should be familiar with about 75% of the content. This module simply dive deeper into the topics in a more rigorous way, and some new topics would be orthogonal bases.

Some of the proofs were quite challenging (especially under exam condition), but you can still do well if you can do most of the computational questions accurately during the exam. I could only solve 1 out of 2 proving questions during the final exam ๐Ÿฅฒ.

I would recommend this module to anyone who wants to learn more about linear algebra which has wide applications in various fields besides computer science.

MA1521 Calculus for Computing

Workload: Low

Expected Grade: A

Actual Grade: A+

Assessment:

  • 35% 5 Online Quizzes
  • 65% Final

This module introduced various calculus concepts: limits, differentiation, integration, etc.

The pace for this module is quite fast as it tried to cover a lot of topics, including multivariable calculus. However, there were no proofs, and all of the quiz/exam questions were computational.

A good tip is to have a calculator that can do differentiation and integration (e.g. Casio fx-991EX) as it can help you check your answers quickly during the exam.

I would recommend this module to anyone who wants to learn about calculus in a chill way. If you want to delve deeper, you should take MA2002 and MA2104.

DTK1234 Design Thinking

Workload: Low

Expected Grade: B

Actual Grade: B

Assessment:

  • 30% Individual Learning Activities (ILAs)
  • 30% Team-based workshops (TBWs)
  • 15% Interim Design Thinking Journal
  • 25% Final Design Thinking Journal

This module introduced various design thinking concepts: empathy, ideation, prototyping, etc.

The workload for this module is flexible as you can choose to do more or less depending on your interest. I did not invest much time in this module, and simply enjoyed the process of learning especially during the TBWs which were quite fun as there were many hands-on activities ๐Ÿ˜‚.

I would recommend this module to anyone in School of Computing who needs to fulfil the ID requirement.

IS1108 Digital Ethics and Data Privacy

Workload: Low

Expected Grade: B+

Actual Grade: A-

Assessment:

  • 10% Tutorial Attendance
  • 20% Case Scenarios 1 & 2 (Group work)
  • 30% Group Project (10% presentation, 5% peer evaluation, 15% report)
  • 30% Individual Quizzes
  • 10% Individual Reflective Blogs

This module introduced various ethical concepts related to technology.

The content was quite standard as what you would expect from an ethics module. The workload was quite low, and the quizzes were open book.

I would recommend this module to anyone who wants to learn more about ethics in the context of technology.

RVX1000 Citizen Speak: Persuasion and Polarization in Society

Workload: Medium

Expected Grade: B+

Actual Grade: A-

Assessment:

  • 10% Class Participation
  • 15% Collaborative Essay
  • 25% 8-minute Pitch
  • 40% Individual Critique Essay

This module introduced various communicative resources that are related to issues pertaining to sustainability, inclusion and exclusion, and public participation in various contexts.

This is quite a theoretical module where we learnt about different communication theories and apply them to real-life examples especially in the context of public discourse.

The readings were quite difficult to understand, but the lecturer was quite helpful in explaining the concepts.

I would recommend this module to anyone who wants to learn more about communication in the context of public discourse.