My results for M250 are back, and it’s a strange combination of the best and worst outcomes. The “worst” part comes from my worst fear being confirmed. I did, indeed, skip the last two parts of question 2 in the exam, having not even seen them somehow. One of the ironies of this is that I practised an exact answer to one of the two over and over and it should have been worth the easiest marks on the whole exam for me. But I was rushing because of not wanting to answer the call of nature.

Exam tip: If you gotta go, you gotta go.

The “best” part, however, is that I picked up all other marks. I’d have ended with a 100 OCAS and 100 OES if I’d seen those questions, but I’d feel good about my 100/90 even if I hadn’t skipped anything. It really makes all that time revising at the kitchen table feel worth it.

Just a quick note about TM254 … Only 4% of those who took the exam ended up with a distinction on it. The exam looks like it was as abysmal as the rest of the module. I’m so glad I dumped it.

So between not having my M250 results affected by accidentally skipping a couple of exam sections to bailing out of TM254 before their bin fire of an exam, I feel like I dodged my share of bullets.

I won’t officially have my results back for M250 for another five weeks or so, but the exam question paper’s been released, so I have a pretty good idea of how I did. I’m not 100% sure if I missed one of the sections. I practiced my exact answer to that exact question so many times, that it’s difficult to remember if I actually wrote the answer on the answer book, or am just remembering one of the times I practised it. Note to future self: If you gotta visit the loo, visit the loo. Don’t rush to finish early and decide not to double-check that you’ve answered all the questions.

Anyway, if I answered that question, I’ve definitely got a distinction. If I didn’t, I think that I probably got between 86 and 90 (possibly even 94) marks, and still got a distinction. (I definitely dropped at least two marks, and six if I didn’t answer that one question part.) The worst case scenario is that if I’m very harsh in marking myself, and I assume a few mistakes I didn’t realise on the day (like reversing a greater-than sign, for example), I mark myself an 84, which makes me an edge case that the results team will have to consider. Considering my OCAS is 100, I feel I’d do pretty well in such a circumstance. So it’s a very, very narrow path to me not getting a distinction, but it’s possible, and I guess I’ll see.

How do I feel about the course itself? First, it’s very well laid out. Rather than subdividing every section as much as possible, they break the learning into two-week chunks, and allow the students to manage their time appropriately. This is much better than smaller one-week chunks, as it gave me the ability to focus on my other module (while I was still pretending I cared about it) when I had to without feeling like I was slipping behind.

Having also taken Helsinki University’s MOOC.fi Object Oriented Programming with Java I & II, Harvard’s CS50: Introduction to Computer Science, MIT’s OCW Introduction to Computer Science and Programming Using Java 6.00.1x, and UBC’s Software Construction: Data Abstraction (we’re going to ignore Microsoft’s shambles of a DEV276x Java offering), I have quite a few OOP study introductions to compare M250 to.

It compares very favourably. Most importantly, this is the most academic offering of the lot, which was surprising with so many universities in that list. However, aside from UBC, the others are all introductory level courses, whereas the OU module is for second year university students who are in the habit of studying. While the Helsinki module is very good at teaching coding skills, and both the Harvard and MIT offerings take the red pill and show the maths and memory calls that make this stuff work, M250 is the best at explaining logically (as opposed to physically) how this stuff works. It borrows the concept of message sends from the Smalltalk programming language to explain how objects interact to form complex code. That one tiny way of looking at objects shifted my entire approach to the OOP paradigm, and it’s much, much more natural for me to use than it was after the previous courses. Whereas before I was following rules I was told to follow, now I’m letting my code communicate using what feel like natural tools. The instruction is absolutely rigid in definitions and boundaries between any two related principles (for instance, between data hiding and encapsulation, between substitutability and polymorphism, etc.), and this gives a much better language for discussion about how and why OOP works.

Previous courses I’ve taken haven’t all been exclussively about the OOP paradigm, but some have. While I’ve been able to use OOP better after each one of them, M250 is the first time that I really feel like I get it. It’s an excellent course, well structured, plainly explained, gives both academic and practical views of the subject in an understandable way, and is fairly assessed (despite finding an impossible question on an OU exam for the second year in a row). It is the exact antithesis of TM254.

Beware that it is not a coding module. It is a module about Object Oriented Programming concepts, and happens to go over how to use Java as an example of how OOP works. If you want a Java coding module, I recommend the excellent MOOC.fi course mentioned above.

