Okay, so let’s try this again.

I didn’t anticipate either needing such a long break, or ever going back after the break turned into a long one. But I really miss studying. I don’t have the mental capacity I did three years ago, that feels gone forever. So I’m taking the advice of many visitors to the blog, and slowing things down. Just taking one 30-credit module a year for the next four should see me through, without too terribly much stress.

Things got insane with Covid. For the first year and a half, work was rough. Where I work, we had to observe every lockdown, keeping over a thousand people working remotely, and going through all the lockdowns wasn’t easy. Those lockdowns kept rolling through until December 2021. Just the sheer numbers of tools we went through is insane to think about.

2022 wasn’t too bad. I had a huge holiday at the end of it, and I was enjoying just working during the day and enjoying my free time in the evenings, and … being normal, I guess.

I’ve known I was itching to start studying again for a while. I didn’t want to start it up last year with the holiday I had planned. But I had to postpone it this year, too, for a couple of months. My job had to reduce the number of senior IT positions … The trouble being only my boss and I have senior IT positions. I basically had to interview against my boss for the remaining position. I didn’t want to be job hunting, then settling into a new job, and going back into study all at the same time.

Thankfully, I won’t need to be. I was successful in my bid for the position, so I think I can finally step back into my studies. I enrolled this morning. I’m extremely excited about the new AI module, but I didn’t see if it was a first presentation this year. I’ve sworn off first presentations. So that’ll happen next year. This year I’m trying again with TM357 Cisco Networking part 2.

If things go well with the AI module next year, though, I’m planning to use that for my cap-stone project at the end of Stage III. I’ve been spinning up a few language models (GPT-2, DialoGPT, and GODEL) on Google Colab, and playing a fair bit (like everybody else on the planet) with OpenAI’s API. I have an idea for long-term context memory using Pinecone DB (or another cloud-based vector database) for a chatbot, and there’s an interesting GitHub project I saw that uses a similar idea to consume your internal documentation to become an AI knowledgebase. Combining the two could make a super responsive helpdesk assistant, and I’m really excited about giving it a go.

Anyway. That’s my long-winded (as always) way to say: I’m back.

