The waiting is over, the official launch date is tomorrow, and all my ducks are in a row.  Well, I have no ducks, so I’ve neatly arranged my stationery just so, instead.

I have little to add to my status from the last post.  I did finish with all of Block 1 before the start date, our tutor forums have opened, and nearly all communications with fellow students outside the Facebook group has stopped!  I hadn’t really expected that last one, so it’s just lucky that I jumped into the FB group, even though I’ve stopped using FB apart from that.  The Early Bird Café forum was always going to close before the module started, but I’d assumed that student chatter would migrate over to the students association forum for TU100, instead.  Apparently it’s a bit tough for some to find.  (That site makes my kitchen junk drawer look like a hospital.)

I’ve used that forum to revive another student’s great idea.  (I don’t want to post the student’s name, as I haven’t checked if it should be broadcast all over the internet for no good reason.)  The idea was to have some programming challenges in Sense.  Someone runs into a problem while writing code, finds a creative solution for it, then challenges other students to see what solutions they can come up with to satisfy the same problem.  Students who get stuck can then check the challenger’s code to see what they did.

The original challenge involved adding SenseBoard functionality to a number guessing game, which was awesome.  (A SenseBoard is an Arduino-based input/ouput device for Sense.  They’ve stopped selling them, but the Digital Sandbox for Scratch is the closest I’ve found for it.)

My first challenge involved making a custom score counter of arbitrary digits, which was probably the most difficult part of my Jet Bike Steve game.  In Scratch, I used cloned sprites and a lot of modal maths for the digits.  Sense doesn’t allow this solution, so I have to stamp the digits, instead.  My initial solution used the maths from my Scratch solution, held individual digits in a list, and then stamped the list.

Within one or two hours, somebody had completely bested my design by using string slicing, which I didn’t even know was available in Sense or Scratch!  How did I not know that!?  (Because I hadn’t finished reading the programming guide, I later discovered.)  But once he mentioned he did it without maths, I realised I could split my score digits into a list without any maths.  This next revision of the challenge solution was much more optimised than my first, but still not as slick as string slicing.  But the student who used it is already on his final year of the degree (and probably read the guide at some point), so I don’t feel too bad at being shown up, and I learned two great techniques thanks to him.  And that’s the idea of the challenges.

One reason I felt this was necessary was the dismal state of the Sense Programming Guide that comes with the TU100 materials.  And ‘dismal’ may be generous.  In fact, the fiery hellish abyss of computational programming pedagogy might be generous.

It’s not actually bad, I suppose, as it isn’t wrong.  It just doesn’t fit the brief.  According to a paper presented at a symposium detailing the reasons for TU100 and Sense’s existance (Richards et al, 2012, p. 584), one of the main failings of previous OU introductory programming modules was failure to engage students with experimentation.

What they’ve done is assembled a great tool box in Sense and the SenseBoard, and then forgot to actually encourage experimentation, or put another way, to teach the students how to experiment.

Much of the Programming Guide is direct instructions of which buttons to push.  When it comes for explorative activities, the exercises are only open so far as to find the “correct” answer to a limited scenario.  There are no open-ended exercises of any kind in the guide.  It actively discourages experimentation.

It does, however, go over string slicing, so I didn’t have to discover that on my own.  It was more fun, engaging, and easily remembered that way, though.

Reference: M. Richards, M. Petra, and A. Bandara (2012) ‘Starting with Ubicomp: using the senseboard to introduce computing’, SIGCSE ’12 Proceedings of the 43rd ACM technical symposium on Computer Science Education, pp. 583-588.

As some have said in my TU100 forums, it’s my last week of freedom!  After this, it’s all deadlines and regret.  (Which isn’t a huge lateral step, as it would have been mostly regret if I hadn’t started the degree.)

