Rounding up M269, TM257, and TT284 … No. Just M269.

I’ve been putting off a review of these modules because covering all three is a lot of work. And a great way to make that worse would be to split it into three different posts. So that’s exactly what I’m going to do. First up will be M269, with a breakdown of what’s encountered on the module, how I feel about the various sections, and then an overall reaction to the module.

Note that I’m not going to discuss actual programming here. M269 happens to use Python as its language of choice, but that’s just a vehicle to demonstrate algorithms. University is not the choice place to learn a progamming language, and the concepts in M269 are language-agnostic.

M269 starts by considering the concept of abstraction, and multiple ways it can be used in computing. This is excellent, and fills a major gap in M250 caused by the language choices employed by Java. It’s a gap that made M250 more difficult to study, so that might be a reason to consider taking the two simultaneously … But then you’d have two different programming-heavy modules using different languages, and that could prove confusing, especially come exam time. The conventional wisdom is to take M250 the year before M269, and I wouldn’t disagree with that.

From abstraction, it considers (abstract) data types. I think a lot of the instruction here implies without stating that there’s a natural link between the shape and definition of your data, and how you can use that data. It’s explored more explicitely in some MOOCs I’ve done, and it feels useful. Still, students who pay attention will find the connection. Using the data leads to solving problems (such as searching and sorting) using algorithms, and then evaluating between multiple useful algorithms. This provides the context for discussion of algorithm complexity. So far, so good. This is covered in many introductory-level computing MOOCs from other universities. Frankly, I didn’t find the OU model particularly compelling, aside from laying the foundations of abstraction. But it wasn’t much worse than other methods I’ve encountered, except that it’s rather dry. It’s not as fun or entertaining as MIT-OCW, HarvardX, or UBCx MOOCs, and contextless programming challenges (aside from the iCMAs) aren’t engaging as they’re encountered in the materials. On the other hand, I found the Big-O (being changed to Big-Ω for future presentations, and the module actually explains the difference) discussion more academic than I’d encountered, which I found really useful.

The module also covers formal logic, and it does this beautifully. My dad used to lament that Geometry was the closest that students got to formal logic in school, and thanks to computer science that’s no longer the case. The largest, gaping problem here is that there’s no feedback to students on this portion of the module. Along with computability, this is assessed only in the exam, and detailed feedback is unavailable. This does a disservice to students, but one that’s likely welcome to both the majority of students and tutors alike … It seems like a lot of work for everybody.

I never got a word from my tutor, aside from a bizarre marking on a TMA. The TMA asked for changes to an existing function, and I was able to get the job done without changing the inputs and outputs, which is essential in a multi-programmer environment. She criticised me for not making a completely different function which couldn’t be used as a replacement. Fair enough. But I was able to get help from other tutors, and the tutorials from these other tutors were always engaging and enlightening.

I think there’s a lot that M269 does right, but there’s a lot that freely available MOOCs do better at an introductory level … M269 was a bit basic for a second-stage module. It does some things, like formal logic, abstraction, and complexity, better than those MOOCs, but it’s not as engaging. And for an eight month module, engagement is critical. It’s a good and important module, but it could do with some fresh, colourful paint.

2 comments

  1. I would love to know how M269 was last year as this year it is a complete mess, there is a book, the website material and a companion and it is difficult to context switch because of this. I feel I would have been better doing a more in depth online course than this because the way the material is presented is horrible

  2. Hi Craig. They had the same Text book -> Website -> Companion structure when I took M269. The trouble is that the text book, while an excellent starting point, doesn’t have the focus that the module wants to portray. It has some good material, particularly for conceptualising and learning specific algorithms. There’s a lot that needed to be cleaned up by errata, as there are consistency errors within the text, as well. (This adds a fourth source material for the module.) I get where you’re coming from. Two weeks were spent trying to get the module team to understand our confusion as to the difference between where the text in the physical book was, where the text in the online book was, and where the module said the text for both was.
    I do feel a lot could be gained by the OU writing everything from scratch (though I’ve no doubt this is monumental, and it’s difficult to defend that somebody else hasn’t already done it better), and incorporating the Companion material directly into the primary materials. It feels like they keep putting plasters over it to forestall a tear-down. I’m sure they’ll get to it in time.

Leave a Reply to Craig Cancel reply

Your email address will not be published. Required fields are marked *

I accept the Privacy Policy