At the last tutorial I went to, we received an update on the Stage 2 modules for Q62 (and Q67) which are being retired within the next few years.  Some changes are excitingly small, and others are large enough to make me change my plans.

Probably the biggest news is what isn’t changing.  M250 – Object Oriented Java Programming is almost certainly being replaced with another Java module, and might even still be called M250.  This is good news for me, because I was worried after taking the Learn to Code for Data Analysis MOOC on OpenLearn and the news that TM112 included Python that a new Python module would be replacing M250.  I don’t care one way or the other if they teach using Python or Java, object-oriented is object-oriented to me at this point, and the skills seem fairly transferable.  But I’d prefer to have a more mature module than a complete tear-down which would be required by switching to Python.  Hopefully they’ll be able to preserve quite a bit of the existing material and give it a good update in the process.

The largest change is probably happening to the Networking path for Q62.  T216 currently takes 50% of the Stage 2 modules, and is reportedly very difficult.  There are so many great things to study at Stage 2 that I had recently made the decision that I just couldn’t justify the full 60 credits required for it, and so was going to take four programming and developer based modules, instead, and just certify in networking on my own time.

That’s no longer necessary.  T216 is being split into two 30 credit modules, with the first half being taught in Stage 2, and the second half in Stage 3.  Given the effort level reportedly required, this seems like a good idea.  Most importantly, it makes the networking path much more flexible.

It’s not the only module being shrunk, though.  T215, which was the only other 60 credit module in Stage 2, is also becoming a 30 credit module.  The other 30 credits aren’t be replaced, however, as there was apparently a lot of redundancy already with an existing Stage 3 module.  This updates the module and removes the redundancy.

Another largish change is that a new TM254 – Software Engineering module is being introduced.  (Final module code is pending … And everything else, really.)  This includes parts of both M256 and M258, and I imagine replaces both of them … But I’m not entirely clear on this last part.

So here’s the summary of changes:

Stage 1:

TU100 My digital life – Final presentation being taught now, being replaced by TM111 Introduction to computing and information technology 1 (30 credits) and TM112 Introduction to computing and information technology 2 (30 credits)

Stage 2:

M250 Object-oriented Java programming – Final presentation October 2017, replacement also probably M250, or another Java module

T215 Communication and information technologies – Final presentation October 2017, replacement an unnamed 30 credit module

T216 Cisco networking (CCNA) – Final presentation October 2017, replacement TM257 at Stage 2, and TM357 at Stage 3

M256 Software development with Java – Final presentation February 2018, full or partial replacement by TM254 Software engineering

M258 IT project and service management – Final presentation October 2018, full or partial replacement by TM254 Software engineering

Stage 3:

Currently unknown, aside from the addition of TM357 as the second half of the Cisco networking module.

As I’ve said, all this will change my plans.  I had been expecting to take M250, M269, M256 and TT284 (Web technologies, which I think is also just going to be refreshed similar to M250) at Stage 2, and self studying the CCNA.  Now I think I’d like to take M250, M269, TM254 and TM257.  Stage 3 is nearly half a decade away at this point, so I’m not going to worry about it just now.

Completely unrelated, I’ve got my TMA04 submitted.  The topics covered are statistical analysis, creating graphs, determining averages, personal/professional development planning, loops and lists in Sense, and report research & writing.  And probably also referencing.

In US terms, I’d give my report all of a solid C-, but that’s difficult to translate into the OU model.  I also intentionally broke the rules for the PDP section, as I’m not going to lie and pretend the ticky-box method of self reflection is useful for me, so I expect to lose a huge chunk of points for that, but it’s only worth 10 marks anyway.

If it were me grading, I’d take 10 marks off my report, 5 marks off my PDP, none off the Sense stuff, and I’ve probably forgotten 2 marks worth of stuff on the statistical analysis.  Additionally, my tutor seems to take points off the 20 skills marks in direct proportion to marks taken off the rest of the assessment, so that’s another 2 marks off.  All together, I’d score me an 81 on this one.  It makes me wonder how badly I’d have to do in order to fail an assessment.

Edit 2017/2/24: TMA04 results came back last week.  Somehow I scored another 100%.  I can’t really say that this is good news, though, because it highlights how vastly different my expectations are from my tutor’s expectations.  I can’t truly calibrate my expectations with the OU’s until the EMA comes back, but it seems as though there needs to be a large shift.

Edit 2017/4/3: T216 module descriptions now indicate that T216 is being split into TM257 and TM258, both at Stage 2.  As networking once again requires half of the Stage 2 modules, there’s no flexibility to it, and frankly no point to me taking it.  Books off eBay it is!

Edit 2017/8/29: T216’s replacement is now showing as Stage2/Stage3 again.  TM257 and TM357.  Boy do they like change!

Course Title: 6.00.1x Introduction to Computer Science and Programming Using Python
Provider: MIT via edX
Price: Free
Level: Introductory
Effort: 15 hours per week, 9 weeks (really 8 weeks and 1 day) — about 120 hours
Prerequisites: Basic algebra, aptitude for mathematics, prior coding experience helpful
Completion awards: Verified Certificate ($49) with at least 55% course marks, and 3 credits “Academic credit” through Charter Oak State College (65% course marks and $100 in addition to the verified certificate)

About the course:
This course is heavy on the “Introduction” and “programming using Python” portions of its title, and somewhat lighter on the “computer science” section, but it does a credible job of each.

It dovetails beautifully with the Systematic Program Design series I reviewed a few months back.  On one hand, this course gives object-oriented context to the basic principles in the SPD course, and provides a great roadmap of what’s next.  On the other, the SPD course fills in a lot of the data structure and raw theory gaps in the MITx intro course, as well as showing recursive design in a much more powerful light.  Taken together, they really feel like solid first steps into really understanding what’s going on under the hood, and how to direct the processes.

