The first year of my OU degree, trying to learn the basics.

This is the second part of this blog, the first part is here.


I’ve cleared up

Well as you may have noticed I’ve done a wee bit of housekeeping. Not all that needs doing, but some. The reason?

Too much to do

Well mid-term break is here – time to catch up on all those little jobs that you’ve been putting off. So I gave myself up to a weekend of zonking and then sat down this morning to write down the to-do lists: one for personal stuff; one for work. After about half an hour I had two sides of depressing looking A4 – I’ve fallen behind somewhat. One week may not be enough to catch up.

I’ve been here before [of course] and at least this time I’m not behind with my OU stuff. So that I know that the trick is to do something, something that you can get ticked off the list. So I started here.

I started here because I’ve noticed that I’m not updating this site as regularly as I could do. During the tts I usually managed to post something to my blog at least once a week and an article at least once a month. Not so recently; I struggle to get something up here every two weeks and I can’t remember the last time I wrote an article. And that’s not because I don’t have anything to say. Oh no, I’ve always got something to say – it might be complete rubbish but I’ve always got something to say.

So what’s the problem?

Oddly it may be that I’m not stressed enough. Let me explain that.

When you have a huge amount to do, you get good at doing it, or at least you develop a decent triage procedure. Several times recently I’ve noticed that I’ve put off something that needs doing for too long. Long enough for it to become a problem; one that nags; one that inhibits you from doing other thing; one that blocks. This is bad.

So we have to stop the rot. And the way to stop the rot is to get moving somewhere, anywhere. They do say nothing succeeds like success, I wouldn’t know, but I do know that if you’ve lots to do doing one thing leads to the doing others. Tasks by implication anyone?

I decided that the somewhere should be this site. It could have been the new site that I’ve been designing for some months now, or it could have been the school site, or it could even have been some of the stuff I get paid for [yeh right]. But I had to achieve something today.

But not stressed enough?

The trouble with stress is that you get used to it. During the tts I was under massive pressure both at work and on the courses. But when that stops? Yes, there’s the rub. There’s such a thing as stress-decompression.

I needed to go back onto anti-depressants about three months after I finished the tts, had a good holiday and felt rested. Why? Well everything has a price and I needed to pay it; and part of the price was not being as organized as I formally was.

We’ve gone down a bad road here

I didn’t mean to get this heavy. So I’m off to write [or try to] my first article in ages.


A brush with Mathcad

Following on from yesterday’s let’s get moving work on this site I decided to start the next TMA for my maths course. This involved opening up Mathcad for the first time in a while. Why hadn’t I used it in a while? Well I lost a lot of marks on my last TMA by stuffing up the Mathcad stuff; injuring both my final mark and my geek pride. I was in the huff.

So I spent a couple of hours this afternoon working my way through the Mathcad work that I needed to do for the current TMA. During which time I discovered a couple of things:

  1. I don’t like doing maths on a computer.
  2. I’m still at sea with Mathcad.

Well 1. above is just a preference; computers [as we know them] didn’t exist when I first did maths so I’ve always done it thus. But 2. is a bit more interesting, after all I am a geek.

Is Mathcad a bad programme?

I’m going to say a qualified no. It’s a qualified no because while it does do some things beautifully it has real usability problems [for me]. The question is are the usability problems my fault? Unavoidable? Or is Mathcad to blame?

When I first started to use it I found Mathcad fascinating; I had loads of fun playing around with its graphic capabilities. But when I started using it for real work, i.e. TMA submissions, I ran into problems. It didn’t behave very nicely; it wasn’t intuitive. I thought that I could do something about that, hence pimp my Mathcad, but it turns out that there is more still to do.

This of course doesn’t answer the question: why is Mathcad difficult to use? Well I know it’s pusillanimous but I’m not going to answer that question. Yet. I’ll need to spend a whole lot more time playing around with it before I condemn it, me or absolve it because it has to be that way.

So that’s what I’m going to do now – go and play around with Mathcad.


The real world

I’m doing quite well on the computer course so far and [I think] that it’s making a better programmer/scripter of me. But when I move away from the precise world of computer science and get down to some real-world tasks I’m afraid that thing are the usual guddle.

I ran into this the other day ⇒ Someone in the webapps. suggested automatically generating a real [ie for humans] site map from a Google sitemap [ie for spiders]. That shouldn’t be too hard I thought, this is a job for XSL. Well I can inform you that the thing is still not in existence. Here’s a potted history of the stumbling blocks along the road:

  1. I realize that my XML was a wee bit rusty—in fact I can’t even find my Altova XMLspy and it doesn’t look like there’s a free version any more.
  2. The sitemap, as it stands, doesn’t have the structure for an easy XSL transformation. Can it be extended? And if so how. A visit to suggests that you can; you create your own namespace.
  3. I’ve never used namespaces much, so I hadn’t realized that when you’re using them you also need to declare the base namespace in the XSL file. That took some time to find.
  4. Eventually after working ten times as long as I originally thought I had something that worked, time to check that Google doesn’t choke.
  5. Google choked.
  6. So what about automating creating the sitemap? After all these things are a bugger to create and maintain. So I started to sketch out how I might do it using PHP [see I have learned something—no diving straight into coding]. Now I may be wrong but PHP didn’t feel ‘right’ for the task.
  7. How do others do this? Well most seem to use Python, will I have to learn that?

At this point I stopped. I guess I spent a good five hours struggling to do something that I could dash off in ten minutes. [Interestingly there doesn’t seem to be anything like what I’m trying to create out there].

What I’ve got is still useful, it’s just not as…automated as I wished for; you have to maintain two separate sitemaps—which feels ‘dirty’.

So for the present I’m leaving the real world alone—I’ll scurry back off into academe where things work. Or better yet I should finish the next TMA for the maths course.


Block 3— the brick wall

Well I predicted that the computer course was going to get hard, and it has. Other’s seem to be struggling too, but interestingly none of them seem to be struggling with what’s bothering me—the case study. I just can’t get my head around this.

Formal logic: maybe not my favourite thing in the world, but I can cope with it. Databases: the hard bit here [for me] is to justify mathematically what I ‘know’ needs to be done. I can see how the tables should be, but transitive dependencies? I have to work backwards through the process, but, again, I can cope with that.