Well, that’s another exam in the can. How’d I do? Weeeeell, if the memories of a couple of other people are accurate, then I missed an entire part of the exam. So not extremely well.

The parts of the exam that I did happen to read were, by and large, trickier than the past papers, but I had notes jotted down in my handbook for all but two of the trickier parts. One of the two I think I did alright on. The other … Well, the only people who will have gotten it right will be people who wrote the exact example of that method down in their handbook.

Between last year and this, the OU cut back on the number of exam centres drastically. Instead of driving across town from where I work, they wanted me to drive another 30 miles, to a town with horrible traffic, and a total of about 50 miles from my house. So … No.

I switched centres to one the opposite direction of my work. The downside is that I have to take a whole day off instead of just a few hours from work. The upside is that it’s on the sea front and gorgeous. The downside of that is, of course, I was trapped inside taking an exam and not able to watch it. The upside, though, is that it was miserable weather and I was glad to be missing it. The downsi… Forget it.

Anyway, I took the train (which was 15 minutes late) this time, and brought the following: A few wrapped breakfast pastries, the same boiled sweeties as last time, a water bottle, my handbook (as permitted by the exam arrangements booklet), my wallet (with photo ID), my phone (I get nervous about journeys I have no direct control over so can’t convince myself to leave my phone behind), the exam invite (never necessary or glanced at), some painkillers, and two pens. All in my backpack, which went up against a side wall during the exam.

The painkillers were because I’ve developed tension headaches from revision this year. They start around noon, and get worse until about five or six o’clock, then start to back off. They can be quite bad, and make walking difficult. As I backed my revision off this last week, though, they’ve been fading in intensity. I took some just before the exam as I started to feel one coming on, and it backed it off through the entirety of the exam.

Writing for three hours, I need something I don’t have to grip hard and I don’t need to use pressure for. So I used a gorgeous fountain pen that holds a tonne of ink and glides on paper, and a backup that, well, gets the job done. Both were filled with a waterproof ink just in case I spilled while hydrating. (Note to self: don’t hydrate. I spent the last twenty minutes rushing so I could get out and visit the little students room. The invigilators allow you to have bio-breaks, but they also scare you first with tales of students who were never heard from again. Or something like that. I stopped listening.)

The new venue was much better than the last. In addition to the seafront location, there were posh padded chairs to sit in, and the desks were high enough that I didn’t have to bend in half to write. There were no signs pointing the way for OU students like the last hotel, so I had to argue with the concierge that his directions sucked for two minutes before I finally found the right way. Then I saw others start the same argument with the concierge so I went and grabbed them and led them back. (They did NOT want to start any small talk. Absolute focus.)

I got there just one minute before they opened the doors into the exam hall. There were about eighty exam desks lined up, and sixty or so of them had exams waiting on them. Over two dozen were devoted to M250. I was on the front of a row, which was nice. It gave me more leg room, and I didn’t get nervous seeing people in front of me finishing faster. (The guy behind me took about half the time I did, though, and left.)

On the desk was my exam question paper, a desk record, a plastic clip, a metal paper clip, and an answer book. I was allowed to sign my desk record, but nothing else until the exam started. When it did, I wrote my personal identifier on the answer book, copied the exam number onto it from the desk record, and was off.

I won’t get into specifics for now on the exam, as others still might not have taken it. It threw me a few times, I know I missed marks for at least two sub-parts, and apparently I didn’t see an entire section, but can’t be sure of that until the paper is released in a few days. Regardless of missing that, I’m fairly optimistic for a distinction.

I had to rewrite one method at least three times, and I had to restart another more times than that. It had some very subtly tricky questions. The definitions and prose answers were my weak spot, and I feel confident with my performance on those.

You can’t leave during the last 15 minutes, and I was very close to being done with half an hour to go. I rushed my last two sub-parts, clipped everything together, and left. It felt like I was there for twenty minutes.

If I get a Pass 2, that’s okay. I’m very pleased with my effort level and understanding level this time around. I’ve got another exam next year and two EMAs, so we’ll see how much time I can find to revise for that.