This year’s Get Ahead Early & Stay Ahead (my #1 advice for the OU) is restricted entirely to TM352: Web, Mobile and Cloud Technologies. (My other module this year, TM357: Cisco Networking (CCNA) Part 2, won’t have its Cisco NetAcad materials released until after I have a tutor in a few weeks.) And yet, I still caught myself asking if it was worth it to start early. It always is.

If TM352’s title of Web, Mobile and Cloud Technologies sounds a lot like TT284’s title of Web Technologies, there’s a reason for it. They’re strongly related modules that cover a lot of the same material, ostensibly at different levels. One of the things that got under my skin about TT284 was a lack of clarity about the differentiation of Cloud Architecture as it applied to systems infrastructure and program design. The module guide indicates there will be practical experience working with both this year, so that seems like a difficult aspect to repeat.

Another positive is that there are weeks set aside just for working on assignments. Assignments in TM352 have a strong practical component, so it can be extremely useful to have study time devoted to getting those practical portions working correctly. With any luck, it’ll help me if there are any rough patches in TM357, as well.

Mostly what I’ve been doing this month, though, is chatting away on the OU STEM Club Discord. Well, no, mostly lurking. About one in every twenty comments I make actually manages to get past my internal filter, so mostly I’m just reading. It’s been remarkably busy this month, but I’m told it will be a bit quieter soon. It’s been nice to be able to chat with others who are going through the same things I am, and has really enhanced the entire OU experience.

Anyway, I’ve managed to get my customary 2 weeks ahead, at least for the one module I can, so I’m going to go back and lurk. And maybe see some of you there.

This is going up at least a month later than I wanted it to. But I’m just having difficulty figuring out what to say about TT284. That’s because there’s precious little to review.

I just didn’t feel like there was enough in this module to be considered a Stage 2 module. I don’t know if it’s because I already know and use a lot of the technologies the module references. Maybe it’s because I have my own practices for the planning and specification phases. Or it could be that it’s just light on content.

The module materials encourage students to interact by visiting the forums and writing about specified topics. This doesn’t actually garner any (well … much) diaglogue. It’s mostly just a graveyard for scraps of students’ notes. The best way I found to use this was to look for alternate viewpoints to my own, but spending my precious study time combing through poorly formed and poorly informed thoughts had a low return on investment.

What really did work for me was the assessment for the module. Assessments were split down the middle with practical activities and academic (or, rather, academic-dressed-up-as-vocational) reports. I really felt like it did a good job of allowing students show that they could both perform and understand the details from the module’s learning objectives. The feedback from my particular tutor was insightful and constructive.

The module doesn’t teach much, though. It exposes. It gives a whirlwind tour of web-building technologies, and approaches to designing web applications. There’s a whole lot of copy-and-pasting intended. You’d come out of this module knowing what you don’t know, which is a good starting point, but that feels more like a first stage module to me. In fact, that sort of seems like the intention of the web design portions of Harvard’s CS50, but you definitely learn more on that module. And that’s just a very small section of a free-to-all introductory course.

Of course, CS50 only teaches the practical, technical side of web design, and none of the design, specification, or non-technical details. It doesn’t cover wire frames, specification gathering, accessibility considerations. It only briefly considers architectures. But it’s also only a few weeks long.

I guess my bottom line for TT284 is that it’s just not advanced enough for Stage 2. It would be an ideal module in place of TM129 … Or maybe even just one of its three blocks.

Since TM257 is kind of a non-module, a non-review seems appropriate. And the great thing for me is that a non-review seems like it should be rather quick to not write.

As stated many places, the content for TM257 comes from Cisco’s NetAcad course environment. It comprises NetAcad courses for CCNA R&S: Introduction to Networks and CCNA R&S: Routing and Switching Essentials. You read very, very dry web pages that are like a Flash website-book, check understanding through a variety of drag-and-drop exercises, a very poor syntax checker, and a very awesome virtual network lab called Packet Tracer. (Okay, so the UI for Packet Tracer needs some remedial attention, but its functionality is excellent.) There are glossary flash cards, quizzes, and chapter exams after each portion, and a “final” exam for each of the two constituent courses; one is taken at home, and one is taken at the day school when there isn’t a global pandemic.

NetAcad has all this as a lovely pre-packaged unit, and though dry, it’s very good. The pacing, the knowledge, the checking, the repeating, the practising … It’s a great package. But for it to be an Open University module, it needs more.

It needs learning outcomes. It needs summative assessment. It needs TMAs. And frankly, I’m not very keen on TM257 in this department. The learning outcomes aren’t what NetAcad designed their module to provide, but rather a combination of what it’s observed to provide, and to a degree what it’s hoped to provide. The module team has made it very difficult to compare notes, but it seems that the evaluation fit so poorly this year that possibly nobody scored a distinction-level percentage on one of the EMA questions, and possibly only a couple of people even scored above 70% on it. Which is more or less fine, but it’s less fine when the items being evaluated must have been informed by what was taught by someone else. Either the learning outcome doesn’t match the materials, or the evaluation doesn’t match the learning outcomes. Because it seems a fair stretch to think that the materials did teach what was in the learning outcomes, the learning outcomes were appropriately evaluated, and nobody lucked into a distinction-level answer. Especially when you consider how many certified industry practitioners were on the module.

I mean, I’m not a conspiracy theorist, but I’m beginning to guess why it might be that we can’t get straight answers about how people did on that question.

Anyway, that aside, I suspect we’ll see similar numbers of people with distinctions this year as we did last year, and that seems to fit more or less with other Stage 2 modules. So, over all, in the broad view, it feels like the evaluation is in the right ball park.

So that’s kind of my evaluation of the module, too. It’s got dry materials, great information, and evaluation that’s more or less fine.

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.

My characteristic advice for Open University study is always: Get ahead early, and stay ahead. This is because real-life considerations invariably impede study at some point during the year, and it’s easier to absorb these if you’re ahead. It’s much more difficult to catch up if you fall behind. Because of this, I like to get one or two weeks ahead of the schedule before study begins in earnest.

This year, I nearly didn’t make it. I’ve just now finished getting a bit ahead after the module websites have been open for two full weeks. I tried switching to hand-written notes to aid in memory retention. The result is that I accomplished in a week and a half what normally takes me three days to do. And when I think about it, memory retention is not a study problem I have. My weakest point is guessing what tutors want to see. New strategies for dealing with this are where I should be spending my planning time.

Anyway, I’ve swapped back to digital cloud-based notes, and finally caught up to where I wanted to be. Or maybe just a bit ahead. I’ve still got nearly two weeks to go before the official beginning of my academic year, so I have time to make any other adjustments that are necessary. With three modules going simultaneously, I really need to concern myself with speed and the best results with the shortest effort.

M269 appears to be just what I thought it would be: It’s a very mature module with a well-planned structure and resources that make sense for the subject matter.

TT284 is slightly less encouraging. There’s a requirement to misuse forums as group engagement which is obviously wrong-footed. If the goal is engagement, you need a problem more engaging than throwing words at a wall which nobody will ever read. It appears to be endemic of the module, so far: Short-sighted decisions based on ticking boxes handed down from above. This weak structure will make the module a bit annoying, but shouldn’t affect the quality of its content.

TM257 is a mystery. As it’s based nearly entirely on Cisco’s NetAcad curriculum, most of the structure really lies with Cisco, and will be unavailable until I have a tutor. The content should be very strong, though. The module team got a bit lazy with the assessment strategy, only saying that some activities contribute to different aspects of assessment. They haven’t expressed how much they contribute, which is rather the point of the assessment strategy. But I think they were just a bit rushed to press. They’ll probably correct that in time. (They’ve probably got their hands full rewriting every paragraph that mentions the obsolete CCENT.)

TM257 also doesn’t appear to allow students to work ahead (though it could just be poorly phrased descriptions). For the reasons detailed above, this seems short-sighted to me and better suited to classroom study than the realities of distance learning.

I’ve received two emails from the OU this week in relation to two of the modules I’m starting in October: TM257 and TT284. Their titles were nearly identical, but their content was rather different.

For TM257, which I happened to read whilst on holiday, it had an offer to prepare for the module by creating a Cisco NetAcad account, logging in and downloading the Cisco Packet Tracer network simulation environment, and taking a short course on its use. I thought this was cool, created the account, and put it out of my head for a while. I figured the TT284 email would be much the same, and I made a note to check both of them out in more detail after I got back.

I did the Packet Tracer course today. I’m quite happy to get my hands on Packet Tracer, to have a bit of a play with it before the module. I know how slowly things are going to move at the module’s start, but it’ll help at least a little. I had fun trying to do a Packet Tracer Activity without watching the accompanying video. I thought I’d completed it in just about five minutes, but it was slightly over half an hour before I’d gotten the activity to agree that I’d completed all the tasks it was asking for.

The course itself wasn’t terribly helpful, as it’s mostly going to be over the heads of non-networking people, and fairly basic for any networking people. As is so extremely common with OU materials, it’s a solution without an actual audience. They really need to work on serial development from one year to the next, so these gaps don’t engulf the majority of the intake. It took me just over an hour (due to taking an inordinate amount of time on that one activity, which ideally should have only taken 7 minutes, but I wouldn’t have learned as much), so it was cheap in terms of my investment. Over all, I appreciate the offer and the effort. (It’s rewritten for last year’s TM257, but is already outdated as the CCNA paths no longer look at ALL like it did a year ago. On one hand, it’s not the TM257 team’s fault that it’s changed so drastically so quickly. On the other, everybody in this industry knows how often this happens, and we know not to plan anything that depends on it being static. I hope they’ve got better clarity on the road map by the actual start in October. I know Cisco is willing to help them if they reach out for specific help.)

TT284, on the other hand … Well, despite the similar title of the email, it had nothing at all to do to help students prepare for TT284. It was a link to the Are You Ready For quiz for TT284, along with an explanation that it was a student’s fault if they didn’t do well on the module, despite students being assured they’ve been prepared if they’ve passed all the courses leading up to TT284. And that’s it. And the questions in the AYRF quiz boil down to, “Are you able to write HTML by hand, and have you written a lot of programs outside of OU study?” It’s frankly insulting and reads like a disclaimer. If students aren’t getting enough out of their previous years’ study to do well on this module, it should be addressed at the end of those modules. And real resources should be offered to the students, rather than a general, “You suck at HTML. Good luck sorting it out!”

I get that university study is learning how to learn at a deep level, rather than being spoon-fed knowledge, but the OU has convinced its students that they’re ready for something they’re not, and then told them it’s their fault for not being ready. Again, this would be better handled were there better serial links from one module to the next in both materials and assessment/feedback. At the very least, TT284 could learn a lot from the TM257 staff.

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.

This 2019/2020 academic year, I’m going not going to be able wing it. I’m taking three 30 credit modules, which the OU recommends might take from 24 to 27 hours of study a week. Realistically, I read and study slowly, and this is stage 2, so that might be underestimating it. Unfortunately, there’s really not another gap in my schedule that I can maintain for more than a few weeks.

For a few weeks at a time, I’ll be fine with finding extra time here or there, but just to get TMAs out, and possibly exam revision come next May. (May is always insanely busy at work, though, for some reason, so we’ll see.)

I’ve squeezed an extra half hour into my schedule at night, and I have my extra hours on Wednesday back, but I’m just barely in the green zone, now.

Study schedule

SatSunMonTueWedThuFri
20:30 – 23:30 15:00 – 17:00 20:30 – 23:30 20:30 – 23:30 17:00 – 20:00 20:30 – 23:30 20:30 – 23:30
20:30 – 23:30 20:30 – 23:30
3533633

Total: 26 hours

(The OU academic week starts on a Saturday.)

I know that this is the absolute limit of my self discipline. Anything more is just going to crash out. The hours aren’t the best for my brain being active, but my family comes first. So everything has to happen after bedtime, or when the boys are with their grandparents.

I’ve also been able to plan for what the week-by-week looks like, making some assumptions about breaks in the OU’s schedule next year:

M269TM257TT284
Week 614/11 TMA01
Week 94/12 TMA01
Week 1012/12 TMA01

Break 21/12/2019 – 3/1/2020

Week 1530/1 TMA02
Week 1820/2 TMA02
Week 2112/3 TMA03
Week 2325/3 TMA02

Break 11/4 – 17/4

Week 32ExaminationEMAEMA

M269 also has 7 iCMAs throughout the year, but they’ve never caused me to rush in the past. There’s a near miss in weeks 9 and 10, but they’re first TMAs, which tend not to require as much work as later assignments. Finishing two EMAs and revising for an exam all at the same time does seem like a crunch, so I’m glad I’ve got about two months to sort that out, along with studying the final module units.

At some point there will also be a residential / day school for TM257. It will probably be around the Easter break, and there’s an evaluated network configuration task that’s worth 30% of our EMA, and an exam on the day which I think is worth another 30% of the EMA. (I don’t have access to the assessment strategy, yet.) Revising for that might be very, very tight on time, so I hope it goes alright.

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.