I just had my last examination today and here’s to the end of my freshman year. I think it’s always a good idea to sum up what I have learnt, and reflect on what could be done even better.

CS2020: Data Structures and Algorithms (Accelerated) – 6MCs

The main highlight of this semester. Not as crazy as I thought it would be, it was one of the most fun module I’ve taken so far. The amount of content I was exposed to within a single semester was insane, and the expected pace of learning was pretty crazy as well. Apart from all the algorithms introduced to us, I believe the most important takeaway from this course is the way we model problems.

In other words, problem solving paradigms. Every single programming problem can be classified under one of the paradigms, and solved with one of the algorithms we learnt. This emphasised the importance of viewing ourselves, budding software engineers, as craftsmen with an array of tools at our disposal. The only way to solve the problems of the world is to get creative in the way we utilise our tools.

CS2020 has added several more tools to my toolbox. But I don’t think I have mastered the tools well enough to be comfortable with applying it in different scenarios. This module serves only as an introduction to algorithms in my professional career, and I plan on mastering these tools over summer in order to level up.

As a side benefit of this course, we learnt Java. I don’t like to get into all the talks of “this programming language is better than the other”, simply because I view them as tools to get different jobs done. If I am required to use Java for a particular course, I’ll learn to use it well. This is probably in line with my goal to learn to learn, and learn fast. 

CS2100: Computer Organisation – 4MCs

This was a really boring module for me. Learning to read almost everything in Binary and Hexadecimal cause me to see stars after doing all the tutorial questions. However it promotes mastery of boolean algebra. Bitwise puzzles seems to be much more manageable now and this is definitely helpful in time to come.

Examinations for this module really depends on luck since there’s only an answer marks, without any working marks. Make a single careless mistake for every single question and it may cost you… Everything.

The main takeaway from this module is definitely an appreciation for the machine that we will be playing with for the rest of our professional career, and I’m thankful for the contributions by all those who implemented such layers of abstraction.

MA1101R: Linear Algebra – 4MCs

I’m seeing stars most of the time for this module as well. Given the opportunity, I would definitely redo this module properly. I feel that I’ve been solving questions blindly for this module without grasping the concept behind it.

The midterm and finals were really difficult, and I have no idea where I stand on the bell curve. But learning linear algebra has definitely helped me dive deeper into the properties of matrices and vector spaces. Most of the concepts learnt here will probably come back into play again later on.

Like all math modules, it requires a bit of thinking and practice before one can truly understand what it means. I think I’ve spent way too little time on this module.

IS1103FC: Computing and Society – 4MCs

This was an ethics module and I didn’t learn much from this. The lessons were flipped, meaning lectures were posted online and we had discussions during seminars. Perhaps the most useful concept learnt in this class was Creative Commons, which I have always wanted to learn more about.

Did it encourage me to be a more ethical software engineer? Perhaps. I was exposed to the SECPP for the first time. I guess the moral of the story is that:

With great power comes great responsibility.

No, we CS students are not Spiderman-s.

This course also included a group term assignment paper. Our group chose “Narcissism and Selfies” as our topic, and this coupled with the IEM module below was enough writing for a single semester. The process of writing the paper encouraged me to read academic journals more critically in order to support our claims.

IEM1201K: Photography and Society – 4MCs

This was a writing module which provided really good practice with writing academic papers. The emphasis is on clear and concise writing, instead of using fanciful words and phrases to craft out a story. It builds up my confidence in expressing my own ideas as well. The workload was pretty crazy, since each draft revision will most likely take an entire day. But I guess all writing modules are somewhat the same.

The content covered in this course provided me with a new perspective on photography. We started off with discussing about art and social photography before moving on to composition and censorship. In the end, I chose censorship as a topic for my final paper, focusing on The Falling Man by Richard Drew. It was fulfilling yet painful doing research for the paper. Nonetheless…

This gave me the greatest sense of achievement when it all ended. 😀

Academics aside, how did I build character this semester? 

To start the semester off, I had multiple projects and activities on my plate. CS1010R, my part-time job, hackathons and Google Summer of Code, coupled with Inter Collegiate Games Basketball and Captain’s Ball.

Perhaps a bit too much on my plate. I guess my time was spent in a very inefficient manner as well. Much lesser time should be spent on activities that did not add value to my life.

I also think I’ve overcome a lot of barriers this semester, including getting comfortable with presentations and interviews. It’s something I still have to work on in time to come.


It’s probably the most important lesson learnt. (It’s not even a lesson) Things usually aren’t as complicated or difficult as you make them to be, so just breathe and relax. 

There are still many questions in life that I haven’t figured out yet, but I guess things will all work out fine if we take it one step at a time.

Here’s to starting year 2 with a bang. 🙂