Semester 1, 2011

Another year, another semester, another set of results. This time, a little worse than usual, for reasons I’ll explain shortly. However, let me first give you an update of what I’ve been up to since I last posted on my blog (more than six months ago :O).

First up was the work I did with CHAI over the holidays—I integrated WebKit into the Cruiser tabletop framework, and built a tagging interface to simplify finding content in large collections of images. There is a video demonstrating the Cruiser framework, which shows some of my work—my stuff starts about 80% of the way through, look for spiders. ;)

Straight after completing my CHAI work, I went back into uni mode! I took four courses:

  • Object Oriented Design (info3220),
  • Project Management in IT (info3402),
  • Artificial Intelligence (comp3608) and
  • a project unit with James Curran (info3911).

In the project unit, I was working on reproducing the Tagme system for use in linking "mentions" (useful snippets of text) in documents to their correct Wikipedia articles. In addition to these units, I was also tutoring the second-year databases course, info2120.

Now, let me tell you a little about info3220. The first thing about this unit is that it purports to teach Object Oriented Design, however in reality, the main focus of the unit was on teaching C++’s implementation of classes. It seems no-one had the idea that OO might actually have been implemented in more than one language? And that it might not have been implemented in exactly the same way in each language? Personally, I would love to see OO integrated into the Programming Languages and Paradigms unit (and the compilers part of that course should be split out into a separate unit to make room), where you can show all the wonderful ways of expressing the same operation in different ways (some of which are more maintainable than others).

Putting that aside, however, at the start of semester, we were offered the choice of doing standard assignments (which would be writing a vending machine-like program, and sounded boring), or doing an advanced assignment. Well, I made a very silly decision, and let @carlozancanaro talk me into doing an advanced project, which was building an introspection system for C++. Well, that was a bad idea, and we didn’t get very far. So, we scraped through with minimal marks on the assignment, and then played catch-up with the exam.

Anyhow, enough with the excuses already! I did enjoy the artificial intelligence course, which had two good assignments. Anyhow, I got a pass (info3220), a distinction (info3402) and two high distinctions. Exact marks are here.

It’s now July, and I’m currently working four days a week with CHAI, developing applications for two projects they’re working on—one is for Sydnovate, the other is a university project for a kinect-controlled display for the SIT building. I’m looking forward to next semester (with some hopefully better marks!), with the all-important project unit. ;)

Finally, I’m going to participate in NaNoWriMo, which means that in November, I’ll be trying to write a 50,000 word novel (in whatever spare time I have left lying around the place). Why, you ask? Well, I do a lot of programming. And I think that the best program is one with very little code which achieves a lot (e.g., Python & UNIX). Which means that most of my time is spent avoiding writing code. And then, when it comes around to documenting the systems I’ve build, I naturally tend to write terse descriptions of what it does, very factually correct and precise. BOR-ING. So one reason I’m participating in NaNoWriMo is to improve my documentation writing skills. But, the actual reason is far less complicated. I’m doing it because I think it’ll be fun. ;)

Anyhow, this is the public announcement so that I won’t be able to forget about it, or make excuses that “I don’t have time”, etc. :P