Not so the case study. I’ve tried reading in in the bath, in bed, in the living room, at work, with and without pencil and paper. I can see what is [I presume] meant to be going on but I can’t follow it.

So in the end I decided that the only way I was going to make any progress was to create my own case study; for some of my own work.

A sitemap generator

Yes, the very same thing that I was gibbering on about below. So armed with a rainbow-assortment of pens and with a pristine stack of jotters I got down to it. The result[s]?—mixed.

On the plus side…

One of the things that I’ve strongly taken from this course is the difference between a specification and an implementation. I didn’t think about what language I was going to use, how I was actually going to write the code; just what I wanted to do and the functions, and their specifications, that were required.

Which led me to the realization that I hadn’t put into words what it was that I wanted to do. I had it in my head of course, but I hadn’t written it down. [Well I’d written bits & bobs: there are various jottings littering my house]. Now I know that this is what you’re supposed to do but I almost never do it. Why not? Because it isn’t that much fun. Which leads me to introducing features half-way through the production process. And that’s me, working on my own code, never mind working for a client.

So for once I did a specification: the core functionality, what might be nice, what wasn’t required. I’m now the proud possessor of a nice checklist that I can work through.

Next I thought about the top-level implementation. At which point formal logic comes in, or at least it does in the case study. I could see some of the needed predicates ISFILE() or ISDIR() but when it came to writing out formal propositions…forget it. I didn’t know where to start.

Perhaps I picked a bad example for ‘my’ case study—but I wanted to do something practical. And I did gain some valuable insights into how the code is going to work, how I’m going to test it against the specification and about where certain thing will happen [where & when will the file be written to for instance]. But that’s for another time and another place.


I’m still no further forward when it comes to understanding the case study.

Still life is like that: lessons learnt, re-learnt or unlearnt, but more still to do. Now, off to try and write some code.



Don't like them. I've spent the last few days working my way through block D of the maths course and I must say I'm not enjoying it very much.

This may be because statistics are new to me. I do, vaguely, remember doing something with standard deviation as a callow chemistry student about thirty years ago, but that's it. And now that I've made their acquaintance I'm not sure that I wish to form a friendship. I'm not sure that I'm finding them hard—calculus seemed ‘harder’ but I enjoyed that. I think that my problem is that statistics feels ‘mechanical’, although I'm not entirely sure what I mean by that.

That said I haven't done the computing part of the block yet—I may like that. It strikes me that it may be quite graphical which I usually enjoy. We'll see.


I finally managed to get this working; well it does what it says on the tin, I'm not sure that it's efficient or elegant. Despite all my planning once I got going on the code it was the usual mess—do a bit, test, fix, do another bit. I did use the functions that I'd planned but there was scope creep and general hacking rather than a seamless transition from specification to implementation that I'd envisaged. More work to do on my programming methodology.

Google code

Having got something working I decided that the best place for it was on google code. That way people [ie better coders than me] can improve the basic template. That's the hope anyway.

If you followed the above link you will have realized that there isn't a scrap of code there. I tried to import the files using SVN but I was at work and the firewall wasn't letting me through [I think/hope]. No problem, I popped the files onto my memory stick so that I could do it at home. But when I got home I couldn't find the files. So…

I'm going to re-format my memory stick. The time has come—it's full of crap and I can't find anything. So why am I feeling queasy? Because I haven't backed up anything elsewhere and I'm not sure that my SVN repositories truly reflect the state of my files? Yes.

Wish me luck


A slight panic

I’ve suddenly realized that I’m due to submit a TMA for the computer course in just over a week—this has somehow snuck up on me. I think that the very easiness of the pace of these courses [compared to the tts anyway] has lead me into a slight sense of false security. I lack the required sense of urgency.