Before the big start, let’s take stock: Where am I?  Well, mostly I’m done.  Okay, not with the whole module, but I’m on track to being finished with the first block (of six) before the first day of the module.  In a word, that’s terrible!  For oh so many reasons:

  • I honestly didn’t want to get very far ahead.  I was thinking that being about a week ahead would help me smooth out any emergencies that came up.  (I’ve got a wife with a medical condition that sees me in A&E for about twenty hours a year, typically on a Friday night, doing my best to worry more about her being doubled over in pain than laughing at the drunks who can’t keep from sliding out of their chairs, I’ve got a baby who wants to practice parkour before he can walk, and a six-year-old who very commonly needs emergency snuggles.  Unavoidables happen.)
  • I’m kind of running out of things to study.  Problems worth having, right?  But my study habits have proven effective, so the last thing I wanted to do was to destroy them by letting up.  I might not be able to find this steam again for this module if I take my foot off the … Petrol?  Do you guys even have that saying over here?  I’ll settle with accelerator.  I didn’t want to take my foot off the accelerator.  I don’t know how that makes it steam, but that’s what I don’t want to run out of, so acceleratoring it is.
  • What happens if I actually do run out of things?  If I’m “done” by, say, February, but there are little bits and pieces that aren’t available until May, how will I find the motivation to go back and do them?  For example, TMA02 requires you to use TMA01’s tutor feedback.  So before I can put TMA02’s first draft down, I have to have submitted TMA01, waited for its deadline to pass, wait for it to be assessed and marked, and then I can start it.  And then draft, draft again, and then maybe a draft or two.  And then draft.  And finally submit TMA02.  And then wish I’d given it a few more drafts.  But all the material for it will be ages out of mind again.

And keep in mind, all of this is while doing other computer science MOOCs on the side.  Those ones, in fairness, I’m not really giving my full attention.  I’m watching the lectures, I’m doing the activities and exercises, I’m handing in the assessments, but I’m not taking notes, doing extra reading, researching questions I have, or studying them, I’m just doing them.  Like high school.  Just showing up and doing what I’m told.  (I have a nagging feeling that didn’t turn out so well …)

So one solution I’m thinking of is increasing my study intensity.  Which one do I worry about more?  Burning out by taking on too much, or losing interest by getting bored with insufficient materials?

I have a feeling in a few years I’m going to think back on this decision quite wistfully, that my biggest study problem was not having enough to study.

Okay, then, what have I done?

Block one is allegedly about “Myself” in relation to a digital world.  I don’t recall reading anything about me, really.  I may have missed it.  I haven’t been asked my opinion on much, either, except how much more awesome the writing skills of teenagers have become due to digital technologies.  (Err …)

The first part is allegedly about making students aware of the digital nature of our world around them, but is really about making sure we can simultaneously read and think.  Go me!

The second part is allegedly about the history of computers from a curiously narrow context: The four generations of computer hardware, spanning their entire history … From the mid 1940’s to the late 1970’s.  (Also some maths about exponential growth and binary counting.) Really the second part is about taking notes.  (Mental note: NEVER AGAIN WITH THE SPRAY DIAGRAM! IT IS THE DEVIL!) (Mental notes are not covered in this part.)

The third part is allegedly about HTML and markup, but is actually about … Well, no.  It’s actually about HTML and markup.  Well done, guys.  (It also has a critical process for evaluating sources.)

The fourth part is allegedly about how digital communications technologies make the world smaller, but is really about forcing you to play with a terribly dated Java applet that someone is waaaaaay too proud of, that basically amounts to a graphical TraceRT and a minor security violation all in one!  Yay!  (There are other and better tools.  Good luck to all the tutors who have to fight with students to disable their Java security settings!)  There’s a very (very) bad primer on TCP/IP, as well.

The fifth part is part of the programming guide.  The less said about this here, the better.  I’m not a fan.

And the sixth part is … Well, I’m supposed to find out tonight.  It’s allegedly about wireless and mobile networking, but is probably really about … Iunno, maybe someone’s recipe for guacamole.  It’s hard to keep track.

I’ll have to write more about the programming guide tomorrow.  As this is the second-to-last presentation of this module, it won’t really benefit anybody, but my recommendation is to skip it and study a children’s Scratch MOOC, instead.  (See previous blog entries.)

I had finished part 2 of TU100’s first block quite a while before ‘putting it to bed.’  After completing the material and activities, one is supposed to fill out a Learning Outcomes template for each part.  It is a vile thing.

The format of the template is that you’re supposed to take each one of the part’s ‘learning objectives’ and answer a few things about it.

