It has yet been another long while since a post was written(I lost count of how many times I’ve mentioned this…). It is just so difficult to find interesting stuff to post on a regular basis when every semester is a long loop of chasing deadlines and staying ahead of the competition/at the top of the bell-curve. I am quite glad that another tough semester and year is over.
Unlike the freshman year, which is filled with lots of foundation modules(they tend to be less interesting), this semester is more interesting, albeit the tougher going. Also, I went through my first technical interview experience and was glad to be able to get 2 internship offers(I was not confident of my coding skills in comparison to other interviewees before the interviews). I felt that the modules I took this semester played a good part in my (small)success at the technical interviews.
CS3233 Competitive Programming(grade: A-): This is one of the long-awaited modules that I have worked hard to get into. It’s a tough and time-consuming module few would want to get into. Why did I willingly spend so much time on this module? The most practical reason is to outperform my rivals at technical interviews and live coding. From the 1 or 2 technical interviews/live coding I experienced this semester, they tend to test on classical Computer Science problems. The training and the knowledge acquired from this module has made me better at tackling these classical problems quickly and with efficient data structures and algorithms. To top it off, having a basic proficiency at Linux OS environment also helped me survive the live coding segment. Practical reasons aside, it’s also a continuation of my interest in solving programming problems from back in NOI 2010. Even though I still think my skill level is not as high as I wanted it to be(there were a few down moments for me in this course), I think I have benefited a good deal from this course.
CS3217 Software Engineering on Modern Application Platforms(grade: A-): The iPad module. You get to experience software engineering/development on the iOS platform! How cool is that! What I did not like is that unless you own an iMac or Macbook, you’ll have to spend a lot of time in the iMac lab until you get your stuff done. I actually ended up investing in a Macbook for the convenience of being able to work at home! The initial(individual) portion of the assessment marks was a rough journey for me. I usually ended up finishing the assignments just in time for submission. Reason being: a significant amount of work(and marks) come from UI design and UI programming, which I am very weak at. There was a period of time when I had negative feelings towards the final assignment as it gave lots of recognition(and marks) to people who could Google and implement so many fancy/flashy UI features, instead of recognition for solid code quality, software engineering concepts and algorithmic knowledge. Final project was not so bad as I avoided doing the UI component. Looking back, my code contribution might be less than the rest of my team(they did all the UI work) as a result of that. Even though I may not end up touching the UI part in the future, I feel that I should at least know all the standard UI features provided by the iOS platform. However, as of now, I have yet to have any inspiration(even the simplest ones) for an app so that I can use it as a practice to hone my skills further.
CS2102 Database Systems(grade: A+): I took this course because I think that some database knowledge would be a plus point when I enter the industry. Not that heavy a module compared to the previous 2 mentioned. Just need to practice query forming consistently(it took a while to have a better grasp of GROUP BY BY and HAVING clauses). The project has a rather low weightage, so there’s not so much reason to make a fanciful Web-front for this project. Since I was doing the server back-end, it was another chance for me to practice implementing the server side as a RESTful Web service for our Web application front-end(this was not well done during my Orbital project). Having a better understanding of how RESTful Web APIs work earned me a second internship offer(which I had to reject as I had already accepted another offer).
ST2334 Statistics and Probability(grade: A+): This was one of the modules that I spent the least time on this semester. Not that it was an easy module, but rather the first 2 modules in this list ate up roughly a good 80% of all my time. Attending lectures and doing (most of) the tutorial questions made my revision less stressful as I spent less time making helpsheet and had more time to practice.
Hopefully, this can still get me at least an A-. The results turned out much better than expected. Maybe I just got lucky this time as all the questions were from past year papers…
GEK1510 Great Ideas in Contemporary Physics(grade: A): Another module that was in the same precarious situation as the previous module. What I felt enabled me to at least pass was my previous experience with PC1144 last year, as I was banking on knowledge from that module for most of the topics. What I regretted most was not printing the lecture notes, or at least jot down important points from lecture notes onto a piece of paper, for this entirely open book module.
Given the tremendous number of people taking this module, I have a bad feeling that my grades will be crushed by the bell curve. Seems like the bell-curve is still in my favour this time. 🙂
Now that the semester is over, there are a few things I am looking forward to. Firstly, a pleasant internship experience(it is my first time). Secondly, now that I have completed the Competitive Programming course, I hope to be able to at least get into Round 2 of Google Code Jam(turns out to be a failure this time round). Seeing people wearing Google Code Jam T-shirt made me feel that my coding skills are way below them(after all, the T-shirt is a swag for the strong coders in the competition). Most importantly, time for a good break! As they say: The only easy semester was last semester.
P.S. If you have read till this far, congratulations on surviving another flood of trivial rants 🙂