MT262 Putting Computer Systems to Work (2003)

Level 2, 30 points.

I selected this course as a kind of filler: one of the possible options along the way to my degree (and also valid for the diploma I was aiming for) which should be a bit of fun and give me an opportunity to use a bit of C++, definitely a handy string in the programming bow. Of course, like all the other OU courses which involve coding, this is not a course that teaches a language, but rather one which uses a programming language to illustrate concepts. As always, YMMV.

Block I: Beginnings

As someone who has done more than a little programming over the previous 20-odd years, the first block was ploddingly slow, first introducing the course software, C++ Builder (I've always got on well with the Borland environments so this was no bad thing), then running through some basic general problem solving and basic C++ constructs.

At this point some annoyances cropped up like the course's use of a custom I/O library (which did, to be fair, simplify a lot of things) and the ban on increment, decrement and other shorthand operators (this information was hidden in a note to those who already knew C or C++). At a tutorial I managed to get an excellent answer to these points (apart from some technical but not entirely convincing justifications): in real life programmers are often required to use specific libraries and adhere to house coding standards, so we could consider the course restrictions to be analogous to those rules. That was a good enough explanation for me and I resolved to not worry about it.

Another annoyance that was not resolved, however, was the use of a pseudocode during analysis and design exercises which was just a bit too close to real code: converting it to C++ code was so trivial that it seemed a pointless additional step in the design process.

Block II: Structures

The second block was pretty much more of the same, adding in some further programming constructs like structures, arrays, functions, files and, critically, the basics of objects and classes. The object oriented aspects of the course were a lot lighter than other courses (like M206), and showed one of the key differences between MT262 and most of the other courses I have studied with the OU: MT262 takes a pragmatic approach, teaching what you need to know and not dwelling on too much of the theory or philosophy. As the course title suggests, it is about putting computer systems to work.

Block III: Developing Visual Programs

And all of a sudden the course lifted itself up and started being a lot of fun. Instead of working with simple console based programs, we started using the "visual" features of the development environment, dragging and dropping interface components and writing "behind the scenes" code to make things happen. This was the first time I'd written programs in this fashion and although I'm still more of a console coder, the power of quickly being able to throw together end-user programs is great.

Block IV: Applications

The final block did some work on graphics and then tried to bring the concepts of the course together in order to solve "real" problems and building "useful" applications. There was a slightly tiresome example of a microwave oven "emulator" (alongside a discussion of why it was an emulator and not a simulator), although this made the point well.

What really made this course for me, however, were the assignments associated with the last couple of blocks, which involved writing programs and supplying the running code for assessment. The final assignment in particular was great: one question involved creating a copy of a simple "knight's move" game (where a knight jumps around a chessboard, visiting every square) and another question requiring us to clone a lift emulator. This second question was particularly interesting as the first half of the task was to create a new interface which could connect to the provided back end, while the second part was replacing this provided engine so that it could connect to the new interface, thus demonstrating some interesting points about modular software. As it turns out, I didn't complete the final part of this (real life and getting married had made me fall quite a long way behind schedule), but thanks to the OU's substitution system and completing three quarters of the assignment I wasn't badly penalised and still ended up with the result I was looking for.

Overall

While I don't think I learned as much on this course as I have on the others I have taken, it was fun and worthwhile, and provided an important bit of light relief to the tougher course that I was taking at the same time. And if all assignments in all courses were as fun as the last couple in this course, I would be a very happy camper indeed.


This page last modified: 2005-10-25.