What I’ve done to get through these is to ignore the “How far acheived?” question, since this is a meaningless question that assumes a linear structure to what may be an abstract notion, and instead concentrated on the other question in the box, “Examples of TU100 activities?”  I can then just flip through my activities notebook and match up which ones speak to the learning objectives.

The progression field is often completely meaningless, as the learning objective may not be a continuum, but rather have a nature that is accomplished or is not accomplished.

The ‘Skills’ field is probably the must infuriating. For each learning objective you need to compare it against 36 alleged skills to determine which ones you’ve developed by reading a book.  Most of these skills are not actually skills, and many of them don’t even have any substantive meaning.  So as much as I’m against the tick-box mentality, as much as I love self-reflection for personal development … I’m afraid the tick-box mentality of the template’s designer has forced me to just jot down a couple of relevant skills and try to live with myself for not giving an activity my all.

That I have to do this nearly every single week just doesn’t sit well with me, but the above tips will at least help me get through them.

While the TU100 module doesn’t actually start for nearly three weeks, I’ve gotten a fair head-start on it, so that I could learn more about how I’m currently learning.  The Good Study Guide hits the concept of self-evaluation quite hard, and I agree with it.  Six years is a long time, there’s an enormous amount of work ahead, and I want to give myself the best possible chance.

One problem I have with this is that once I start, I’m finding it difficult to put down.  First of all, it’s fun. I really enjoy this limbo of structured independent study.  Second, I’m desirous to prove to myself that I can make this a habit, and stick with it.  I find myself making excuses so that I start working as soon as the children go to bed so that it becomes second nature to me. (For example, last night I spent ALL my down-time in the kitchen, but with the door open so I could still share snarky comments about the TV with my wife, and didn’t even realise I hadn’t had any relaxation time.)  So the end result is that I’m a good deal further ahead than I’d really wanted to be.

I’d finished Block 1, Part 1 (‘Parts’ seem intended to basically take a week) after a few days.  I’m now in the middle of Part 2, but have also already completed my first TMA.  So that people understand what I mean when I say ‘finished’ a part or session, I thought maybe I’d describe some of the techniques I’m putting into effect so far.

I have difficulty concentrating while reading text, and I don’t think I’m alone there.  I can read the same passage of text about a dozen times without concentrating well enough to absorb any meaning, or even remember what I’d just read.  The most useful active learning technique that I’ve found to counter this is taking notes while reading.  Basically, it just makes sure that my brain engages in comprehension at every thought along my reading.

I use a 10″ tablet to flip open to my reading material (so far in e-books), then go online with my laptop to fire up OneNote Online to take notes in the cloud.  My notes then progress paragraph-by-paragraph, because I often find that doing so retains the clustered ideas found in each paragraph, and linking from paragraph to paragraph serially helps the flow of my notes.  (I said this much more succinctly in my TMA, and may be back to edit this section after the TMAs are marked, but I’m leaving my exact words out in case someone else subconsciously uses similar wording on their TMA and it triggers the OU’s anti-collusion software.)  I then write out a simplified bullet-point outline of the text.  So by the time I get done with a section of reading, I’ve re-written that section with a handful of words.

Then when I need to revise, I can read just my notes, which bring up the memories I associated when taking the notes, and I retrieve the entire meaning in a fraction of the time.  So how much writing am I doing, and how much time am I saving during revision?  Good question.  Let me check my numbers.

TU100 My Digital Life Block 1 Part 1 is roughly 14,000 words long.  Reading all of that and taking notes on it took approximately 6 hours (including activities), and condensed it down to roughly 3000 words (not including activities).  3000 words may seem like a lot, but I can barely keep birthday cards down to 3000 words.  (Imagine how I feel when a TMA says I have 200 words to say something!)

But that’s an excellent example that I have to do better.  I’ve cut down what I’m reading a lot, but 1 in 5 words still leaves a loooot of words behind.  On the other hand, it doesn’t take me much time to type the words, and the result is that I can recall them and their meaning very easily.  It might take MORE time to try increasing brevity beyond what I’m already doing.  If retyping every word would help me learn the information better (which, it won’t) I’d probably do it.

