My TM129 materials finally showed up yesterday.  I’ve already described the box contents, there was nothing unexpected.  I’ve had fun re-reading I, Robot though.

TM129 has one TMA for each of its three blocks, but they won’t be visible to read until closer to their due dates.  (My experience on TU100 tells me that it’s possible the module team isn’t done writing them, yet.)  I gave TMA00 a glance, expecting it be along the lines of write something about why you’re taking the class, and make sure you know how to zip and upload.

On the one hand, I was right: Those things are part of TMA00.  But the second half of it wants us to explore the ePortfolio.

TM129’s ePortfolio is nominally a record of your learning on the module: Activities that are somewhat more involved than practice exercises, and somewhat less involved than TMA questions.  After completing them, you’re asked to discuss the activity, particularly focusing on what skills it demonstrates and what avenues of study it opens up.  The pitch is that you could even show it to prospective employers to show them how much you’ve learned! (Pro tip: Never, ever show the ePortfolio to a prospective employer.  Or anyone.  Ever.)

In reality, the ePortfolio appears to be a tool meant to tie your study to your learning objectives.  And that’s cool!  Because it tells you how to get top grades on your TMAs, EMA, and the module.  The better you can sign-post how your answers match the learning objectives, the better you’re going to do.  In fact, the ePortfolio extra guidance essentially spells out how you can get top marks on your ePortfolio entries and therefore your TMAs.  (It also makes it very, very clear that if you want to half-arse it and just paste a screen shot and a three-line summary, you’re still going to pass TM129.  Welcome to university!)

So how does this fit into TMA00?  You’re asked to make an ePortfolio entry.  Not a fake one, and not a TMA00 specific one.  You’re supposed to read through the ePortfolio and choose any one activity to give a go.  I’d like to shake the hand of the genius who dreamed that up.  It’s a brilliant way to engage the students in A) familiarising themselves with the types of activities contained therein, B) the relative effort levels required, and C) give some thought as to what will be required to complete them.  If they’d asked students to do those things, about a quarter would probably actually spend any thought on it.

I chose an activity from the networking block (of course) and it was something I’d done a million times before: Diagramming my home network.  The trouble with this (and I suspect most things in the networking block … and the Linux block … and possibly the robotics block …) is that if I’ve done those things a million times, how am I going to learn anything, and how am I going to tie not learning anything to my learning objectives?  (Without lying, I mean.  I could take the coward’s way out, but there’s no challenge in that.)

I’m keen to see how my tutor responds to my solution.  To paraphrase Kirk, I changed the conditions of the TMA.  I set myself a challenge that yielded the same result as the proferred activity, but did it in a different way than directed.  (I also did it the way that I was directed, just to cover all the bases.)  I then tied the learning outcomes to the self-created task, and wrote about that, instead.  I highly suspect this will work, but I’ll let you know.

(To be clear, though, students are told to discuss the skills and knowledge displayed by the activity, not to discuss what was learned.)

Anyway, it’s not the only TMA work I’ve done this week.  I’ve also done half of MST124’s TMA01.  I’ve decided to use Word for my TMAs, since that’s likely the only place I’ll need to use written maths skills in the future.  I’ve finished Unit 1, and will complete the rest of the TMA after the module starts and I get through Unit 2.

Whilst many of my TM129 peers received their module materials yesterday, I’m still (sort of) waiting for mine.  I’m only sort of waiting, because A) the James May show on the DVD is on YouTube, B) I already have an e-copy of the Microsoft Networking Essentials book, and C) the I, Robot book was a favourite of mine in junior high school.  As these are the only three things in the box, I can probably stop worrying.

I’ve looked a bit at the TM129 online materials, which starts on the Robotics block, but I’m not really bothered by it.  My studying will be very similar in style to TU100 (active reading through bullet-point notes, combined with activities stored in a OneNote notebook on the cloud), so while I probably will start the study a bit early, it’s not really necessary.

MST124, on the other hand … I can’t really figure out how to study this.  The first half of the module or so is going to be revision.  (That’s “review” to any other Yanks in the audience.)  I’ve spent a few hours this weekend trying to “study” it, but all I’m really doing is glancing over the descriptions, then working on the activities.  As it’s all review, I haven’t come across anything that I can’t do, yet, so I don’t know what to do when that happens.

