Course: M255 Object-oriented programming with Java (completed)
Credit Point: 30
Start Date: 7 February 2009
Overall module result: Distinction
Overall Continuous Assessment Score (OCAS): 93%
Overall Examinable Score (OES): 89%
I loved M255. It was while doing M255 that I got my first true taste of the power of Java as a programming language.
M255 makes use of the BlueJ IDE, which is very basic, for all the required coding work, which is also fairly basic. You will get to animate little cartoon frogs that change colour and move about, work with bank accounts (not ones with real money in them I’m afraid), and get a very basic introduction to testing.
The frogs are used in M255 as a means of introducing object-oriented concepts as well as the Java syntax, operators, object creation, references, identity, instance variables as well as inheritance through specialisation and so many other topics. I really grew to love these little frogs. I’m not sure why; they’re really not that exciting.
The bank accounts in this course are really used to delve a little deeper into much of the same material. They never get overly complicated and are easy enough to work with. There really isn’t a whole lot to be said about these bank accounts as they are pretty basic.
I would probably say the most difficult subject covered in M255 is the Input/Output (I/O) streams used for writing to and reading from files on your hard drive. While the subject of I/O is not all that taxing in itself, this course does introduce quite a few different ways of achieving this; readers and writers are wrapped in all sorts of streams in the process. As the course progresses you will be introduced to many of the data structures and interfaces available in Java, such as the Map interface, and different forms of iteration and looping, such as the for each and while loops. Again, nothing too taxing here.
One thing to note about M255 is that the course team is very particular about style. If you are told to use indentation in a particular way, do so. Failing to do so will cause you to lose marks. I happen to quite like the code style recommended in this course and never had a problem following the advice. Sure it’s a little lame, but I find it makes the code easier for me to read. There were a couple of students in my tutor group who were professional programmers, and had been for years who found this annoying and decided to stick to their way of doing things. Did they keep losing points? Sure, but they obviously thought it was worth it to make their point. I however, didn’t really care either way so stuck to it and kept my points.
M255 also insists that the first line of every constructor must be a call to super(). Despite an explicit call to super() being unnecessary as it happens implicitly in the background anyway. Again failing to do this will probably result in a loss of points. This one I did fall foul of, but not deliberately. Another thing the course team are very particular about is the use of this. Again not at all necessary, but it does make the code easier for a human to follow. Oh, and meaningful block comments in the headers of all methods are a must, or you will be penalised.
The course text books are well laid out, easy to follow and don’t contain any surprises, such as the classic please read pages 1 to 7003 of book x before you attempt the next section. Be warned however, the questions at the end of course exam paper are quite different from the questions asked in the assignments. This came as a bit of a shock to me when I began revising. I was expecting similar questions to those used in the assignments, and found the exam questions a lot more taxing. So my advice would be to make full use of the past papers that can be purchased from the Open University Student Association (OUSA) web shop, early on in the course, so that there are no surprises. You are allowed to take the course handbook in with you to the exam, which contains the signatures of loads of the methods used in the course, which is a great help.
Overall M255 is a great introduction to programming in Java and a superb course. I loved every minute of it. OK that’s probably a lie, but I did get immense enjoyment from it. I was very pleased with the result I got for this course as 2009 was a somewhat trying year for me personally. If you are new to programming or new to Java I cannot recommend this course enough.