On a completely separate note, I’m also concurrently doing the MIT Introduction to Computer Science & Programming Using Python course on edX.  I really want to complete the entire course, but worried that I wouldn’t have enough time for both that course and my actual university course.  But it seems I needn’t have worried.  The MIT course takes about a night of my time a week, and the TU100 stuff (so far) takes about 4.  But we’ll see, as they’re both likely to ramp up.  As it stands, though, I could stop working on TU100 entirely until a week and a half before the end of the MIT course before I had to do any more work.

The module website opened two days ago, and wow, what a difference between expectations and reality.

Although the OU website feels cobbled-together from a lot of different initiatives over the last several years, the individual componant parts are usually quite high quality.  For example, the OU online library is a thing of absolute beauty.  The ease with which I can come up with nearly any peer-reviewed study is astonishing.  (Not to mention so interesting that I’m seriously looking at the cost of 10-credit modules to retain access to it after I finish my degree.)

The module website for TU100 is likewise high quality.  Though some things are a bit difficult to find (normally because something has been renamed since directions to it were created), it’s over-all a great way to organise the huge amounts of data I’m going to have to assimilate this year.

The best news is that I don’t have to wait for any of my materials to arrive before my soft start.  All texts are available online, as well as nearly every other resource.  There are only two things that are not entirely available online: the SenseBoard itself, and some full-length TV episodes from an OU/BBC collaboration.  The Sense software, however, has a virtual SenseBoard so that the actual one isn’t strictly necessary, and there are clips of the TV episodes relevant to our studies online.  I could do the entire module with what’s available now.

The module site is broken down into three columns: Assessment and Support information, the planner, and resources.

The most important of these is the planner.  It defaults to showing 5 weeks ahead, but can also show the entire module, broken down into a week-by-week guideline of what to study when.  In addition to being a to-do list, it also has tick-boxes to track your progress, and links directly to the relevant resource for each step.

The assessment and support information column has the names, due dates, and results for the various types of assessment: TMA (Tutor Marked Assignment) and iCMA (Interactive Computer Marked Assignment) are the only two for TU100, but TMA6 is also an EMA (End of Module Assignment).  Contact information for your Tutor (and tutorials information) or Student Services is also displayed.

The final resources column is almost as invaluable as the planner.  It has any news relevant to the module, discussion forums, and then links to pages where resources have been grouped by type or use.  So what’s a resource?  It could be an online or eReader book, a diagram, a questionairre, a hand-out, software download, or basically anything else you need to get your module done.  Obviously as one of the things we’ll be studying is the Internet and accessing things there, you’ll have to visit other sites for that, but otherwise, it’s a great self-contained collection of information.  It almost wouldn’t require you to leave the site to complete the module if it wasn’t specifically teaching you about other parts of the Internet.

Also, I found out that my materials were shipped out yesterday, so even though I don’t technically need them, they should be here shortly.

Technically, the first module for my degree course will start 1 October.  But that’s a Saturday.  Who starts anything on a Saturday?  Heck, even weekends start Friday night.

So there are realistically two other dates which combine for a ‘soft start’ to the module, ahead of the 1 October hard start.  These dates are the Module Website Live/Open date, and the date materials are received.  One might think that this would be one or two days after the Materials Despatch date, but often materials seem to be received the day before this date, so who knows.

The website open date for TU100 this year is 6 September, and the Materials Despatch date is 9 September.  Since that’s a Friday, I expect that the materials will probably show up the following Tuesday.  So I’m going to call the Soft Start date for TU100 this year 13 September.  We’ll call that three weeks away.

So what’s happened lately, and what’s going to happen?

Yesterday, our Introduction Forums opened.  They’re rather hard to find, though.  The site they’re on is called “Student Support Forums” allegedly under the Student Planner.  But I can’t actually find a link to the Student Planner anywhere.  That’s one of the major flaws of the OU: They keep coming up with great new ideas, but they don’t remove all the old ideas, so it’s kind of like trying to find your way through a really old London hotel that’s been cobbled together from a few other buildings.  You can’t necessarily get to the next room by walking in a straight line.  It may require you to go back up the hall, take a lift down, over a hallway, take a half flight of stairs to a mezzanine, and then swing across a chasm to the room.