I’ve got two weeks to study each unit, more or less, and there are twelve units.  In that time, I need to get through around 100 pages of text, a few hundred exercises (or at least several dozen), possibly sit through a tutorial, and get through either half of a TMA or an iCMA.  There’s probably more than a few exercises in Maxima thrown in, as well.  It’s not bad at all, it’s just not obvious where to put my time, especially when I’ll have to split it with TM129.  (Thank goodness there isn’t much actual learning to do in TM129.)

I think the first thing I’ll do is hope for recorded online TMAs.  If I can watch a recorded online TMA, I skip the roughly 30% of the time that the tutors give over to sitting around waiting for people to work on examples.  I watched two revision boot-camp tutorials this week, and easily saved 40 minutes on each of them by skipping over empty sections, and more time skipping parts not relevant to me.  The only questions I ever ask during tutorials anyway are those to do with policy.  I mostly sit in because I know the tutors will drop TMA-specific hints.

Next, until I get to differentiation, I’m going to work backwards when necessary.  I’d like to do all the activities in the books to make sure there are no blindspots, and because practice is the best way to retain maths skills.  If there is a blind spot, I’ll back up and run through it, encorporating external resources as necessary.

Finally, once I get to and past differentiation, I think I’m just going to wing it.  Read without notes, try exercises, and practice, practice, practice.  Taking notes just doesn’t make sense to me with maths.  The closest I’ll come is following along the examples with a pen in hand.  I may alternate weeks between MST124 and TM129, as splitting days may throw off my rhythm.

We’ll see how it goes.  My intent is to stay one unit ahead throughout the module.  I’ve fallen afoul of getting too far ahead before, and the motivational issues that causes.  It can also make it a headache for revision.

The school I work at is in its second week of the year, things are held together with Sellotape and bailing wire and just about functional, so of course I spent most of my morning dodging in and out of the new module sites for TM129 and MST124.

The nearly-default Moodle theme I familiarised myself with last year has been reskinned with a flat theme.  It’s easy on the eyes and extremely usable on mobile platforms, so thumbs up from me.  (Actually, the high level of usability makes the rest of the OU site a bit embarrassing, really.)  Great UX planning.

MST-124 is about what I expected: A solid university course translated to an online medium.  TM-129 is also about what I expected: Chaos and insanity doled out as if to children.  Well, no, that’s what I expected.  It seems to be more like watered down squash.  It’s what you asked for, just less of it in the same sized glass.

MST-124 (Essential mathematics 1) isn’t bad.  It’s an obviously mature module which has honed its methods over decades.  There’s just the right amount of hand-holding (to me) for things like preparing assignment formatting, progressing from unit to unit, checking knowledge, and asking for help.  The ragged screams and buckets of tears from students in years past have obviously not gone unnoticed, and the result is a very logical, almost soothing trip through intermediate maths.

TM-129 (Technologies in practice) is like someone had a dream about being taught the perfect module, but got it a bit wrong when they woke up and tried to write out all the details before the dream slipped away from memory.  I’m sure somebody thinks it’s highly logical, but it’s really a bit weird.

There are three blocks in TM-129: robotics, networking, and Linux.  The only other organisation to the tutelage is by breaking it into weeks.  So there aren’t units, sections, or sessions, as such.  Just Robotics week 1, Robotics week 2, etc.  It’s my first day with it, but it seems difficult to learn the concepts in a flowing way.  Concepts appear to be explored and limited based on time, rather than a balanced or comprehensive understanding of it.

Thankfully, I’m not here to get an understanding of the topics.  As with TU100, I’m here to gain practice in learning.  I can’t see the networking information, as that’s entirely in a Microsoft book that has yet to be shipped (I hope Microsoft Press isn’t as bad as their edX team), but I don’t see any glaring omissions from the other two topics.  They’re only meant to be introductions, so it’s possible they’re as useless as OpenLearn MOOCs, or they could be dead useful.  I probably won’t be able to offer much of an objective view even after the module’s over, due to my familiarity with all three topics already.

Mostly I’m excited that I can study again.  I enjoy the process.

Despite what I said in my last post about how difficult LaTeX was to learn compared to how much use I’d probably get out of it … Well, I’d already invested the time in learning it, so why not give it a proper go?

I decided to make a proper template based off the ideas in MST125 Unit 2 (which is available for OU students to view, but they must be logged in).  For any experts out there who are bothered by the methods used, please keep in mind that this was literally my first day with LaTeX.  It gets the job done, and looks pretty … well, prettier.  Some features of the template:

  • Put your name, personal identifier, and TMA number in once, and the title section and footer on every page is updated from it
  • Typing \section{} will not just give the new section, but type Question # for you, with # being the next section number
  • Subquestions are likewise auto-incremented on every \item
  • The text font is a Helvetica sans-serif clone, but the maths font is still serif, making it easier to read