Now, I know what you are thinking—over a week to complete a TMA? That’s loads of time, particularly if you’ve already answered half the questions [even if they can't be found due to massive untidiness]. Well not if you have to submit a Word document containing many, many special characters. For the previous TMAs it took at least twice the amount of time getting my answers into electronic form than it did to actually answer the questions. A week isn’t too long a time when you consider this.

Boolean algebra

Much of the TMA concerns this, which is tricky.

I’m not finding this hard exactly—just unfamiliar, I keep having to look up the rules. ¬s ; s t does not immediately suggest t to me, although I can see that it works. I suppose that in the dim and distant past I felt the same about normal algebra. Then I was forced to work my way through hundreds of exercises by the redoubtable Miss Harkness; so now it’s second nature to me. So that’s what I need to do—lots and lots of exercises.

And herein lies the problem:– I can’t find any exercises. I solved the, similar, problem for the maths course by buying/borrowing old maths books but there seems to be a dearth of similar books on Boolean algebra. Online? Well there are some worksheets out there, but most use a totally different notation from the one used on the course. What on earth is a NOR gate?

This wouldn't bother me too much if we weren't going to be examined on this stuff; time is going to be a major factor.

I've just realized that I should ask for help in the course forums—I can’t be the only person having trouble with this.

Not using support

My realization above brings up another point—I often forget that there are course resources available to me. I have a tutor, I can post to the forums, I just never think of it. Why? I suppose that this is due to my experiences on the tts, which were a very different kind of course. There are a Croesus-level wealth of sites on all aspects of web development out there. My feed reader contains around one hundred feeds on web-related topics but precisely none have been added for these courses.

True some of my feeds are maths/M263 related but I haven’t added any specifically. Note to self—find some maths/computing blogs.

Anyway I've been at this blogging nonsense way-too-long, time to get started on my TMA


Logical operators

Are a pest. As I anticipated getting my TMA into a Word document was a task [almost] on par with doing the damn thing itself. By rights it shouldn't be a problem—I was using Word 2003 so:

insert → symbol… → choose symbol → insert

Should have done the trick. But for some reason although it displays correctly it's about 10em in height. I suppose that I could have put up with this, but the huge gaps offended me too much.

I tried various methods until I came up with one that worked [for me]–unicode. It turns out that, for say , you type 8707 alt–x and you get the required character. [I also set the entire page in cambria, which although it isn't my favourite font, supports a large number of unicode characters].

As I say this works for me but I'm a webby and used to using unicode entities and weird tags [although I'm not in Joe's league]. But it may not be for everyone.

What certainly won't be for everyone is what one student suggested in the café—a combination of [among other things] XML and Haskell. Wow! Frankly he should pass the course on that alone. [And I'll tell him so as soon as server 2 stops 504 ing.]

Shoddy work

Well not shoddy exactly but I decided not to over-check the current TMA. I worked through the unit books and then did the TMA without referring back to them. Where's the logic in that you ask? You want the best mark possible don’t you? Well not always.

I got decent marks for the first couple of TMAs and from my reading of the assessment strategy your lowest mark is going to be dropped. So the pressure on the mark front is off a wee bit. So it's time to consider the exam. I'm pretty confident that I can manage the first two blocks, it's going to be blocks three and four where the problems are going to appear. So I need to know where I'm weak, and that means using the TMAs to find them there weak spots.

Which begs the question—couldn’t you identify your weakness on your own? Well in my experience most people [and particularly not me] aren't all that good at it. Too often you'll end up doing something like the following scenario:

You'll work your way through an exercise, which you royally stuff up, and you say to yourself “well I won’t do that again”.

You will. And you'll do it in your exam. Best to mess up a TMA and use the hurt to spur you into grokking/learning properly.

A risky strategy?

Maybe, but if I mess up too badly I can be super careful with TMA four.


It’s spring

And a middle-aged man's thoughts turn to redesigning his websites. Let's analyse that, shall we?

  1. Is it spring? Possibly it's summer, it is summer time after all [in the UK anyway]. And as I wend my way through the winds in the early am it is no longer to the accompaniment of the billion bird crescendo.
  2. Redesigning websites? Has it come to this?

Yes. So I'm going to call it spring and I'm going to use that as an excuse for a re-design of this site. And it's going to be radical[ish]—you have been warned.

Getting antsy

I still haven't got the results for my last maths TMA back yet, and it's been a wee bit longer than usual. We're still well within the “window” but still I worry…

Did I take a copy? Did I obtain a certificate of posting? That would be no and no. Was I supposed to? That would have been a yes and yes.

But I think what's really worrying me is guilt: although my employers are [partly] sponsoring my degree, I don't think that they really meant to pay the postage for my TMA submissions. I'm ashamed to say that, for this one, I just popped it in with the rest of the post. I'm culpable, I've ripped the council off to the tune of 50p, under the price of Jackie Smith's bath plug [which is hardly the point]. But I'll resign if she will.



Hopefully, you are seeing the brand, spanking, new look [on this page at least] of my site. It has been my intention [for some while] to completely overhaul this mess, but, as per, life has got in the way. But now, at last, I’ve made a start.

But that is just what it is—a start. There is much more, yet, to do; an entire re-structuring/page-culling/brand re-positioning is planned. The nature of the web is thus: adapt or look web <?insert:current–webby–version - 1?>.0.

I’m going to try out some theories—we’ll see how they work out. And although I always fail to deliver my promises [as part of the re-design I'm visiting every page and on each there’s, at least one, neil-said-but-did-not-do statement of intention], I do promise explain the rationale behind this re-design.

Oh, by the way, I don't think that the links at the bottom will work [as-of-yet].


Well my TMA for the computer course is submitted and the marked TMA for the maths course has been returned, so I'm feeling calmer. But lesson learned—obey the rules, follow the instructions. You know that you should—why do you not? [or is that just me?]



Over the last few days I’ve been [re-re-]working my way through block four of the maths course [statistics—mainly] in an attempt to get my head around it. Result? Well I’m probably never going to love statistics but I am beginning to ‘get’ them a wee bit better.

But I have to ask myself–why have I got a problem at all? I can see that there has been a lot of elegant mathematical sophistication lavished on the subject, it’s interesting, important and useful; what’s not to like? To answer this question I think that I need to contrast the units devoted to statistics with the one unit of the block that I really enjoyed—probability:

  1. We came at probability from below. By which I mean was the we proceeded from first principles; for statistics we were asked to take various things on trust, like the formula for the normal distribution.
  2. Probability led me off into other areas—always a good sign.

Perhaps I'm [rather] overstating one above. My re-re-readings did improve my understanding of what a normal distribution is, where it’s useful and the interesting properties of same.

But two is the important thing—I was inspired to go off on a[n ultimately fruitless] journey off my own; I was enthused and interested. Statistics isn't doing that for me.

Which leads me to another problem: going further…

should I have done MS221 alongside MST121?

MS221 has a February starting date, MST121 an October one, so it is perfectly feasible to study the two courses together. And I'm beginning to think that I missed a trick in not doing these courses concurrently. In fact I’m going to say that I’ve made a cardinal mistake in not doing so:

  • I’m now going to have a hiatus of over seven months between the two courses—way, way too long.
  • I want to delve deeper into maths now, but I’m thrown onto my own resources. And these resources consist of old books which I don’t fully understand.
  • There's going to be a similar gap between MS221 and whatever my next maths course is.

In short—if you are doing a mathematics degree you need to be doing MS221 and MST121 concurrently.

this site

It’s surprising just how much work is involved in the re-design of a site, even a small site like this one. However I knew that, what has surprised me more is how difficult it has been to kill my children.

Let me explain that—I don’t want you taking away the idea that I kill children; I’m talking about removing pages that no-longer-belong. To be specific, the following should die:

  • Most of my so-called articles.
  • The sparkl stuff.

But they are dear to me and useful to others… Are they?

Perhaps the most sensible thing that I’ve done during the current re-design has been to promise [and to have actually worked on] an explanation as to the why, the what and the how. Having to explain yourself to yourself makes you think about what you are doing. And, sadly, thinking about what you are doing is all too rare.

And it’s a lesson that is easily forgotten in the heat of the new.

simplicity versus complexity

My, real, apprenticeship in programming was in hacking Access databases. And there I came to a couple of important realizations:

  1. Most things are simple: if you're writing three hundred lines of code you are [almost certainly] doing it wrong.
  2. Some things are complex: but they are usually thus because you didn't think about the problem properly. You took two, or more, simple things, put them together and made them complex.

And I’m beginning to realize that these two rules are universally relevant. Too often I [we?] over-complicate a problem by not tackling it in an organized way. And when we over-complicate the problem we over-complicate our solution to the problem.

I suppose that I’m saying that less == more.

Well I’ve, slightly lost myself here—heaven knows what I’ve done to you. But I'm off to cull some pages…


is m263 useful? [if you want to write programmes]

There’s been an ongoing thread in the café about this. With formal logic and the mathematics of databases being particular targets for wrath. Do you need to understand them? Obviously not. Are they useful? Bit more tricky to answer that one—but I’ll try.

But first I’m going to take a step back and answer the question for the course as a whole. And I’m going to answer that yes.

I’ve been hacking code for some years now and I’ve picked up quite bit over those years; I knew about recursion for example. But there were many important concepts of which I either entirely ignorant of, misinformed about or didn’t see any use for:

data structures
I thought that I knew what an array was—in fact I was thinking of a vector. I’d heard of hash tables and binary trees, but I didn't know what they were, where they were used and why.
function specification
Had never occurred to me. Yes, I knew that I needed to know what went in and what came out. But I never sat down and thought about my functions, I just plunged in and started writing them.
I had no idea that such a thing was possible.
I had a vague idea that this was important, but if my programmes run ‘fast enough’ I was happy. It never occurred to me that some implementations were more efficient than others.
I was aware of, and used, this. But I didn’t know which tasks it was particular suited for.

I could go on, but I think that you get the picture—I was ignorant of many things that would have helped me write better programmes.

As a for-instance I’ve recently been working on some code to create XML sitemaps. I knew that I needed a recursive function parseDir that accepted a directory and returned a formated string of its contents. I might not have immediately seen that but for this course.

However I’m not there yet—I’ve been gaily adding parameters to this function as I need it to do more. I should have thought about all the things that I needed it to do before I wrote it—I’m probably going to have to entirely re-write it in the near future.

which brings me back to…

Is an understanding of formal logic helpful to a programmer? I’m going to answer that one yes too, but I don’t really have much evidence to back my answer up. I can’t think of [m]any occasions where I might use it myself, and you don’t have to understand formal logic to have a logical mind.

But I don’t see how it can hurt.



It’s the middle of April and I’m approaching the end of my current courses. Just one TMA and two CMAs left for the maths and one TMA and an exam left for computing.

The exam, of course, already has my bowels moving [thirty years since I’ve done one], but apart from that it’s a time for looking forward, and back; a Janus moment. I’ll deal with the looking back elsewhere on this site [won’t link—for now]; the looking forward I’d better deal with here.

a roadmap?

I didn’t really have a plan when I started my degree—I think that the time may have come to make one.

After I’d finished the tts I wanted to continue with the OU—and a degree in computing seemed to be the way to go. But I had reservations.

  • I already knew a lot of what I was going to be studying, was there a point?
  • Some of the courses didn’t interest me jot one.
  • Where I had problems of understanding it was my [lack of] maths that was letting me down.

Thus was born the idea of doing a maths and computing degree. [I had an online discussion with Paul during tt382 who confirmed me in my madness. Sorry Paul that I’ve forgotten your surname, but you’re culpable; thank you].

second thoughts?

None. Absolutely none. I’ve really enjoyed dipping my toe back into the maths pool [although I’ve enjoyed the computing course too].

But now the time has come to chart my future studies. And the question is…

what is the it that i’m interested in?

I’m a hacker—but one who’s not that interested in hacking. As a for instance: I’m perfectly capable of designing, and coding, an interactive online calendar for my school site. Have I done one? No. Why not?

Well I think that after doing M263 I know the answer to that: I’m interested in the theory of computing rather more than I am in it’s practice.

All of which means that I’m going to have to be very careful about the maths’ courses that I’m going to choose. Because although I like maths, I’m much more interested in computing.

which means?

Well, I’m not entirely sure—I’m still fretting about where I’m headed. But that’s a good thing—I have choices; I want to learn. And that’s what the OU has been for me—a joy and a torment. But such a joy and such a torment!


80° proof

For the last few days I’ve been struggling with unit 14 of the computer course—proof. But the odd thing is that I've only been struggling with parts of it, and those parts all involve loops.

Proofs involving recursion came, well I was going to type easily, but that would be an inexactitude, so let’s just say that they came. But loops? I understand what it is that we are trying to do—it’s just that every time I sit down with a pencil to do one I get lost.

Of course I’d like to think that the problem was with the course itself, but that would be crap, and self-serving crap at that. The problem is mine.

And I know what the problem is—with loops you have to use the function specification and the implementation, and you have to keep them separated in your head. I’m still having a problem with that!

But I’ll keep trying—I might even get there.

which leads me too…

This is the real subject of this post, I’m sure that you couldn’t care less about my problems with proofs. In fact you might not even care about what follows, which begs the question; why are you reading this?

What do you do when you don’t get something? [And this is going to happen to us all at some point.] Do you:

  1. ‘Keep at it’.
  2. Google frantically.
  3. Post in the course forum.
  4. Ask for it to be discussed at your next tutorial.
  5. E-mail your tutor.
  6. All of the above.

To which my off-the-cuff answer would be that you start with 1 and end with 5. But then that is my answer. There is a case for going to 5 first. It all depends on how you like to learn. Personally, I like to work by myself, at my own pace and going off on my own tangents, I don’t enjoy having someone explain things to me. [I was dyslexic before it went in-and-out of fashion (damn you Asperger's). My Mother taught me to read; there was much bashing of a head with hefty books. For which I’m very grateful, but…no scars but marked shall we say?]

but is what you like the best method?

Aye, there’s the rub. One of the things that I’ve noticed about my tutorials has been how often they’ve exposed glaring gaps in what I’d thought that I understood perfectly. Too often I’ve had my ignorance exposed. I don’t like that but it’s good for me. Very good for me.

So, for me, the best combination from the ordered list above would be 1→2→4. That way I’d get to learn the way that I like and then I’d get the hubris kicked out of me. Classic carrot and stick.

This will not suit everyone of course—you must find your own preferred method. But once you've found it have a look at it closely; is it really the best method? One of the things that I’ve over the years about programming is what to do when you get stuck, not the wee bit stuck, but the huge ‘I can’t see a way!’ type stuck. Walk away.

I don’t want to, but once you get to a certain level of stucked-ness you aren’t ever going to solve the problem—you’ve painted a wrong picture somewhere, time to stand back and have a squint.

So when [and you will] hit that hurdle, don’t panic, step back and think about it and how you are going to deal with it.


working late

I’ve been working a back-shift for the last couple of weeks—which saps your energy, concentration and will to live. So mostly I’ve been messing around with either the new version of this site [see below], or my school site [I am at work after all!]. Back-shifts are holding jobs—they aren’t there for serious work. But by last night I wasn’t even up to make-shift tasks. So, in want of any other ideas, I decided to see if other OU students blog about their experiences? Well, unsurprisingly, yes they do.

There seem to be hundreds, possibly thousands—I concentrated on the top twenty pages returned for my current courses. I’m going to resist the temptation to jump right in to slate, dismiss or [faint] praise—I've bookmarked them or added them to my feed-reader for future knife jobs. But one thing did strike me that I will opine about here and now.

tt blogs versus the rest

A lot of the tters keep/kept blogs/sites—but not as many as you might expect. I listed five that I found when I originally built this site [and I haven’t found any since]. Yes that’s right – five. Way fewer than you’d think. Why so few? And why so very few when compared with, say, those blogging about MST121?

A lot of tters have created sites. Many, many sites. But these aren’t sites about their tt, or other OU related, experiences. I don’t want you coming away from this piece thinking that we can’t create sites.

Possibly I’m missing a whole tranche by an incompetent googling strategy. But I think not. I think that the answer is that webappers want to build their own sites, and well-built ones at that. That’s time-consuming; better to work on your portfolio site. Every tt blog is/was a custom job, every MST121/M263 blog was created by an blogging-engine of sorts. There’s a difference in intent.

Intent may be the wrong word, tters are interested in the web, if you are blogging about MST121 you are interested in what you can do with it. Outlook may be a better word, but then again perhaps not.

which brings me back to…

What it is that I want to do with this site? When I was lying in bed this morning and not reading Gibbon's ‘Decline and Fall’ or fretting about how very long today was going to be, I gave this some thought. On the face of it there are some mutually exclusive aims:

  1. To be a resource for current/future OU students.
  2. To air my views re the state of the web.
  3. To be my diary. [One of the things that I noticed about some of the sites I found was that they were little more than an online diary. But I must admit that there’s a lot of that going on here too.]
  4. To entertain.
  5. To be a resource for other hackers.
  6. To show the world how clever I am.

Too much for one site?

Perhaps not if I drop aims five and six, and they really should go. But if I focus on one to four? Well I think I can manage that [I’ll aspire to four]. Two perhaps is the one that might be problematic—does it belong here? To which I have to answer, maybe…not. But then I’m not actually that important [which I often forget], if this site isn’t focused, or brilliant, whom does it hurt? That would be nobody.

so, is there a plan?

Of course! There’s always a plan. So…

  1. I’m going to drop most of the non-OU related material and concentrate on being, if not exactly a resource, at least, more useful to other students. But there will still be much diary-like content—I have to enjoy writing this tosh and I’m fascinating to me.
  2. I’m going to start a blog that’s web-related. It may be inappropriate but at least I can remove from my course blogs much that’s extraneous. [For instance this does not belong here].

Will it work?

I think, to a certain extent, yes. Not completely; but the picture in your mind is not the one you produce; the application that you dream of is not the one you code. Everything is an aspiration, one that’s never achieved. Life is like that—deal with it.

I may have been working too late for too long—I’m starting to make sense to myself.


working early

Ah the joys of shift working, one week you don’t get home until the middle of the night; the next week you go to work in the middle of the night. Of the two I prefer the early shift, particularly at this time of the year when it’s light in the morning and I get to amble my way to work along the canal. Perfect for thinking.

This morning I was thinking about my next courses. There are some constraints, money being the most important one—I can only afford to do sixty points a year. But there’s still some choice.


Not so much choice here, I’m basically stuck with MS221 – exploring mathematics, although stuck is the wrong word—I’m looking forward to this one. It looks interesting, the student reviews are good and it, seems, to cover the areas of maths that I’m interested in. So I’ll go with that one.


This is a wee bit more tricky. The obvious route would be to take M255 – object-oriented programming but it doesn’t grab me. But if not that then what?

Another maths course is a possibility and if M381 – number theory and mathematical logic was available I’d be very tempted. It looks like it might be a nice follow up for M263. But it isn’t running until 2011 so…

It looks like the only real options are M359 – relational databases or M364 – fundamentals of interaction design, both of which I’ll take at some point. However they have a very big draw back—they don’t start until 2010. So I’m afraid they're out too.

So M255 it is then. After all it has to be done at some point and if I can scrape together £300 in January then I can team it up with M257 – putting java to work. [Although there’s fat chance of that!]

I didn’t have any choice at all then.

the current courses

I haven’t been doing much work lately but I think that it’s time to get down to it. The final sprint is nearly upon us.

In the immediate future there’s a math’s CMA due in a couple of weeks and the final computing TMA due in three. My plan is to get these out of the way by the end of next week, if not sooner. This is a variation from my normal practice of submitting near the cut-off date.

Why the change? The reason that I like to wait until the last moment is a hangover from the tts where CMAs generated a lot of discussion and a late submission could be an advantage. For my current courses that isn’t the case. Plus it’ll give me more time to concentrate on TMA four for the maths course, which is the ECA.


a tyranny of stuff

You don’t need to be doing an OU course to get task overload—but it helps.

I woke up this am to the realization that I had too much on my plate. Situation normal of course but for some reason it seems particularly bad today. So I’ve decided that I need a holiday. This is not good. How can a holiday be bad you ask?

Well first off it isn’t really a holiday—it’s just time off work. And work work will just pile up in my absence, so I’ll come back to even more stuff to do than when I left.

Secondly with both my wife and myself at home there’s resource contention—there’s only one computer. You can guess who’ll win that one. So no computer.

Thirdly, aside from my OU work there are some tiresome home-type tasks that I’ll not be able to weasel my way out of.

But hopefully I’ll at least get my TMA/CMAs out of the way.


I now have many OU related blogs bookmarked for inspection. Much interesting stuff. At some point I’ll create a blog-roll or whatever. But for now I’ll content myself with the observation that most bloggers, like me, have a healthy TMA obsession—there’s much TMA/CMA away→TMA/CMA back→did quite well/utterly stuffed up going on. Nice to know that I’m not alone.


slight change

You might notice some slight changes around these parts. I’ve finally faced the fact that the only way I’m actually going to…I was going to say upgrade but that ain’t entirely right so we’ll say re-do, this site is to do it incrementally. After all—I’m not Amazon, I don’t need to do it all at once.

It will mean things hereabouts will be buggered up for a while—but again I’m not Amazon, this site doesn’t have to actually work.

has it sunk in then?

As an experiment I tried doing TMA 04 for both courses without referring to the course books or handbooks—let’s see if I’ve actually learnt anything was the plan. The result? Mixed.

Maths was a de facto disaster, apart from the calculus stuff, I couldn’t do duff all. If there was an exam I’d be royally stuffed methinks.

The computing was much better, about the only thing that I missed having was access to the class methods [particularly for the bloody turtles]. I’m not suggesting that I was spot-on with everything, but I was usually in the right ball park.

which leaves me in an odd position

Pleased and worried.

Pleased because when it comes to the computing exam it looks as if I’ll be able to handle the pressure. Much revision to do of course, but I seem to know the basics.

Worried because I thought that the maths was sinking in. Which it clearly isn’t. And it’s more that one half of my degree. Much more second-hand book shop scraping and pencil and paper work needed—this stuff needs to be second nature.


i should be doing a TMA

But, as you can see I’m not. In fact there are a plethora of things that I’m supposed to be doing that remain not done. A familiar refrain. I’ve been here before: seen the film, read the book, got the t-shirt, eaten the pie.

Apart from work/life stuff the OU pace is hotting up. Here is the to-do list:

  • TMA 04 for M263 – 2009-05-21
  • TMA 04 for MST121 – 2009-06-03
  • CMA 02 for – 2009-06-13
  • Exam for M263 – 2009-06-15

Do not take these as read, I dredged the dates out of my head—a notorious black-spot for false facts.

but you knew that it was going to be like this…

I suppose so, but the easy pace [relative to the tts] of these courses has tripped me up. I’ve been assuming that time wasn’t of the essence; apparently not so. So now I’ve got rather more than I’d like on my OU plate. Couple this with the life/work disasters [which could have been predicted] and we have situation panic.

my response to this crisis?

If there has been one thing that I’ve learnt over my OU years it’s been don’t panic, don’t rush to the first task. One of the great advantages that I have now, compared with my original [miserably failed] ‘student’ days is. that I know my stuff—I expect to spend around three days revising for my exam. And I'll be in bed early the night before.

So tonight I’ve done a bit of therapeutic JavaScript and I’m writing this. It isn’t getting anything done, but it’s making me feel more relaxed—ie in a better place for tackling the mountain.

The plan, as always, when you come to this sticking point is:

  1. Step back
  2. Re-group
  3. Come back to it refreshed

There is a problem with this plan:– recursion. I suffered from this when I was a young fellow, which resulted in:

U(examtime) == 'failure'

But now that I’ve developed some ‘bottom’ [or as my wife claims, my original one has migrated down my body], I now [think] that I know how far that I can let this go.

I’ve harped excessively on this theme on all my OU blogs, for which I make no apology. If you are going to do an OU course this is going to happen to you. Get ready for it, prepare your strategy, you are going to need at least one. [Although this syndrome isn’t specific to the OU, having a full-time job and being a student really does rack up the ante.]

As alway the proof of the studying is in the distinction.

going loopy

I think that I’ve finally got my head around proof and loops, think being the operative word. I’m going to blame the course materials for my difficulties.

On the whole I’ve been very impressed by the quality of the computing materials, I had a slight quibble with the case study, but apart from that fine. But when it came to proofs…

I got the proof by implication concept, which was well explained, but as soon as it was applied to loops I started to struggle. Now, this might be completely my own problem but I think not.

I think the reason that I struggled was the way that it was explained—too many words. Which tended to confuse the issue for me, I’d rather have had a more rigourous explaination. Another problem was that slightly different methodologies were used for, say while and for loops, without any clear statement of which part of the proof was being tackled.

Then again some of the audience are not [potential] mathematicians so perhaps it is just me.


time for some new pens

I’ve always been a bit of a pen/pencil fetishist. When I played chess I binned a pen if I lost/drew a game with it. I’m forever sharpening my pencils—with a craft knife, never with a sharpener, the point must be just so. Writing implements are important to me.

For my current courses I bought a box of 144 pencils and a couple of sets of Staedtler pens. They’ve performed their duties well; I bury the dead in the favoured retainers' plot of the garden along with the most productive of my insects.

But the pencils are now sadly depleted and none of the pens write a thin enough line any more. No, with an exam coming up something new, and special is needed.

I suppose that the idea of some new kit has been percolating away in my back-brain for some time, but reading a fellow student’s blog has brought it to the fore. So something special.

I’m not exactly sure what special is going to involve—these thing take some consideration. I’ll get back to you…

I quite like his pens, but I’m not sure that they are for me. What I’m really jealous of is the neatness of the work; despite having the right tools I produce screeds of over-sized scrawl. [And I can’t find a closed form for the relation!]

TMA away

Despite my panic [see below] I submitted the last TMA for the computer course this afternoon, with three days to spare. I’m not sure if I’ll look at it again to see if I’ve missed anything—obviously I should, but I’m not sure that I can be bothered. I’m a wee bit sick of the thing. Which is strange.

Here’s the strangeness: I’ve really enjoyed the course, I’d like to investigate further but the TMAs have been the worst, most boring assignments that I’ve done. [So far?] They’ve also been tremendously time consuming.

I can see the rationale behind the TMAs—they are learning aids. I just don’t agree with the way they’ve been structured. Why are we still doing traces in TMA 04? Surely we know how to do one now?

Actually, perhaps this isn’t the right time to be writing this; I’ve spent around twenty hours, over the last few days, doing the damn thing—hardly the time for a non-jaundiced view. So I’m going to leave it there. For now…

so next?

TMA 04 for the maths course, the ECA. I’ve done the pencil and paper work. Time for the MathsCad and OUStats stuff. Oh goody.

Prepare for another negative review…



Made a bit of a boo-boo last time I uploaded this tripe. I’ve slightly altered the folder structure of the current site so that it’s more like that of the new site. The theory was that this would make things easier when I change over to the new design. [Although, now that I think about it, I don’t see how it was going to help]. Problem was that I didn’t update all the links, so pages disappeared. I [think] that this is now fixed.

and whoops again…

When I noticed that I’d done this I decided that the best thing to do would be to just put the new site up. It isn’t really ready, but it seemed like less hassle than fixing the current site. And less hassle is always going to win over doing things properly with me.

So why hasn’t that happened?

When I made the decision I was at work, behind a proxy and faced with the prospect of using a [slowish] web interface to load folders one at a time. Not fun, so I popped the site onto my memory stick so that I could FTP it at home. Just one problem—I put my trousers, with aforesaid memory stick in pocket, into the wash. Result: one very soggy memory stick.

I’ve done this before and all was well, so hopefully no real harm done. But there must be a limit to the number of times that I can get away with this repeated stupidity.

final maths TMA

Time to get this done, it needs to be in by 2009–06–03, which means posted by 2009–06–02 at the very, very latest. My plan is to get it off by next Friday. [And this time I’m going to photocopy it and get a certificate of posting—I don’t want a summer of angst.] Which means doing the MathCad/OUStats stuff that I’ve been putting off for too long.

So that's the weekend f—d.


as an experiment…

I’ve decided to blog my way through doing the MathCad question of the final maths TMA. Probably it will turn out that neither this blog nor the MathCad work will be done well.

Open up MathCad and enter the formula. Find out that I don’t remember how do define intervals.
Finally find a worksheet that shows how to graph functions.
Insert something stupid in the document and spend ten minutes trying to delete it. Finally find that ctrl-d deletes something that you can’t [properly] select. Decide that I need a red bull.
Return from shops with several red bulls [sensing a long day here].
Long struggle with help [F1] results in being able to plot the graph of two functions but I still can’t format a trace to a proper number of decimal places. Time for a fag.
Realize that the way you define your interval affects the accuracy of the graph. Which is why mine was looking so angular. Finish part (a). Look at part (b) and see that it involves recurrence relations so off to search for a worksheet—what unit was that again?
After an nightmare time I managed to complete part (b). I still have problems with the difference between assignment and calculation. In the end what really helped was one of my own worksheets—I wish I’d made more. Another fag methinks and, as I’ve finished my red bull supplies, another visit to the shops is in order.
Decide against another can of red bull—I do want to sleep some time this weekend. Time for part (c). Oh no calculus!
Haven’t kept or can’t find my previous TMA worksheets, I’m in trouble now.
Can’t do it. I’m going to give it up for today—three hours with MathCad is more than enough.

Tomorrow we’ll tackle OUstats…


horrible, just horrible

Sunday afternoon and I’m not much closer to finishing my TMA than I was yesterday morning. Partly because I can’t get MathCad to do what it’s told, partly because I’ve forgotten what [little] statistics I’ve learnt, but mostly because I’m not enjoying myself.

That might sound a wee bit odd you aren’t supposed to enjoy TMAs/CMAs etc. are you? Well maybe not, but I’m doing a degree, mostly, for my own benefit and so far, for both my degree courses and the tts, I have enjoyed doing the assignments. But I’m really struggling with this one.

So should I just give up? According to the course assessment calculator even if I only get 30% for TMA04 I’ll still pass. There are no distinctions on offer here. It seems like a cop-out but if I’m really not having fun is it worth it?

One thing’s for sure: I’m giving it up for today at least.


I don’t know if anybody else enjoyed my blow-by-blow struggles with MathCad last week but it did make things seem a wee bit less awful for me. So here we go again…

oh dear

Quarter to nine on a Saturday morning and struggling to summon the energy to open up MathCad. I took a week off [from OU stuff] and I’m now suffering as a consequence. I need to post the TMA by Monday latest and I haven’t got equation one on a piece of paper. Time to get started. Opening up MathCad.

And immediately it’s open I need a fag and some red bull.


Hmm, that’s odd, the thing I was struggling with seems to have sorted itself. The programmer part of me is screaming ‘regression bug’, but the student part of me is saying ‘print it now!’.

And that's a problem, in places it’s going way over the edge of the page.

Well I, finally, managed to get the file printed using a combination of minuscule text, printing options and many many attempts. Closing MathCad. If I never have to open the beast again I won’t be sorry and from the posts on the course forum it seems that I am not alone.


Opening the beast at 10am.

11 am. Well that wasn’t too bad, probably because I haven’t done it properly, but nothing like as bad as the MathCad stuff.

so that leaves…

For TMA04 I need to write up the non-MathCad/OUStats questions—I’ve done them but not neatly. And then I need to submit CMA42, again done but not completely checked.

Strange, I’m nearly at the end of year one of my degree, how do I feel about that? Don’t know.


nice weather

Which I have seen little of as I’ve been indoors struggling with maths. Not that this bothers me too much, I hate the heat anyway. Whatever, the good news is that TMA04 is in the post and CMA42 is submitted. So, for me at least, MST121 is over, finished and done.

It has been, apart from the statistics, an immensely enjoyable course for me. And one which has confirmed that I’ve made the right decision in doing a combined computing and maths degree.

This was something of a risk; I hadn’t done any maths for nearly thirty years and I’ve never done any maths to the level that is going to be required to get a degree. There was [and still is] a very real possibility that I wouldn’t be up to it.

so why maths?

I had two reasons for doing maths:

  1. I felt that I needed to get out of my comfort zone. I could have done a strictly computing degree but, while I’d have learned lots, I didn’t feel like I was pushing myself.
  2. I was beginning to realize that the areas of computing that interest me required good maths skills.

One above is fairly self-explanatory, but two requires a little more detail.

After I’d finished the tts I realized that I wasn’t that interested in doing this for a living; it’s just for fun. So I asked myself where I was having the most fun, and that was JavaScript. And I was having the most fun because I was coding in a [mostly] functional way. So that’s what I decided that I wanted to concentrate on.

Which meant I was going to have to have more maths skills. Well that the way it seemed to me anyway.

the exam

Now that I’ve cleared the maths decks it’s time to get swotting for the M263 exam. But I never really did swotting so I’m not sure what’s required.


higher things

On Thursday Scottish students sat their Higher Computing exam and, thanks to our head of computing, I got to have a wee squint at the exam paper. I would not have passed.

This is something of a worry, not for me, but for the Scottish education system. Well that’s my opinion anyway. So what, exactly, is the problem?

Well, let’s take the questions on programming/coding as our example. Now, I may not be the best programmer in the world, but I flatter myself that I know a wee bit about the subject, and I’m pretty sure that whoever set the question knew diddly. Take the following examples [for some pretty basic apps.]:

What type of programming language was most suitable?
Eh? What do they mean? Functional, procedural, object-orientated, strongly typed, non-deterministic, brainfuck?
What type of maintenance was used to add a module?
Haven’t a scoobie what they are talking about. Who knew that there were different types of maintenance. And my reading of it was an addition to the specification rather than maintenance.
What data type is most suitable for the variable cost?
Well we all know that it’s integer, but I strongly suspect that [from looking further on when they say price=5.50] they’re thinking float.
What is the scope of a global variable?
Oh for fuck’s sake…
Give two advantages of parameter passing rather using global variables.
Hmm. I can think of lots of reasons: encapsulation, memory optimization, you don’t clog up the namespace, you don’t risk someone overwriting it… But there’s something about the question that I don’t like; scope is one of the more important things in programming, it should be treated in-depth from the start. I get the distinct feeling that it hasn’t been.
Give one reason why portability is important.
Again, what do they mean? I suspect that they don’t mean portability in it’s strict sense. They may be looking for something along the lines of code an interface not an implementation.
When creating an array what do you two other items other than name[!] need to be declared?
Well datatype and length obviously, except that rather assumes that you’re using a strongly-typed language that has proper arrays. $arr = array(0=>'a'); anyone? Or arr = ['1', 2, foo, {i:'xx'}]; [OK, I know that PHP and JavaScript arrays aren’t strictly speaking arrays, but I have the strong suspicion that the person who set the question has only ever used visual basic and doesn’t realize that ’arrays‘ in other languages are different.]
There were quite a few marks on offer for knowing the difference between passing parameters by value and by reference.
Which I suppose is nice to know but isn’t that important. I don’t remember it coming up at all in M263. [Well I suppose we all know what’s being passed by reference but we don’t get any choice in the matter, and as we aren’t allowed to code side-effects we might a well pass by value.]

That’s enough to be going on with methinks.

As I said above I’m pretty sure that whoever set the questions has only ever used Visual Basic, and not for very much. To me the entire focus of the questions was off—

  • The was a lot of irrelevant stuff—who cares what type of maintenance you’re doing is called?
  • In my experience people really struggle with functions [and procedures] when they first come across them, why queer the pitch with by value/by reference?
  • A sane discussion of scope is essential for beginners. You need to know the pros and cons of globals.
  • Why bring in efficiency at all? Sure it’s important but you need to make programmes work first.

At bottom I think they tried to cover too much and at too shallow a level. It’s a test of recall rather than a genuine effort to teach the basics of programming.

Anyway, rant over, time for some studying…or a beer? Mmmmm beer…


revision history

For the last few days I’ve been trying to do some revision for M263. I might even be succeeding—but I’m not sure. The problem is that I’ve no idea how to revise—I didn’t do it at school and I certainly didn’t do it at university. So my revision has mainly consisted of lying on the couch, drinking beer and scrawling notes to myself in the margins of the course books.

There’s something about this schedule that seems a wee bit off. I don’t remember being advised to do it like that when I was at school. But then I’ve no recollection of what they did advise, so perhaps I missed it?

a breakthrough

Of sorts anyway. I was working my way through the class vector, when it occurred to me to write up a function specification to give arrays vector-like behaviour, something like: ADDFIRST(x, arr). Now, I don’t know why, but I then decided to write a logical expression as a post condition [which I won't bore you with]. I was suddenly struck by the similarity of the expression to the code that I’d have to write. Bing!

If I can express what a function does using a logical expression, or recursively, I can code it, and I can probably prove that my implementation is correct—I don’t have to rely on testing. This stuff is actually useful!

Obviously there are going to be many occasions where you can’t do this—but I’m betting that there are more than it would seem at first sight. So after I’ve got this exam out of the way I’m going to try to apply it to some of my own code.

a lost weekend

Is planned; much lying on the couch drinking beer in prospect I’m afraid.


testing times

Well I sat my exam for M263 yesterday—my first exam in almost twenty-eight years. It was a shock on quite a few levels, but let’s deal with the self-imposed shocks first, shall we?

Me, being me, eschews the simple paths of reading any instructions or of making, and following, a sensible plan. So:

  1. The day before the exam I finally got round to the exam conditions—you needed photographic identification! Something that I don’t possess—I neither drive nor travel. Fortunately a call to the regional office sorted this out, but the heart rate was elevated. [Incipiently everyone that I talked to wished me good luck for my exam—don’t you just love the OU.]
  2. I decided to walk along the canal and through the ’scenic‘ Grassmarket to calm myself before the task ahead. I could see that there was a good chance that it was going to piss down [and that would be bouncing off the concrete to the height of my butt piss down], but… so I had to stand outside the exam hall for fifteen minutes, slightly steaming and trying to avoid the pitying eyes of my fellow candidates. [Take the bus next time?]
  3. Once the exam had started I was gayly answering away when I noticed a rather sinister box at the top of every page—question number. I don’t suppose…thank the stars I noticed that it was one question per answer-book page at question five. I guess I lost about fifteen minutes.


Three above may have cost me dearly—I hadn’t bargained for how long it was going to take me to get through the paper. I didn’t get a chance to check any of my answers, I was too busy finishing them.

From the banter on the course forum it seems that most students agree with me; the consensus is that it was a fair paper, and that time, and the lack thereof, was the real issue.

Personally speaking the nadir came ten to fifteen minutes before the finish—I had half [ten points] of a part two question left to do and the will flagged. The hand tired also. And I suddenly realized that the question required free quantifiers, I’d assumed bound. I didn’t do it right, but I’ll get some points [I hope]. But I’ll remember the feeling forever.

and now?

Within the next couple of weeks I’ll do the course reviews, but for now [this being the last post] All the best my fellow students and

svn commit blog -m "last m263/mst121 blog entry"