Anyway, don’t lose your link, or you’ll never find your way back to the Student Support Forums.  I think it’s because they’ve opened them before opening our website.

The Introduction Forums have been positively flooded.  There’s several dozen posts already for Computing & IT, and only the Psychology forum comes close to the same number.  And the Psychology intro forum looks like someone’s kicked over an ant hill.  There’s hundreds of conversations all over the place, so I don’t know if it’s lots of different people talking, or the same three creating a new thread every time they have a new thought.  I suspect the former, however, as I’ve read that Psychology had the largest intake of new students every year.

This kicked off a new spate of new Facebook groups. I think that’s really a good thing, though.  Because if each of these groups has a slightly different flavour, it’s going to be easier to find one that works for me and my specific needs.

It also brought up a topic which had been brought up a few times in the past couple of weeks: Sense.  Once again, Sense is the customised version of Scratch developed specifically for TU100.  Our Introduction Forum moderator sort of warned everybody that they’d damage their brains if they downloaded Scratch, and that they’d be risking eternal damnation if they downloaded Sense from the OU before the Official Grand High Link from the Module Website opened.

Which is rubbish.  Download Sense and play with it.  It’s not as good as modern Scratch, but it’s fun.  If you want a more useful language that’s still exactly as simple, download Scratch or use the cloud version.  Heck, download Scratch 1.4, which is nearly identical to Sense except for TU100 specific things.  If you want to know what to do with Sense, search for tutorials on Scratch 1.4.  Or, y’know, wait for the soft start.

Course Title: CS002x Programming in Scratch
Provider: Harvey Mudd College via edX
Price: Free
Level: Introductory (suited to children)
Effort: 6 hours per week for 6 weeks, commencing on a set date
Prerequisites: None
Completion awards: Verified Certificate for USD$49

About the course:
This is not at all a bad course.  It’s well-suited to children, or really just about any ability level.  The children do need to be able to understand a fair amount of logic.  It’s a bit much for my 6-year-old son, even though he enjoys using Scratch.  (His ability level is simply knowing that command blocks are instructions for sprites, and lists of command blocks can be strung together.)

The course is described as a computer science course, but I really can’t feel like that’s justified. It’s a tour of Scratch’s capabilities, but doesn’t often describe theory or reasons for much.  There is an excellent amount of work with iteration, however.  One brief section also compares Scratch to industry standard programming languages, to show how the learning can be applied outside the Scratch environment.

Aside from it using Scratch, there was no prior indication that it was aimed at children, which it really is.  As Open University’s TU100 uses Sense, an off-shoot of pre-1.4 Scratch, there’s no reason to believe that a computer science course which uses Scratch must be a de facto children’s course.  There were plenty of students across many abilities and ages, so the discussion forums were a bit uneven at best.

The tour of Scratch begins with Scratch as the idealogical descendant of Logo incorporating a turtle graphics system.  This was bizarrely effective, because I was able to recall line-for-line programmes I wrote in Logo back in 1986 or ’87 after two weeks of lessons during elementary maths.  I reproduced it with just the addition of colour.

It winds past variables, iteration (as mentioned above), input, sprite-interaction, if-then-else logic, more iteration, functions, external calls, and even implies recursion with sprite clones.  Okay, for me, it took about 10 or 11 hours to get through everything but the final project, but that’s quite a list, and I can easily see it taking a young student a few weeks to get through that all.  But they will get through it all.  It’s all very logically laid out, it’s interesting, fun, and cool to keep them engaged, there are always lots of examples, and the progress made is a great confidence builder.

One confusing aspect is that the course has been adapted from some other curriculum, so it occasionally refers to weeks or other structures not present in the online, self-paced course.  It’s easy enough to ignore, but raises questions of how thoroughly prepared it is.

Two questions you might have for me are why did I take it, and what did I learn.

As stated, TU100 at the Open University, my first degree course module, uses Sense, which is based on Scratch.  Though I’ve played with Scratch before, and been impressed by it, I haven’t done anything in depth with it.  I was unaware of its true capabilities.  In a way, it’s a bit of a tragedy that I did that.

