I guess this is a good time to do reflections on last semester. It’s about to be the end of the year anyway.
So I took 5 CS mods this semester, although one of which was more Computer Engineering than Computer Science. Anyway, it was the first time during my entire life in NUS where there are at least 3 modules that really excited me.
So the first good mod was CS4223, Parallel Computer Architecture (Dr Tulika Mitra). This is the mod that wasn’t exactly a CS mod due to the large amount of hardware related content in it, but I daresay it is easily the best module I’ve taken in NUS so far. Learning what goes into a processor, and the interesting tricks that going into making a processor faster, such as branch prediction and its effects on programs that we write, this module has really opened my eyes to programming. Oh, and did I mention? I learnt that 1GHz on an ARM processor is not the same as 1GHz on an Intel i7 processor too. It was fascinating.
The other good mod that I took was CS4238, Computer Security Practise (Dr Liang Zhenkai). Being a practical module, there were alot of practical aspects involved, but I still learnt more about the theory than any other modules. For example, in this module, I could understand the TCP layer better than what was taught to me in CS3103, which I took concurrently and was supposed to be about Networks.
The last good mod I took last sem was CS5223, Distributed Systems (Dr Yu Haifeng). Didn’t score the grade I wanted (final exam had too many proving questions), but I daresay I learnt alot of theory that would be useful in future too. It helped that the prof believed that both theory and practical are important and spent a fair bit of time bridging the two.
Sad thing was, I only found school really fun and exciting only in year 4 sem 1, which is a little too late. But ah well.
As for the other 2 mods, let’s put it this way. CS3103 is simply a content downloading module (important stuff), and I believe work has to be put in to make the module more educational.
CS4211 was totally different though. Formal methods in Software Engineering, I believe is something that is very important, particularly for industries that cannot afford a single software failure, like NASA for example. Despite the importance of this module, it seemed to me that the teaching staff weren’t really interested in conducting the module. Lack of support, plus forcing us to use PAT which honestly had crappy debugging messages, made the module a pretty bad one.
I guess that’s it for 2012, looking forward to the next.