I recently started dabbling with quantum computing, and this post is kind of the introduction I wish I’d found before I started. It’s not intended to be anything other than a very small tip of a very big iceberg. Hopefully, this will give you enough to help you know if quantum computing is worth your … Continue reading A beginner’s guide to practical quantum computing
This article is my attempt to put my money where my mouth is. A friend mentioned the BBC Radio 4 series In Our Time on Facebook, and in the conversation that followed I said that the only time In Our Time discussed something close to my home turf I got grumpy about how poorly I … Continue reading P = NP?
As well as stacks as mentioned in the title, this also touches on sorting and fragmentation. Yes, I’m one of those people who think that their way of loading the dishwasher is the best way. This is part 2 of a probably 2-part series of articles on how washing up shines a light on computer … Continue reading Computer science while washing the dishes 2: The Stack
Calvin and Hobbes said that there’s treasure everywhere. For a sad geek like me, there’s also computer science everywhere. Doing the washing up the old school way involves a metaphor for the computer science concept of queue, if you think of people collaborating around the draining board. Quite a lot of this is a statement … Continue reading Computer science while washing the dishes 1: The Queue
Introduction If you hang around programmers for long enough, you might hear people use terms like complexity or Big O notation, or say that performance is of the order … such as of the order N squared. I hope that this article makes those terms a bit less confusing. The basic idea is seeing how … Continue reading Complexity: Performance trends in code
In the previous article I introduced optimisation. In this article I will go into two optimisation algorithms – hill-climbing and simulated annealing. Hill climbing is the simpler one so I’ll start with that, and then show how simulated annealing can help overcome its limitations at least some of the time. Hill climbing To explain hill … Continue reading Optimisation part 2: Hill climbing and simulated annealing
This post and the next are inspired by episodes of the podcast Linear Digressions. In this post I will describe general stuff – what kind of problem is suited to optimisation, and an overview of what optimisation is. In the next post I will go into some details – two related approaches to optimisation, with … Continue reading Optimisation
Introduction This is a post about fences, but not in the good fences make good neighbours sense that you might expect. (This could be the way into lots of good things about interfaces, encapsulation and so on.) In this post I'm not interested in the things that the fence is separating, but in the fence … Continue reading Counting – fence panels or fence posts?