Scratch 1.6 is amazing.  It has functions, clones, lists, recursion … It’s great.  Sense, based on 1.4 or before, does not have clones, has no in-built stack for handling recursion data, and has to use calls for functions.  It appears as though it does have lists, in a custom solution.  I haven’t used it yet, so I’m still not sure.  I’m just lamenting that if I want to do recursion, I’ll have to use those lists to build my own stack.  Every. Single. Time.

And what did I learn?  Plenty!  One of my favourite moments was when I was polishing up my final project, and I wanted a custom score counter.  I searched the Internet for a Scratch solution, but couldn’t find anything that worked the way I wanted.  The closest I found was one which had a pre-set number of digits, with a separate sprite for each digit.  I realised that I could use recursion to call new clones of a single sprite to dynamically create as many digits as I wanted.

Another great moment is when I wanted to re-write a Rock-Paper-Scissors demo to include Rock-Paper-Scissors-Lizard-Spock.  The course wanted an If statement for each of the possible outcomes.  With Rock-Paper-Scissors, that’s just 6 possibilities.  With Spock and Lizard in the mix, it goes up to 15, and that’s already annoying.  So I diagrammed out the possibilities, saw a pattern, applied some modal maths, and realised there were really only three possible outcomes after said application.

So here are a couple of the things I created.  You can look inside any of the programmes to see how I did them, keeping in mind that I was learning as I went, so it’s not always the most logical way in the simpler programmes.

Jet Bike Steve: You Win Some, You Jetsam (Final project) WASD or arrow keys, up, W, or space to fire. 10 points per second survived, 10 points per star shot or collected, 25 points per bomb shot, and 50 points per guided-missile shot.

Derpa Deadfish (a game for my oldest boy)  You can go down, right, or left, but can only float up. Collect worms, avoid sharks (or turn them off), and use the safe-zone pad at the bottom.

Course Title: How to Code – Systematic Program Design
Provider: University of British Colombia via edX
Price: Free
Level: Introductory
Effort: 5 hours per week, 5 weeks per course, 3 courses – about 75 hours
Prerequisites: None
Completion awards: Verified Certificate for each of the three courses (USD$49 or $50, depending on which link you click on), automatically awarded XSeries Certificate if all three Verified Certificates are awarded

About the course:
Go.  Sign up now.  I don’t care if you hate computers or have been programming professionally for years.  This is an amazing series and getting through the course is highly rewarding.

There’s a lot to say about this series.  For one thing, the level of effort required is very real.  It took me three or four weeks to get through all three courses, and I was staying up late for hours on end.  And I’m considering working through it all again so that I retain it longer.

Beyond that, let’s start with the concept.  The SPD course introduces the idea of designing a computer programme as an abstraction layer between the solution and the coding.  It’s a tool for producing a template for a solution which is orthogonal to the language being used.  And it’s genius.

SPD takes this method from the How To Design Programs book, by Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, and Shriram Krishnamurthi.  It focuses on data-driven programme design, which was a new concept for me.  You define data, which informs what can be done with it, which influences function design, and so on.  By the end of the course, there were still experienced code-jockeys decrying the lack of well-named variables, without realising that when you’ve clearly defined your data and what it can and can not represent, it’s irrelevant. You can’t possibly be confused what “variable c” means when you’ve stated that the only valid data type for variable c is degrees Celsius.  If you’re an old hand at programming and haven’t used data-driven programme design before, it’s worth a look to evaluate why you do things the way you do them.

It uses its own beginner language that isn’t outrageously useful outside educational context.  It is Turing complete, but it’s a bit of a pain to use in real situations.  Its environment is also quite slow.  The reasons for not using a commercially viable language are discussed early on, and I wholeheartedly embrace those reasons.

By the end of the first course, you’re already designing your own programmes using the data-driven model. It was around this point that I realised the beauty of defining the data and describing functions based on it.  If data X has properties Y and Z, then I can write functions for X that read and/or modify Y and Z, either by itself, or in relation to other data.  It dove-tails beautifully with object-oriented programming, but the course doesn’t cover application of its high-level theories to low-level techniques with other languages.  (However, the ProgramByDesign project is also working on How to Design Classes which features at least a subset of Java.)

