Skip to content

{ Category Archives } edjercashun

The challenges of teaching software engineering

I’ve just finished teaching a four-day course introducing software engineering for the first time. My plan is to refine the course (I’m teaching it again in October), and it will eventually become the basis for doctoral training programmes in research software engineering at Oxford, and part of a taught Masters. My department already has an […]

Ultimate Programmer Super Stack: Last day!

I already wrote about the Ultimate Programmer Super Stack, a huge bundle of books and courses on a range of technologies: Python, JS, Ruby, Java, HTML, node, Aurelia‚Ķ and APPropriate Behaviour, my book on everything that goes into being a programmer that isn’t programming. Today is the last day of the bundle. Check it out […]

Beginner thoughts

Back story: my period of walkabout, in which I went to see the rest of the computing world beyond Apple land, started in November 2014. This was shortly after Swift’s introduction at WWDC 2014. It ended in October 2018, by which time the language had evolved considerably, its position in the community had advanced greatly, […]

Two Schools

There always seem to be two schools in software, though exactly where the gates are varies. Alan Kay described how Edsger Dijkstra noticed that “the Atlantic has two sides”. It was basically all about how different the approaches to computing science were in Europe, especially in Holland and in the United States. In the US, […]

No True Humpty-Dumpty

Words change meaning. Technical words change meaning. Sometimes, you need to check out a specific commit of a word’s meaning from the version control, to add context to a statement. “I’m talking about Open Source in its early meaning of Free Software without the confusion over Free, not its later meaning as an ethically empty […]

There is no browser, only Zuul

My short-lived first plan for a career was in Physics. That’s what my first degree was in, but I graduated with the career goal “do something that isn’t a D.Phil. in Physics” in mind. I’d got on quite well with computers as a hobbyist, and the computing and electronics practicals in my course labs. A […]

Bottom-up teaching

We’re told that the core idea in computer programming is problem-solving. That one of the benefits of learning about computer programming (one that is not universally accepted) is gaining the skill of problem decomposition. If you look at real teaching of computing, it seems to have more to do with solution composition than problem decomposition. […]

On books

I’d say that if there’s one easy way to summarise how I work, it’s as an information focus. I’m not great at following a solution all the way to the bitter end so you should never let me be a programmer (ahem): when all that’s left is the second 90% of the effort in fixing […]

This is fine

The BBC micro:bit is a tool for introducing young people to programming. It’s a little embedded computer with a few inputs and a matrix of LEDs for output, as well as some control lines. In principle it’s quite easy to use, I made a 1d6 simulator: from microbit import * from random import randint class […]

On the extremes of computer science

I didn’t study computer science at school or university, and still manage to work as a programmer. That is not to say that I don’t need to know some things that are taught on computer science courses. Just this week I’ve had to build a couple of different data structures and understand their running time: […]