I’m at that magical part of revision where full-blown panic starts to settle in and become normal. Suddenly finding motivation to sit down with my notes isn’t hard. It finds me, instead. No matter where I’m hiding from it. It’s not as bad as with the maths exam last year, because I’m more comfortable in general with the source. But I’m also convinced that means I won’t do as well because I’m not panicking enough to motivate quite enough revision.

Such is my mind. Or lack thereof, because I seem to have lost it somewhere.

Here’s some tips for revising M250 from what I’ve found so far. If you’re not me, then your style of learning probably isn’t mine, making these tips worthless. But they might be adapted to something useful for yourself.

  • Do as many past papers as you can.
    • I’m going to guess this is the top tip of any Open University exam where there have been exams previously. I don’t know what to do about inaugural module presentations … I don’t ever plan on taking another one at the OU as my first was … Well, not a literal disaster, but I’d rather eat my own foot, so somewhere between the two. Anyway, I’ve cut my answer time in half by doing this, and that alone would make it worth it. I’ve also found gaps in my knowledge that I’ve done my best to shore up.
  • Of course, hand-write the exam papers.
  • Start with the oldest past papers.
    • The earlier exams were based on a different structure. There were more questions, but not all of them are relevant to the current exam. So if you cut out the irrelevant ones, the remaining questions are quite a bit easier. So it’s harder to judge if you’ve progressed enough toward the end of revision.
  • Split up the questions.
    • If you don’t do a lot of handwriting (I’m doing it constantly these days just for the pleasure of a gorgeous buttery-smooth fountain pen nib on paper), you’ll want to practise writing for a three-hour stretch a few times. But other than that, it’s hard to find that much time at once in your day, and you can’t just save revision for the weekends. (Or maybe you can. I envy you. And am jealous of you. And probably hate you a little.) Just give yourself one hour per question, and do them when you can squeeze them in. You don’t even need to do them grouped together from the same paper.
  • Transcribe your answers into BlueJ. Or an IDE that’s actually usable.
    • We’re not given the answers (or answer examples) from past papers, but we can get some idea of how well we’ve done by seeing how much has to be changed just to get it to compile. We can also test the code and see if its execution matches the specification. In a few cases, testing can require coding a LOT of “assumed” classes that the code says will be provided in the scenario, but not literally given to the student. Implementing these requisite classes can be their own exercise in revision.
  • Submit your (corrected) answers to the M250 revision forum.
    • Having another set of eyes can help identify blind spots. I’ve had numerous such weaknesses in my code identified, and really help me get a better grasp of what’s possible on the exam.
  • Look over your TMAs and consider treating them as practice exams, too.
    • One thing my tutor has mentioned a few times is that at least one question on the exam for the past few years has borne a striking resemblance to one from the TMAs that year.

If I find anything else is really helping, I’ll come back and add to this later.

One thing I tried that didn’t seem to help was a revision tutorial the other night. It provided one example question for the exam, so that was nice (though I expect I’ll encounter the same one on a past paper in a few days), and there were some multiple-choice questions that highlighted that I haven’t memorised the module materials (there was one question where the answer is literally mentioned once in the assessed materials) … But it wasn’t anything that will help me either on the day, or with the rest of my revision. I’ve typed up notes for the tutorial that puts it into a format which would have made a nice handout, but that’s really about it.

Anyway, my result will be entirely down to my exam score. I got my TMA03 score back, and got the full 100 marks. That also means that my combined OCAS for the module is 100, so I’m very pleased with my effort levels. As always, my tutor provided excellent, insightful notes on how I can progress, and I couldn’t be more grateful. I hope I end up on a third module with him.

First, I’m a little way into revising for M250. My first step was to tackle the most recent past exam paper under exam conditions, to get a feel for where I’m at, so I know where I need to be.

It wasn’t pretty. I’d definitely have gotten a Pass 2 result based on this performance, and the knowledge has been (mostly) retained through my primary study of the module. But what’s missing is speed. By the time I finished my first question (of three), I noticed that an hour and a half had passed. By the time I finished my second question (in a rush), I only had 45 minutes left. And as much as you can pretend to do things in “exam conditions” for practising, you don’t get things like proctors coming up and fumbling with your paperwork and ID, trying to sort out the answer booklets, asking for new answer booklets, bolting all your materials together for marking, etc. The truth is, you’re possibly going to lose 5 to 10 minutes of the exam just to … well, paperwork. But that’s how narrow my margin for error is.