Professor Gregor Kiczales is one of the best technical instructors I’ve ever seen, and I used to do that professionally.  His focus is on getting the programme design right, so that the code can flow naturally from that design.

It is an amazing foundation for how to approach programming design.  Playing with Scratch, I didn’t imagine I could possibly apply the HtDP principles to such a strange and specific programming environment.  However, I ran into a few bumps so I broke out data definitions and templating, and solved the problems in minutes. (Note: Never underestimate the power of testing well-chosen and well-defined examples.)

Anyway.  Just sign up.  Sure, it’s 50 to 80 hours out of your life, but it re-introduces you to the digital world in a way which will undoubtedly increase your comfort with it.

Edit 14/03/2017: I’ve added the block contents of the two modules in another post, so you can finally compare which concepts you do or don’t have.


The question of which maths module to take is one that comes up a fair bit for students of the Open University, especially in STEM degrees.  It comes up so often, in fact, that the OU has a site devoted to the question.  For most people, this will mean choosing between MU123 (Discovering Mathematics) and the more difficult MST124 (Essential Mathematics I).

For some degrees, such as Maths, Physics, or Engineering degrees, the question is merely one of where you should start, as you’ll likely need to take and pass MST124 anyway at some point along your path. But for other degrees, you’re simply required to take a maths class, and which of the two you choose is completely up to you, with no effect on your degree or its classification.

As they’re Stage 1 modules, your pass level won’t affect classification. However, MU123 has a basic pass/fail structure, while MST124 allows the awarding of a distinction. I wouldn’t think this at all important, but someone pointed out that if they apply for a job while still on the degree course, it might be nice to say they passed all Stage 1 modules with a distinction.

I’ve mentioned earlier that I’m A) an immigrant, and B) a drop-out, so that makes deciding which maths to go into more difficult.  I was in advanced maths when I dropped out of high school early.  This would have meant I finished with the same amount of maths as non-advanced maths, but still beyond the compulsory amount required for all students. But I also skipped a year of maths before that, and had to self-teach some. So I’m left trying to match that up with “GCSE Maths” and “A-Level Maths” without anybody realising that the curriculum changes from time to time.  It would be so much easier if they simply said which mathematical concepts you needed to be familiar and comfortable with.

When I took the practice quizzes at the above mentioned site, I breezed through the MU123 quiz. When I took the MST124 quiz, I did alright through the first half of the questions, but it was taking me forever to remember formulas and rules I haven’t used in twenty years.  And the questions just felt tedious.  And I figured I just didn’t need that in my life.  So I didn’t even complete it.

Since it doesn’t make a difference to my degree, and it will be easier for me to get through and not burn me out, I was all set to simply take MU123 next year and never look back.  Working in the industry for as long as I have, I’m fairly certain it won’t ever come up in my job.

That was, however, before I encountered the Hitbox.

On a great series of MOOCs that I’m doing, I’m currently coding some graphics programmes. In all of the practice programmes we’re assigned so far, it asks us to only concern ourselves with the center point of the image, and pretend that if the image wanders halfway off the side of the screen, that’s still within the boundary of the screen.

I wanted to do it a little more advanced.  For instance, if the image is approaching the edge of a screen at a right angle, it can get as close as 1/2 the image size distance between the center-point and the screen boundary.  Easy enough to code that

But what if it’s approaching the boundary at an angle?  Now the corner of my image is further in the X or Y coordinate than half the image height or width.  How do I figure that out?

Well, it’s simple trigonometry.  As I mentioned the other week, I was self-taught in trig until last month, so I got a close look at a practical issue to see how well I understood it.  Here’s how I sketched out my problem:

hitbox-problem

 

It’s clear to see that the closest I can get to the top edge on the Y axis is going to be the distance between the center of my image and the corner of the image (also calculated using simple trigonometry) multiplied by the cosine of the indicated angle.  Cosine(y) = Adjacent Y/Hypotenuse Y, so Hypotenuse Y * Cosine(y) = Adjacent Y.  Similarly, I need that same hypotenuse (all corners will be the same distance away from the center in a square or rectangular image) multiplied by Cosine(x) to determine how close I can get along the X axis.

