This semester has been crazy to say the least. As it draws to an end, I'm going to try and pen down the lessons learnt, the amazing experiences, and my thoughts before I forget them.
Quite a few things happened this semester. But there were two main recurring themes:
CS3216, Software Development on Evolving Platforms
I took this module on the recommendation by Prof Ben and a few other seniors and they weren't kidding when they said it was going to be tough.
When I first decided to take this module, I had to write (as the first minor assignment) what I hope to learn.
In retrospect, I'm glad I did. Throughout the semester, I constantly second guessed my decision to take this module as it sucked up an increasing amount of my time and along with that, much needed sleep.
Yet, a part of me kept going back to the main theme of this first blog post. I had set out to level up. I knew that it won't be easy but nevertheless made the commitment to become better anyway.
In hindsight, I'm thankful that I severely underestimated this module.
I probably spent more time on this module that all my other modules combine.
I remember rushing for the first assignment, having the second assignment due by the end of the week, and reading the announcement to form teams for Assignment three at the same time.
Had I known how much
time pain grief it would cause me, I would probably not have had the courage to take it up in the first place.
On this note, I learnt a lot here. My main takeaways can be broadly categorised into:
- product development
- teamwork/team dynamics
With respect to the former, I'm really proud with what my team has produced. I'm really proud of Hush and I think it speaks for itself. Perhaps you disagree with the premise of our application. But I think that my team executed our vision really well.
Hush is the most massive application I've written and the technical lessons here are immense. Not to mention the opportunity to work alongside great people.
In addition, I learnt a fair bit about the non-technical side of things from the entire process. From product design, to actual marketing of the application, the insights gained here are truly invaluable.
There is this thing I learnt during National Service: you only get to see a person's true colors when the going gets tough.
The time pressure of the module and the crazy workload, meant that the projects were done in extremely realistic conditions.
Sure, everyone plays nice when everything is relatively smooth sailing and the assignment is relatively easy. But the time pressure on the various assignments, coupled with the lack of familiarity with teammates as well as the crazy amount of work to do, resulted in many interesting lessons in team dynamics.
I feel that I have a lot to learn in this respect and the experience gleaned from this module will serve as a good basis moving forward.
Reliving CS1101S as a tutor
This was my first time tutoring and the experience was nothing short of amazing.
Going into this, the first thing that struck me, was the gravity of being a tutor.
The most direct consequence was that it meant that I had to know my stuff. During discussion group meetings, while I mostly got students to present on the board, I had to know the right answers or at least not have the wrong ones. Consequently, this is the only module for which I did every single tutorial on time before class.
The result of this is that I learnt the material really well, particularly the fundamentals. The value of which really cannot be understated.
I also learnt a lot from grading assignments. While merely grading the correctness of a submission is relatively easy, highlighting the precise errors and consequently the corrections took a great deal of effort and time.
I went into this not knowing what to expect and had little clue of what went on behind the scenes. The amount of time spent grading assignments and preparing for lessons left me with the utmost respect for my previous tutors.
Mostly, I'm really thankful for the the students I had and the great colleagues who helped me so much.
Neglecting and under-estimating other modules
In addition to CS3216, I took:
To be absolutely honest, I did the bare minimum for the each of them. I did graded assignments and attended mandatory labs sessions and meetings.
This two modules are twinned, apparently in an attempt to reduce the workload of students, and I've written down my reflections regarding this two modules: http://blog.nus.edu.sg/michael/2012/10/20/lessons-learnt/.
I was basically rationing my time between this project and CS3216 at one point and had to pick up
WPF, well just enough, to contribute to the project. This was certainly an interesting experience.
My main takeaway from these two modules is, besides the stuff I learnt from last minute cramming for finals, to (hopefully) avoid having to do last minute cramming by being more consistent throughout the semester.
That being said, everything is a tradeoff. At least I didn't spend the time (at least not all of it) doing something less worthwhile.
hackerschool by NUS Hackers
During the middle of the semester, I was busy with the launch of hackerschool. Getting the site up, the publicity, the venue, and of course preparing for the actual workshop.
It was hectic, and preparing for the workshop was particularly hard as I had no idea what I was doing.
In the end, I believe it was well worth it. I'm looking forward to next semester's hackerschool, hopefully it'll be a smoother ride now that most of the kinks have been ironed out and we've done it once.
During the summer, I iterated on MODIVLE and released an improved version this semester.
While other commitments meant that I had little/no time to work on it, I'm happy to say that some people
 actually use it.
I actually had time early in the semester to fix a few bugs and add some stuff here and there and it was quite an interesting experience having to maintain an actual application.
Above all, I'm convinced that this application has taught me so much, in so many areas. I'm happy I decided to build it that faithful evening.
It's cliched but time really flies. Seriously. Three semesters gone in a blink of an eye. It really scares me to think that I actually have to start job hunting in a year's time.
That being said, I'm quite pleased with this semester. It was crazy but I learnt a lot. I guess that's what you get when you put a lot on the line.
I'm looking forward to the holidays (time for a much needed break and the free time to do more random stuff), next semester (CS3217, CS3230) and beyond (NOC perhaps).
 Don't get me wrong: I still think that this module is crazy. It is not for everyone. But if you are
crazy brave stupid enough to take it, I think you'll be better for it.
 I vividly remember Cedric and Div telling me to throw away my slides. All of it.
 Yes people I don't know. :)