Obviously some parts will need to be cut and pasted, or otherwise modified to your needs.  The actual template I’m using, for instance, is slightly different in that it has a multi-line header instead of a footer, and it’s greyed out rather than having a delineation to match my Word template from last year. (Well, it was.  I’m starting to like this template more.)

Anyway, here’s the template I’m using for MST124.  I’m not taking MST125, so I don’t know whether or not this is part of a TMA question in and of itself.  If it is (or, frankly, even if it isn’t), please keep OU academic integrity practices in mind.

\documentclass{article}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{enumitem}
\usepackage{fancyhdr}

\def\myname{Your Name} % change this
\def\identifier{F0000000} % change this to your OU personal identifier
\def\tmanumber{TMA 00} % change this to appropriate TMA number or TMA title
\def\presentation{MST124-17J} % change to module presentation or TMA subtitle

\pagestyle{fancy}
\rhead{}
\lfoot{\myname}
\cfoot{Page \thepage}
\rfoot{\identifier}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{1pt}

\author{\myname, \identifier}
\date{} % remove this line to have date printed on title section
\title{\tmanumber\\\bigskip\normalfont\large{\presentation}}

\parindent 0pt % remove for paragraph indent
\parskip 4pt % also remove this for paragraph indent

\usepackage{titlesec}
\titleformat{\section}{\normalfont\Large\bfseries}{Question \thesection}{0em}{ }

\usepackage{nimbussans}
\renewcommand*\familydefault{\sfdefault} % remove for serif font

\begin{document}
  \maketitle
  \thispagestyle{fancy}
  \section{} % writes Question and incremental number
  \begin{enumerate}[label=(\alph*)] % auto-formats item decoration
   \item First subquestion.
   \item Second subquestion.
   \item Third subquestion.
  \end{enumerate}

  \newpage
  \section{}

\end{document}

Well that was earlier than expected!  I didn’t expect them to ship the books for MST124 out for another two weeks, but they were waiting for me when I arrived home yesterday.

The box is heavy.  My son picked up just one of the books inside and grunted under the weight.  It seems to be about a quarter acre of rainforest in the box.  The box contains:

  • MST124 Book A
    • Unit 1: Algebra
    • Unit 2: Graphs and equations
    • Unit 3: Functions
  • MST124 Book B
    • Unit 4: Trigonometry
    • Unit 5: Coordinate geometry and vectors
    • Unit 6: Differentiation
  • MST124 Book C
    • Unit 7: Differentiation methods and integration
    • Unit 8: Integration methods
    • Unit 9: Matrices
  • MST124 Book D
    • Unit 10: Sequences and series
    • Unit 11: Taylor polynomials
    • Unit 12: Complex numbers
  • Computer Algebra Guide (about using Maxima)
  • Handbook (74 page cheat-sheet you can take with you into the exam)
  • MST124 Guide (as “worth while” as every other OU module guide)
  • TMA form PT3 for posting assignments (Ha!)
  • Specimen exam paper, new for this year
  • Contents list

Here’s an “unboxing” photo with a bonus of my study area:

I had a look through the guide, the handbook, and the computer algebra guide, and then searched through they Labyrinth of Hidden OU “Support” Forums to look for anything interesting to do before the site opens.

The first thing of note was that the guide actually encourages students to start as early as possible on the material (literally as soon as they get the books, and before the site opens) and stay ahead until they’re done and it’s time to revise.  Cool!  Finally a module for the hares!

I downloaded and installed Maxima, and will use it as required, but as soon as the module’s over I’ll go back to doing what I used to do: WolframAlpha.  Maxima basically takes the place of requiring everybody to buy an expensive graphing calculator.

Then I looked into typesetting.  I have a lot of conflicting thoughts on the typesetting.  The first is that during the exam, I won’t have a computer to make my work pretty, so I may want to simply practice writing it out by hand for performance sake.  As I browse through the specimen paper, I don’t think this is much of a concern.

So for computer typsetting of my TMAs, I can either use LaTeX or MS Word’s equations.  (Or OpenOffice, I suppose, but I’m intentionally using MS through this degree course.  Another option would have been to use LibreOffice with the TexMaths LaTeX plugin.)  Last night I went through the guides for both.

