Showing posts with label opensource. Show all posts
Showing posts with label opensource. Show all posts

18 January 2009

Open Course Development

It strikes me that, whilst I am deep into the design of a number of programming-related courses, I am making a terrible mistake. The mistake of not talking about what I'm up to. The mistake of assuming the entire burden of course development.

Instead I ought to be employing Open Source development principles. At least some of them. Seems to me that (at least) the Thousand Eyeballs principle applies quite well, at least to the course structure, content and sequencing.

Right now I'm in the thick of codesigning three courses that I (with good reason!) believe are served very poorly by the corporate training world, and I think I can design courses that deliver much, much better value for money. The three I'm busy with right now are "Elements of Object Oriented Programming", "OO Analysis and Design" and "Patterns of Software Design".

"Elements" is intended as an introductory foundation course for programmers coming from a non-OO background who want/need to learn the OO concepts quite quickly. Nobody in their right minds would believe that a 3-day "Elements"-style course is going to turn any Natural programmer into an OO expert... we all know that the process of learning to Think Objects takes 9 months. But I do believe that it is possible to teach the foundation concepts really well.

"OO A&D" seeks to demystify the analysis and design process -- to the degree that it is possible to demystify an essentially creative process.

And, finally, the "Design Patterns" course aims to teach something useful about... well... design patterns. I've taught variations on this one numerous times over the years, but never really been satisfied with the value I was able to deliver, so I've completely rethought the approach from the ground up, and -- I think -- come up with something Just a Bit Different. A whole lot of the Design Patterns courses I've seen offered seem to add up to nothing more than a whole lot of droning through the GoF patterns catalogue. I think there's a whole bunch more to the topic than that, and I plan to use the course to explore that.

I've also outlined a whole bunch of other courses that I want to develop over the next year or so, but developing even these three is a daunting enough task for now.

I'm openly stealing some of the concepts -- the approach to teaching -- exemplified by the Head First books, and I'm really interested to see that O'Reilly are themselves developing a bunch of courses -- I gather they'll be web-based courses -- under the Head First brand. Good for them! It's about time we saw a better approach to teaching technical stuff.

So I'm aiming to make the courses colourful, interactive and fun. I'm trying to build in lots of of pictures, music, video, games, practical exercises, movement. (Trying to figure out how to include flavours and smells... ;-)

I've also been breaking away -- especially for the "Elements" course -- from linearity in the course sequencing. Essentially I'm developing using a Spiral Model. First introduce a concept, then go on to related concepts, etc., in time spiralling round to repeat the discussion of the topic in greater depth, and so on. I've long known that it is too easy to give too much detail all at once, so for my own course material, I'm explicitly shying away from that. I think it equates -- somewhat -- to the concept of Progressive Disclosure in user-interface design. As luck would have it, after several weeks working on this stuff, I tripped across this article just today, and went "Aha! Somebody else who Gets It!"

Right now I am stuck. Struggling to come up with good great practical ways of exploring the topic of "Encapsulation" in a way that doesn't stray too far from the way it's meant in OO programming, whilst remaining vaguely interesting.

As soon as I get the relevant bits of machinery up and running, I'll post the course outlines. (Will take a while: I am unexpectedly and suddenly off to London for a week for a spot of consulting work.)

15 December 2007

Quartz Crystal

A very trying couple of days...  Faced with a job that cries out for a decent scheduler (polling feeds), I turned to OpenSymphony's Quartz.  I mean, the ads look so good: Robustness, recoverability, scalability, blah, blah.

First hint of warning I should have paid attention to was a couple of developers' names that I long associate with Doomed Pieces of Shit.  But it all still looked so good.  Until I got closer to the code.  Quartz?  Quartz Crystals for accuracy?  More like Crystal Meth!  Documented methods that mysterious fail to exist.  Examples that aren't.  I thought the JavaDoc got generated from the source, no?  I guess we have here the penetrating stench of Configuration Mismanagement.