So I do need to brush up through the glossary a bit, and I do need to go over my notes a bit, but what I really, really need to do is to practise hand-writing code with a clock ticking down. No comments, no design principles, and possibly no helper methods. I just don’t have time for them. (I’m going to make an attempt to write helper methods using HTDP‘s wish list, which might work very well with hand-written code.) I hope I can find enough practice questions to get this down.

Second, I’ve started module planning for next year. I was surprised to see that preliminary due dates for major (and some minor) assignments have already been scheduled for the modules I’m enrolled on. The great news is that I don’t have any TMAs due within one week of each other. Two are due within eight days of each other, and another two are a fortnight apart, but that’s as much of a crunch as I’ll get, EMA notwithstanding.

M269 has two TMAs, an exam, and no fewer than seven iCMA quizzes. The other two haven’t got their iCMAs listed yet, and each has an EMA assignment at the end. TM257 has two TMAs, and TT284 has three.

TMA03 is due soon for M250, and I’ve got a line fault in my DSL connection. It’ll take at least a week to fix. One of the hazards of online study is that you’re at the mercy of the technology. I’ve arranged my study plans to allow for outages, but that just deals with my initial study of the material. It’s not robust enough for either preparing assignments for a module that requires coding in an IDE, or revising for them across all the various media on which I have notes and materials.

I got the TMA in over a month ago, but this is really making revision awkward. Not impossible, but I find I’m wasting a lot of paper on printouts.

I shot my final TMA of the year off to the submission service last Thursday, but just finished with the proof reading and resubmitted it. (I’d rather have an unproofed version marked than forget to proofread and submit.)

The TMA was really enjoyable, and there was a lot of room for creativity, more creativity than I’ve experienced at the OU so far. I do pity the tutors having to mark submissions which can basically come from anywhere. I was, perhaps, a little too free with the specification. There are times when it informs a specific order of steps to be taken, and I change the order and do the seven-step process in two (well commented) steps, instead. I’m pretty sure that I will lose marks for it, but I’m extremely confident of this assignment. I expect to get better than 90 marks, but even if I did spectacularly poorly, I’m unlikely to get anything but a Distinction on the OCAS portion of my results.

(Wow! Look at me be all cocky. I’m normally hedging every prediction I make. It feels good to be completely confident, for once.)

The OU and I both agree that one of the best things that students can do is reflect on their study methods to discover the most effective way for them to learn. Because of my own reflection, I’m not going to start my revision for the exam quite yet. If I were to do so, I fear I’d burn out well before June, and forget half of what I’d revised.

Instead, I’m currently making small programming challenges for myself, and trying to code them by hand. (An example from last night is to parse a maths problem written in text, such as “28 × 17.04”, along with some error handling and resiliance.) I’m not having much luck witing code by hand, though, because I don’t design programs from top to bottom. If I’m writing a method, and realise I need a helper method, I normally jump to my helper methods section of a class, and put a method outline there, including proper header and an appropriate (but wrong) return line, then jump back to the method I was writing. I can’t do that on paper. I’ll have to learn how to plan every single detail before I write anything, and I just don’t know that I care to train myself how to do something I never plan to do. I’ll take a lower result if I have to, I think.

Anyway, we’ll hit up revision some time toward the end of April, I think.

I finally got through the end of the M250 main module materials. For some reason, the last unit on file I/O was difficult for me to sit down and concentrate on. In the end, I took some detailed notes on the reasons behind the techniques suggested in the materials for handling files and streams, and then focused on the practical activities. In the last section, I saw that it was likely that they were going to have us import a collection of objects of a custom class from a text file, and wrote the method to do it using the Java class libraries as my reference. This ended up being the last four or five module activities all rolled into my one self-set challenge, and my solution was remarkably similar to the final M250 example. (I’d separately opened a scanner and a buffered reader, rather than wrap the scanner around an anonymous buffered reader.)

So I’m going to put in my second attempt at the last iCMA, then get going on the TMA. When the iCMAs are formative in nature, and I can take them as many times as I’d like, I always take them once before I read the relevant materials, and once after. I think a lot of people do this to focus their study. I just do it to track my progress.

I’ve done a little under half the TMA so far. It’s quite enjoyable. There’s a lot of iterating over custom data structures. Anybody who builds dynamic content web pages should find the logic straighforward, and can concentrate on the theory and the syntax.