So that’s all pretty basic-level maths.  But it’s a very basic hitbox, too.  What if I don’t want to pretend my images are rectangles?  What if I’m having a scalene triangle interact with an irregular pentagon?  (Adding a third dimension isn’t really all that different, you just have to increase the number of checks that are made and the calculations that represent edges.)

It’s still not that difficult to calculate hitboxes, as it becomes a series of intercepting slopes being greater than or less than line segment points.  But the hitbox is just one tiny thing to calculate. And already my shortcomings in maths could have hampered a solution if I hadn’t prepared myself.

So I think I’m now edging toward MST124. To be clear, I don’t plan to go into programming, and though I’d love a proper Computer Science degree, this is as close as the Open University gets.  But I would like to have as many bases covered as possible, and not regret that I should have had more maths under my belt when I come across something I hadn’t considered in the future.  Besides, I did go back and finish the MST124 Are You Ready quiz, and it agrees that it’s a decent fit.

I’ve done a lot of MOOCs in the last few weeks.  The vast majority of them rate “Meh” on the scale from “Ack!” to “HOLYCANIBITZ!”  At the two extremes, I feel like I should say a bit more about them, but here are a bunch of the Meh courses that are so forgettable that I don’t have much to comment on.

Course Title: English: Skills for Learning
Provider: The Open University via OpenLearn
Price: Free
Level: Introductory
Effort: Self-paced, 24 hours, estimated 8 weeks
Prerequisites: None
Completion awards: Statement of Participation, Open Badge

About the course:
This was a fair mix of instruction and practical exercises.  The information in this course is a very small subset of the information in The Good Study Guide, which I’ve previously mentioned.  The actual time on the course for me (taking the practical exercises very seriously) was about 6 hours.  If I didn’t have the Good Study Guide, it may have been a nice reference before beginning higher education.

 

Course title: Information Security
Provider: The Open University via OpenLearn
Price: Free
Level: Advanced
Effort: Self-paced, 10 hours
Prerequisites: None
Completion awards: Statement of Participation

About the course:
This course is listed as an advanced course, but I can’t for the life of me figure out how. Really, this could have been a much shorter MOOC than its realistic 90 minutes (most of which was spent choosing and listening to a podcast): CIA stands for Confidentiality, Integrity, and Accessibility, and listen to information security podcasts.  Job done.

 

Course Title: Good Brain, Bad Brain: Basics
Provider: University of Birmingham via FutureLearn
Price: Free
Level: Introductory
Effort: 9 hours over 3 weeks, commencing on set date
Prerequisites: None
Completion awards: Certificate of Achievement + Transcript (£59 + shipping) for completing 90% of course content, attempting all tests, with score of 70%, or Statement of Participation (£39 + shipping) for completing 50% of course content and attempting all tests

About the course:
Well, as the title of the course implies, this is very basic.  But it’s also very good.  It’s a concise and informative description of many of the functions and attributes of the brain.  And while very interesting, I don’t think my heart would be in it to complete the three-part series this course is a part of.  Also, I don’t think I could take it listening to those pronunciations and reading those spelling choices again.  It felt like every scientific word was deliberately pronounced wrong and spelled the least usual way.

 

Course Title: Introduction to Cyber Security
Provider: The Open University via FutureLearn
Price: Free
Level: Introductory
Effort: 24 hours over 8 weeks, commencing on set date
Prerequisites: None
Completion awards: Statement of Participation (£34 + shipping) for completing 50% of course content and attempting all tests

About the course:
This seems like it would be a good course for someone to start considering cyber-security. As these concepts are a part of my job, none of the information in it was new, and I completed the 8 week course in about three days, so maybe 10 hours or so. I like that this course doesn’t shy away from technical descriptions of digital encryption techniques, though it doesn’t describe any actual computational mechanism for any of the concepts. As it was most definitely not directed at me, I can only say that it seems good, and has all the points and more of the things I’d want to teach someone for a primer on the subject.

It needs to re-think its active learning portions, though.  Though this is an introductory course and is limited to digital information rather than general information, it’s far more useful to all learners than the “advanced” course on OpenLearn above.