Going in, I thought that LaTeX would be the better solution, as everybody glows about it.  It’s more work to learn, but apparently worth it in the long run.  In my opinion, the long run would have to be very, very, very long indeed.  It took about five times as long to learn as Word, because in addition to speaking its language for the maths, you also have to build the entire document around it.  Making a decent TMA template would probably take an initial few hours to get it looking as good as Word, with researching all the required functionality.  That said, if I were doing an entire maths degree, or was writing a book or thesis, it’d probably be worth the investment.  It’s absolutely professional quality.

Word, however, was much easier, quicker to learn, and was just barely behind in professionalism.  The only drawback was that the size of dynamic brackets wasn’t as nice as it was in LaTeX.  In exchange, you get to not worry about the rest of the document, easier and more intuitive codes, the ability to avoid codes altogether and instead point-and-click, instant rendering and feedback, and the data is then extremely portable rather than locked in a PDF.  If I need to write equations in another module (as I had to on every TU100 TMA) or elsewhere in life, the Word experience is also more portable.  If I needed complete control and customisation, then I’d probably opt for LaTex, but don’t see that happening in my current life tragectory.  It’s possibly worth it to learn the LaTeX codes, however, as they can be used in the Open University forums.

There are a few pre-module tutorials they’re running through September, and I’ll probably check one or two out, but I’m not that concerned.  After the Khan Academy prep I did this summer, I’m pretty confident already with about half the module.

Something my nine-year-old self would be horrified to hear me utter: Will summer break just end, please?

In addition to being a part time OU student, I also work in education.  Well, okay, I work in a school.  I’m not sure it has much to do with education.  The point is, both my full time job and my part time studies shift considerably during the summer.

For work, I stop fixing small, day-to-day things, and start fixing enormous things that take months.  It’s normally fun, because I get to do a lot of research and learn a lot of things.  However, this summer I’m alone in my department for various reasons, so don’t have time to do any of the large projects, so we’ve outsourced them all.  I mostly keep things running in between looking over the shoulders of consultants.  It’s frustrating, but hopefully this will be the only year.  (Although we’re converting to an academy, so who knows what to expect next.)

For my studies, I transition to MOOCs of personal interest.  This year has been wonderful for that, because I’ve really come a long way both in terms of programming languages and programming design concepts.  But … It’s just small hobby stuff.  And I can’t get involved in big hobby stuff, because I don’t want it to overlap and eat into my OU studies.

Last summer by this time, there was an Introduction forum open, followed by course-specific early-bird forums.  I’m anticipating early-bird forums amost as much as my grandparents used to anticipate catching dinner at Sizzler at 3 PM.  I hope they still have them.  (The early-bird forums, not the early-bird dinner special.  Though if Sizzler’s around when I retire, I’m definitely down for dinners before the school run.)  It seems like a good way to gel the nation-wide footprint of students for the presentation before splitting us off into tutor groups, so that we can bond and feel more comfortable in the FB groups.

But really, I just want to get stuck in again and be studying properly.  My poor nine-year-old self would have fainted by now.

Course Title: Software Construction: Data Abstraction
Provider: University of British Colombia via edX
Price: Free
Level: Introductory
Effort: 8-10 hours per week, 6 weeks
Prerequisites: How to Code series or Systematic Program Design series (same tuition)
Completion awards: Verified Certificate for $125 as part of their Software Development MicroMasters course of 6 similarly price modules

About the course:
I had amazingly high hopes for this course.  In fact, it’s difficult to judge it fairly because of how high my expectations were, which caused the very wide gulf to reality.  I’ll do my best to judge it on its own merits, but can’t help comparing it against UBCx’s stellar How To Code / Systematic Program Design course linked above.

As I started taking the course, I became ever more sceptical (skeptical for the yanks) of the the entire philosophy of the course.  It doesn’t start with theory, and it doesn’t start with academic information.  It starts with what is claimed to be a practical approach, much like learning a spoken language through immersion.  Except that while immersion is necessary for actual fluency, the best foundations of learning that language generally comes first from an academic study of it before the practical use of it.  Had I not just barely completed the mooc.fi Object Oriented programming with Java course, I would have felt frustration beyond measure.  They never teach enough to do useful things, and often only teach the bare minimum to answer a question after they’ve marked a quiz about it.

