Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.

Brian W. Kernighan and P. J. Plauger
in The Elements of Programming Style.

So, here I'm going to write about computer programming. This is one of my favourite and most satisfying activities. Sometimes I'll come at you from a theoretical perspective, but mostly, I want to look at some of the practicalities of crafting software with different languages for different kinds of task. Although Prolog is my favourite language (soooo elegant), I've also worked a lot in Java, C# and JavaScript. All of these languages, and perhaps others, will feature in my examples.

I should say this site is not aimed at teaching programming from scratch. Rather, it's aimed firstly at supporting people already studying with me at college, and secondly at folk who already have some experience of coding and are looking to broaden their horizons.

If you're looking for online resources to learn from scratch, check the links here...

REx: First reader exercise: what does the diagram above represent? Click to find out.