Then you enter a twisty little maze of undocumented dependencies.  You will use Commons Logging.  You will use a bunch of J2EE stuff, even though you application is a simple standalone with no hint of J2EE awfulness in sight.

No.  After a day or so of hacking at this steaming turdpile my brain feels like so much oatmeal porridge that I can't even work even work up enough bile for a decently vitriolic blog post.  For me, one of the surest signs of a dying opensource project is when their wikis and forums are filled with spam because nobody can be bothered to disallow Guest users from posting; when the version-control system shows six checkins in the past six weeks.

I'm outa here in favour of Doug Lea's concurrency stuff. What a pleasure by contrast.  I'll live without clustering for now...

29 November 2007

3 Apps I Really Want (Open Source Only!)

I'm full of ideas.  Aren't we all?  Eventually, when you reach a hairy old age like me, you realise that There Ain't No Way In The World you'll ever be able to do them all.  This is what makes ideas cheap.  Let me say it again.

Ideas Are Cheap. Implementation Is Everything!

Just occasionally, though, we have ideas that are so good that we really, really want to see them implemented.  But we know, deep down inside our souls, deep down in our secret heart, that we're never, ever going to have the time, energy and stick-with-it-ness to pull the thing off.

Here are three of my ideas:

1. I want a ToDo manager that works like this: Keep my top five ToDo items only. Don't even allow me to put more in.  I must be able to prioritize them.  And they should display at all times as my computer's desktop image.

2. A decent word-processor.  One that fails almost completely to concern itself with formatting.  Perhaps bold, italic and lists -- that's all that's really needed.  On the flipside, though, it should really understand document structure -- sentences, phrases, paragraphs and sections.  And allow me to collapse them.  If I move a heading, move all its subheadings and associated text, too.  In other words, focus me purely on prose, editing prose, tightening up my phrasing, reordering my own words.  Please don't make me fuck around with margins, fonts or colours.  I know that Lyx does something pretty close to this, but its far from pretty, and, frankly, TeX is dead.  Get over it.

3. A social-networky, Web2ish, Ajaxy, <insert-own-buzzword-here> website where people can list their ideas for systems they don't have time to write, and everybody else can vote on the ideas, comment, add/edit the spec (wiki style). Perhaps, just perhaps, some people might choose to pick up those projects and start implementing them.  No bounties.  Sorry, but I'm more broke than you!

Come to think of it, maybe I will implement that last one!  After all, don't the VC pundits all say "Get the simplest thing that functions out the door, and then listen to your user-base."  Here's a way of listening before you even get version 0.0 written!

25 October 2007

31 May 2007

Kubuntu 7.04 Feisty Fawn

Hooray!  My free (in both senses) Kubuntu 7.04 CD has arrived.  Only a couple of weeks since I requested it.

A Thousand Thanks to Canonical and all who sponsor this stuff!  I'm in a space right now where the cost of the download really is significant for me, and I would probably have had quite a lot of hassle inobtaining the latest Kubuntu update if not for their free shipping program.

I've been using Kubuntu on my (HP) laptop ever since I got it, and it mostly "just works".  The only hassle I've had was over non-free video drivers, and that was quite easily solved.  I'll probably load Kubuntu onto my desktop machine, too, in the interests of reducing clutter in my life.  For about 5 or 6 years, now I have had Mandriva on my desktop machine. I have no complaints about Mandriva. It has served me extremely well through the years, but it is one more distro to obtain, update, download bits of, and maintain and I'm into extreme simplification right now.  If I do move the desktop box over to Kubuntu I'll have things about right: down to two distros -- Gentoo for servers (where I want complete control over everything that goes onto the box) and Kubuntu for desktop/office work (where I want everything to "just work" without having to think about things).

Anybody in the South Cape who wants a copy of the Kubuntu 7.04 (Feisty Fawn) CD, please drop me a line and we'll arrange something!
Related Posts Plugin for WordPress, Blogger...