Tuesday, 15 November 2011

What I've learnt in CS3216

Its been a great pleasure to have been part of the CS3216 family. I think what I've learnt goes beyond technical skills but rather I feel like I'm being schooled in a way of life. The opportunity to work with so many different people, especially under really tight deadlines and high expectations, made me learn more about myself, my work style and who I can work with. Before this I had a lot of group projects but it was always with friends, people I know and trust.

The most memorable times I had was with my first group(Deepan, Darren, HaoYuan) and final group (Alan, Kenneth, Joshua, Zhenling, +Sharon). I guess because for the first project we went through a lot of shit together, knowing little about programming and I guess the fact that we did not have a pro coder did really affect us and made us feel pressurized about the whole thing. It was kinda frustrating, but I think we all learnt a lot out of it in the end. In subsequent projects where there are pro coders, sometimes it feels like it is not optimal and selfish to want to try doing part of the project as it would slow the project down if I were to attempt them. So I ended up settling for non-coding components in the end. Since I was interested in picking up iOS programming, I downloaded a good book and started learning on my own time, along with following the Standford online lectures.

Although it didn't turn out the way I thought it would, CS3216 did make me think about what I really am interested in and want to learn. Midway I enrolled in the Stanford online AI class and Machine Learning class as well, and am still actively following it. Also, I learnt that there is no shortcut to coding, all the abstraction that is becoming more common now and making things easier are good, but to be a really good coder, it takes much more time than what a semester can provide. However, it did well in teaching us how to create a quick and dirty prototype. Sometimes, with the time constraint, we have to choose to go with we know what works instead of what we know is the right way to do things. For example, for our final project, the app did not entirely follow the MVC framework it should, oops. Of course given more time we'd love to fix that.

Oh yeah, team 2Awesome deserves an entire paragraph by itself! The enthusiasm everyone was oozing out made the whole experience exciting, fun and rewarding. Although we did have our initial skepticism regarding switching to iOS, within 2 days of making the decision to switch, we had already infected Mac Commons with Xcode (ooops) and came up with a prototype UI. Earlier, I was picking up iOS on my own but I've only gotten as far as using one View controller and made a calculator app as part of the online course exercise. Within days Alan would have zoomed past and created Views for the other features, and before we know it, our app looks not too bad. Although I knew I couldn't contribute as much as the 2 of them, I'm glad I managed to learn a few things - changing views, creating singletons, asking questions on stack overflow(omg I got replies just barely after an hour of posting. its an amazing community) and memory management, although subsequently we realized the latest Xcode had Automatic Reference Counting and we no longer need to burden ourselves with memory management. Although Kenneth and Joshua, who were just like me, not as guru-like as Alan and Zhenling, they tried their best to pick up on iOS and catch up with them. We ended up having our regular spot in Mac Commons, lol. Then there was the random night when me and Kenneth came up with the brilliant idea for the poster design, and later on spontaneously decided to go for a midnight run. Zhenling and her Subway special request, lol. Joshua and his epic photos. I think it would be too draggy to include all the experiences and memories I had with, let's just say it was awesome and thank you guys.

In the end, I think CS3216 managed to be a painful yet fun, frustrating yet rewarding, time consuming yet liberating, and the last lecture by Prof Ben was a powerful reminder that its not just about a course or a class, but the bigger picture - on life, creating value, being a useful citizen and when you make it big, a new computing building bigger than business one! haha.

Thank you Prof Ben. Thank you everyone who have worked with me during the sem. It was great.


  1. AI class AND machine learning class! I'm still stuck at AI class unit 4 =.=

  2. Take the machine learning one! Its a very interesting class. And Andrew Ng is a great lecturer, you'll pick up the topic concretely =)

  3. Thank you David for the crazy poster idea! Just like what I've said in my own blog post. It's simply 2awesome!

    For some reason when I saw this line "...asking questions on stack overflow(omg I got replies just barely after an hour of posting. its an amazing community)" I can almost imagine your cheeky face and laughter in awe. Especially the "omg". LOL.