Category Archives: Miscellaneous

CS3216: The Beginning

The first I heard of this class was through a mass invitational email sent out to all students in SoC. After reading the opening line, I was immediately drawn to find out more.

Have a great app idea and wished there was a course in NUS that would help you make it a reality?

Nop, it wasn’t that I had a million-dollar idea that I hoped would turn into a successful start-up over the course of 3 months — I just thought it’d be pretty fun to spend a term learning more about stuff that I love.

Before I get to the “What-I-hope-to-learn-in-CS3216” part, and since this is the first post, I thought I should start off with a short self-introduction. I’m a second year undergraduate taking the Information Systems course in the School of Computing (though numerous profs and seniors have been poking me to switch from IS to CS). My journey with programming started off about ten years back when I taught myself some basic HTML & JavaScript. In my high-school days, my interest in the Web led me to learn some PHP & MySQL. I recently also picked up Node.JS from the summer project I was working on for Orbital.

What I Hope To Learn In CS3216

There are many things I would like to learn about software development, be it in this class, or outside the class in my own free time.

Technical Skills

While I’m not completely new to web development, the list of things I would want to learn never seems to end. Apart from learning how to make use of the Facebook APIs to build something useful (which is the first part of the class), I also hope to learn about other tools that help simplify development. I’ve seen countless open-sourced projects do things like unit-testing and use services like Travis CI to build and run tests on their apps. I hope to learn what these tools are used for and how they can simplify the development, build and deployment process.

UI / UX + Design

Over the years, I have picked up bits and pieces about what a good user experience should be like. However, that being said, I’m still not that good a designer myself. Given that there will be twice-weekly UI/UX reviews on all our programming assignments, I hope to learn from the TAs as well as my project teammates.

Working Well With a Team

Most of the technical projects I have worked on had no more than two people writing code. I hope to learn how to work effectively with a team that is slightly larger and more diverse. When it comes to code collaboration, nothing can be more useful than a version control system like Git. While I have used Git for some of my projects, I’ve never needed to work in a setting where branching and merging becomes incredibly useful.


Perseverance, in two different sense. First, perseverance to continue working on a project all the way through completion. Too many times, I started personal projects that I abandon midway when I become more interested in a different thing. I hope to end off the term having a project of my own that is useful to other people. In another sense, I also hope to be able to survive this class that I’ve heard so much about. Seniors have shared about how crazy the workload can get, and even Prof Colin himself warns that the course is consistently “known to be very brutal”.

I’ll end this first post with an apology for not being able to attend the first CS3216 class. As I’m currently in San Francisco taking summer classes at UC Berkeley, I have no choice but to miss a week of class.