Beyond the approach, the technique they teach is … Well, it works.  It’s fair.  But students are expected to accept it as a religion, rather than as an education.  Edicts are handed down from on high, and we’re meant to accept them as though a flaming shrub had demanded them.  We’re not walked through the process of why.  We’re not lead to creating these tools in a meaningful way that they can be internalised and remembered, truly becoming a useful addition to our bag of tricks.  We’re just generally warned, “You must use these techniques … Or else!”  I lost count of how many times I quoted Sir Didymous saying, “Well, if that is how it is done …”

The point of this course is a tests-first abstract design of programs.  Define your program as a series of responsibilities, and devise tests for them, then code to your tests.  In my doubt, I had thought that it didn’t really unleash the power of object oriented programming.  And I was right, it didn’t.  But what it did was even more powerful: It allowed you to bring any tools you wanted to the party to get the job done.

Near the end of the course, I doubled back to an earlier project.  I had used the recommended methods to solve a problem, and they were ridiculous methods that utterly discounted both Java’s power in specific and object oriented programming in general.  I wanted to fix that, and re-wrote nearly all the methods.  But I stayed true to the precepts of the course as I did it.  And what I found was amazing.  I’d already done all the hard work.  I changed nearly EVERY LINE of actual implementation, but nothing more.  I didn’t even have to change the tests!  It took twenty minutes to rewrite eight classes, and then not only was it done, but it was tested, and I was completely confident in it.

So the course teaches good things.  It teaches powerful things.  The lecturer is easy to understand and isn’t boring.  But the things it teaches aren’t very complex, and could be boiled down to a thirty minute lecture, and that lecture would still involve the students more in understanding the reasons and therefore making it more absorbable and useful.

If you’ve got 30 to 50 hours to kill, give it a look.  But don’t reschedule anything, it’s just not that vital.  And definitely learn Java first.

Course Title: Object Oriented Programming with Java, parts I & II
Provider: University of Helisinki
Price: Free
Level: Beginner
Effort: 2 modules, 6 weeks each (by ECTS reckoning, as many as 300 hours)
Prerequisites: None
Completion awards: Free certificates of completion for each module

About the course:
In short: highly recommended.

This is not a computer science course, but it doesn’t claim it is.  It really is two (nearly) completely different courses.  The first one is about learning Java syntax and semantics, and the second one is about object-oriented programming in general, and some intermediate Java-specific techniques, as well.

It’s also not a MOOC, making their URL ironic.  It’s online, and it’s open, and a lot of people take it, but it’s not Massive Open Online.  It is an online textbook, and a very cleverly written code testing system.  You’re on your own.  Allegedly there’s someone to answer your questions in a few hours on IRC, but IRC users won’t really need the help, and answers to emails might take a few days, but again, you’ll almost certainly be past that “week” by the time you get an answer.  There’s no online community, no forums, no helping each other.  It’s an online textbook, an IDE, and nothing else.

(As there’s no video of anybody reading the book or walking your through its examples, it strongly parallels Open University modules without the support.  If you’re looking for the perfect module to taste what online study is like, this is it.  Imagine this course, but eight months long instead of a few weeks.)

Part I is a tutorial for basic Java usage, and is brilliant.  It’s quick, it’s informative, it’s very accessible.  It took me a week in my spare time, and was blown away at how quickly I picked up the skills with how they were taught.

Part II has a massive jump in difficulty, especially the week-ending challenges, where you’re welcome to use any programming techniques you care to in order to solve the problem, so long as its behaviour is exactly correct.  It highlights what I really love about programming:  There’s only ever one right answer, but there are countless ways to get there.

Being presented by the University of Helsinki, it’s an English course, and the vast majority of the content is very well written.  There are some peculiarities of language, however.  For example, the course keeps referring to built-in classes as made-up classes, which is … pretty much the antithesis of built-in.  So there are a very few minor confusions.

The certificates you get at the end are very clear about what has been studied, and even states that had it been accompanied by the university’s overseen exams, each would be worth 5 ECTS.  For the 10 credits between them, that’s 20 OU credits, and a little less than TM111 or TM112.  I’m guessing it’s not quite that impressive, but it does highlight that it’s the exact course their students take, and it’s definitely fit for purpose.

I’d like to thank Newbie from a comments page for pointing me in the direction of these modules.  They’re everything the Microsoft course wasn’t.  It’s not perfect.  It doesn’t include recursion, doesn’t discuss why one method is preferable to another, and states that abstraction is very important, but doesn’t teach any actual techniques for it.  Still, it’s a coding course, not a computer science one.