I’m looking forward to revising this module. No idea where to start, so I guess I’ll start with past exams to see what’s expected.

TM254 was so bad that it had me tied up in knots every time I considered logging into the OU site. As a result, I hadn’t done much of M250 during January. (Thankfully, I didn’t need to. I’d taken care of all the things I had to do for January before Christmas.) I’ve spent the last week or so back on M250, and am caught up again through mid-March.

It’s interesting to take M250 after the prep work I did for Java and programming in general. It’s good for the object-oriented paradigm, but it’s not very good for design. (So far, I’ve only encountered three principles for program design, and they don’t include choosing readability over simplicity, or coding each method or function only to only do one or two things to support reduction of duplicate code through modular design. The design principles they have are good ones, though, they just need to be a bit more robust and forward-thinking.)

It’s clearly focused on an academic understanding of the paradigm, and that’s fantastic. I’m much more at ease in speaking about Java and object-oriented programming in general, confident that my verbiage is correct and that I’m being precise in my descriptions. It makes it easier to read other sources, and I’m finally deciphering official manual pages without having to read translations of them. M250 is a great module.

I’m very impressed with my tutor. His comments on my last TMA were spot on, disagreed with me at various points, but respected my design choices where he did disagree. I only dropped one mark on the TMA, and I laughed out loud when I saw what I’d done. (I had just finished making a method on one sub-question, then neglected to use it and re-invented the wheel on the very next sub-question.) But I’m used to being told I’m wrong because I think approach A is easier to read and understand, and the tutor thinks that approach B is easier to read and understand, and therefore approach A is simply wrong.

It’s a huge divergence from TM254, where it doesn’t matter what the question is, how you phrase or defend your answer, what parts of the module materials you cite to prove your answer … If you didn’t have the exact same wording as the author of the evaluation, it’s 100% wrong. It’s despicable. It’s not higher education. It’s not education at all.

Apparently I wasn’t the only one to quit TM254 when I did. There were quite a few others, and it’s starting to cost the OU money. They’ve responded to the complaints by (as always for this module) misunderstanding the heart of the problem. They’ve told students that some very small sections now are optional and won’t be evaluated. (Really TM254 module team? You’re telling us that something in the module materials won’t be evaluated? Like ITIL vocabulary, which made up a full 10% of TMA01? We’ve heard that lie before.) They’ve also told students they’re not studying right.

So clearly they’ve heard and understood the concer … Okay, I can’t even finish that sentence without having to take a shower. As far as I’m aware, they’re trying to determine what concerns students have without actually talking to any students with concerns. I don’t know how they’re expecting that to work, but from what I can tell, it violates everything they teach in that module about any kind of service.

I’m still considering moving over to Q67, Computing & IT and Mathematics. I’ll have to look into how much work it’ll be in stage 3, because it might add a lot of time to a degree that’s already taking seven years. But for now, I’m just going to enjoy being able to study again and learn from a module that’s been created properly. And is legible.

This week has been … quite a week.  I’ve been ill since Sunday, and it’s been worse every day.  There has been a concerted effort by drivers, weather, and road works to keep me away from home.  (I usually have a twenty minute commute.  I’ve spent about six hours stuck in traffic jams this week.  I normally encounter four in a year where I live.  There were five between leaving work Wednesday and getting into work Thursday.)  And work is its own thing right now.

On the other hand, I managed to completely catch up on TM254, submit TMA01 for TM254, catch up on M250, and as of ten minutes ago submit TMA01 for M250, two weeks early.

I’ve got plenty of opportunity to get a bit further ahead in M250 right now, and I’m going to take it, but I’m just about at the first portion of group working in TM254, so won’t really be able to move too far there.  Which is fine.  I really can’t take much more of that module as it is.  (I think I did better than anticipated on the TMA, but not by much.  I think I might squeak in at about 80 marks, but I think a Pass 1 on it will elude me.  I mostly just wrote the ITIL definition of service and/or value over and over until I had 2000 words.)

I feel confident of my M250 TMA, at least.  I know (and really like) my tutor from a previous module, so I know he’ll go out of his way to pull me up on something or other on it, but I shouldn’t get below 90%, I don’t think.  My guess is he’ll claim that my self-documenting code isn’t clear enough and that I should have had at least one coding comment in one of my methods.