This edX course is an updated and platform-specific version of the MIT Open Courseware teachings on the same topic.  I flipped back and forth between the 2011 version and this one for at least half of the course, so some of the specifics I remember may actually be from the OCW course.  It’s difficult to choose a favourite lecturer between Profs. Grimson and Guttag; they both present the lectures with humour and clarity that’s easy to follow.  The bite-sized pieces of the edX course are generally better, but the poor “finger exercise” knowledge checks count against it.

To help students gauge their comprehension of the material, these finger exercises are interspersed between lecture segments.  Often, though, it seems like they’re just there to make busy work, as they’re not checking knowledge that’s useful, they’re just exercises that test nothing so much as your patience.  The worst of these are when they test concepts not in the lectures, which is defended by the TAs as inspiring independent study.  This excuse is somewhat undercut by the text on some finger exercises which states not to get too frustrated with a concept, as it’s explained in a later lecture.  If it’s explained later, then clearly that’s where we’re supposed to learn it, not through independent study, or they wouldn’t ever explain it.

There are so many concepts taught (well) through this course, I really can’t pull out a list.  In general, there’s a lot of coding principles, such as operators and operands, expressions, variables, calls, specific data structures, loops, recursion, conditionals, etc.  Discussion of address pointing supports lessons on mutability and cloning. Functions and objects, heirarchies.  There’s a fair bit to do with abstraction, though I feel this is handled better in SPD.  On the other hand, this course did a much better job of exploring algorithm complexity and costs.

Among the most useful (to me) portions of the course were the problem sets.  These were typically program problems you were let loose on to solve however you wish. Well, that’s how it was on the OCW version of the course.  In the edX version, which grades your programs and therefore has a very narrow interpretation of success, you mostly had to solve the problems how they wished.  It was really frustrating after the freedom of the OCW problem sets, especially when the same problem sets from one couldn’t be used on the other, and one case where the accepted solution technically required a different answer than what the problem description requested.

The required time for this course is way off.  First of all, this is not a self-paced course, and each “week” is released serially.  However, though it takes eight weeks before the content is all dished out, there’s really only six and a half weeks of content.  There’s a two week break between the third and fourth week releases, and the midterm exam is then inserted AFTER the fourth week begins, so it’s not to allow time for that.  Then the last week and a half are likewise empty of content, aside from the final exam.  (The final half week isn’t really useful, feels tacked on to advertise the next course, and falls well short of the OpenLearn data science introductions.)

The time you spend is then split three ways: Time watching the lectures and doing the exercises, time doing the problem sets, and time researching and revising.  If all the problem sets were written lucidly, I’d estimate about 10 hours per week, or about 65 hours.  Poor writing on the problem sets (similar to the above issues with poorly written finger exercises, but with an emphasis on the required solution differing from the requested solution) probably expand it to roughly 12 hours per week, or around 80 hours.  This is very close to the 50 to 80 hours of the SPD course, but I feel the SPD course is more informative of computer science, and less frustrating.

I think if I had it to do over, I’d do the OCW version instead of the edX version, just because it’s easier to evaluate my progress on my own than to have a computer do it.  Oh, the irony.

Course Title: Learn to Code for Data Analysis
Provider: The Open University via FutureLearn
Price: Free
Level: Introductory
Effort: 12 to 20 hours over 4 weeks, commencing on set date
Prerequisites: None
Completion awards: Statement of Participation (£19 + shipping) for completing 50% of course content

About the course:

I wanted to get my feet wet with some structured programming instruction, since I’m entirely self-taught up to now. (Well, not entirely. There was that half semester in Mr. Barton’s Pascal class where I tried to hack into the school network instead of listening to him drone on about methods of averaging.)  I also wanted to start learning Python.  This course seemed like a good fit.

Data Science or coding for Data Analysis is all the rage in MOOCs right now.  I found courses all over the place teaching essentially the same skills with various programming languages. Or one from Microsoft still insisting that Excel was up to the task.

This course only touches on the barest beginning concepts in coding.  It uses pre-defined contexts for Object-Oriented Programming, but doesn’t really describe how they work aside from feeding you the formula, “If you type what I type, you’ll get the answer I get.”  The syntax it teaches is almost exclusive to the problem domain of data analysis, and it doesn’t teach much outside that syntax.

One nice thing about the course is that it’s tough. It’s not one of those courses that says it takes 4 weeks, but is actually over in about four hours.  The first two weeks took me two or three hours a piece.  The third week took me nearly five hours.  The last week was well in excess of five hours, and could possibly have been ten.  It was an absolute slog, but it was very informative.  Again, though, mostly in the realm of data science.

The course information page says that the effort required is 3 hours per week, but once you join the course it says 5 hours per week.  So keep your eyes open if you’re intending to take it.

It’s not horribly helpful on its own.  It does teach about Python, and gave me enough familiarity with it to decide that I’m not a fan of many of its shortcomings. If you do need to learn coding for data analysis, this course won’t be enough to be helpful.  If you need to learn coding for reasons other than data analysis, this course won’t be enough to be helpful.  So it’s just a taster of Python in this specific context.

One odd thing of note was that there was a great number of facilitators on the course from the Open University to assist students, but they weren’t the most polite. They were a bit aggressive with any student suggesting something would be easier a different way, or that there was a shortcoming in either method or resource.  But they were helpful to those on the course, and there were a lot of them, more support than I’ve ever seen on a MOOC.