A highlight for me was using both NetBeans and IntelliJ IDEA to write the code and interface it with their testing system.  It’s a slick system, and couldn’t really be better.  It’s by far the best automated evaluation I’ve ever seen of checking code, including the one from CS50.  (Also, I enjoy both NetBeans and IntelliJ, and their ability to both prompt and automate things, but found myself working about twice as fast in IntelliJ.  If you have a student email address, do yourself a favour and get a free license for the full version.  If you don’t, at least check ot the community version.)

Course Title: CS50 Introduction to Computer Science
Provider: Harvard via edX
Price: Free
Level: Introductory
Effort: 10 – 20 hours per problem set, 9 problem sets and a final, self-paced
Prerequisites: None
Completion awards: Verified Certificate available for USD$90

About the course:
A lot of people view this course as the gold standard in introductory computer science MOOCs.  Having been through it now, I’m afraid I have to disagree.  It is an amazing course, though, and the one best placed to get you into the middle of useful coding as quickly as possible.

The structure of the course follows what you might expect of a university course translated to an online MOOC: each week has a very, very long lecture, followed by shorter bits from teaching assistants highlighting important concepts, and then there’s a problem set which is a series of challenges which ostensibly can be solved using the techniques introduced that week.  There is an exponential increase in difficulty from week to week, because both the material covered is more difficult, and the amount of documentation relating to solving the challenges is reduced.  This is meant to foster habits of independent study to resolve such challenges in the future.

This structure is the first relative weakness of the course.  (Relative to the MIT CS introduction course using Python.)  The MIT course imagines education looking more like the web.  The Harvard course spends countless resources trying to make the web ape its own institution.

As a former trainer, the most important thing about educating people is keeping them awake and interested long enough to learn, so it’s really about entertaining.  The lecturer, Professor David Malan, is extremely entertaining on stage.  The format is fundamentally outdated, however.  There could be a hundred clips where there’s currently a 105 minute video, each collated, indexed, and cross-referenced.  A build-your-own lecture series could take the place of an impending Sander’s Hall nap.  MIT did this beautifully in their latest foray into CS as a MOOC.

The languages “taught” are fantastic.  They start by giving a few rules-of-thumb in Scratch, and pretend that they’ve therefore taught it.  They next spend several weeks on C, and this is an impressive tutorial for the language … for any language.  They then give a small grounding in Python, and then a cheat sheet for SQL, JavaScript, and maybe a few others.  Really, I think they’d do better by having a hard limit on two languages, because everything beyond Python was literally worse than having no experience at all.  Students are expected to meaningfully interact with those other languages, without sufficient preparation.  In solving PSets, students already know those topics, or they luck into trying the correct technique the first time, or they end up chasing their own tails for hours and hours before giving up and asking on a public forum for help.  I spent many hours answering questions in the CS50 subreddit to alleviate some of the pain of such students.  (An example is that they expect students to use object-oriented programming techniques, but never discuss what an object is, let alone what object-oriented programming is.)

I would disagree that it is an introductory module.  It may be introductory if you’re on campus at Harvard, and can stop in and chat to a staff member for twenty minutes, and you’re literally spreading this across a third of a year.  If you’re doing this on your own, you’re going to have to come with a pretty strong intuition of why computer programs don’t do what you expect, and how to troubleshoot to figure out where it all went a bit wrong.  (The tool created to understand this in C is fantastic.  Because of this, they don’t teach how to figure out how to do it when learning C, and therefore students have no concept of basic troubleshooting techniques once the module moves away from C and that tool is no longer available.)

If you survive through to the victory lap of the final (which is really just whatever personal project you want to make a video for), you’ll be ready to take on any formal CS education.  I doubt you’ll be prepared for properly undertaking independent study, however, because the theory behind the coding is often ignored.

The real time I put into this was between 4 and 12 hours per PSet (typically on the lower side), so maybe 60 hours, plus another two hours each “week” watching lectures.

I’d recommend people interested in CS and coding take this module … but only if they also undertake the MIT or UBC introductory modules.

A couple of months ago, I predicted a score on my EMA between 93% and 95%.  I’m pleased to have outperformed the prediction, and achieved a 98%.  My OAS for the rest of the module had been 97%.  It’s gratifying to see these two numbers so close, as it means my tutor was well calibrated to the overall module requirements, which means I can be confident when I rely on her recommendations going forward.  (Listening to her recommendations definitely helped in this score.)

It is all downhill from here, though.