Category Archives: Computational Thinking

The Kayaker’s Conundrum: An Exercise in Computational Thinking

20160928_181301Here’s a middle class problem that requires some computational thinking.

There are two of us, and we each have a single person kayak. We want to go for a paddle down the river. We can attach our kayaks to the top of our car, so we can drive them to the start. Trouble is, we can only paddle downstream. We can’t turn round and paddle back to the start: the current is too strong. We can attach bikes to the back of our car, so we could use them somehow. We have locks for our bikes, but not our kayaks, and don’t want to leave anything alone, unless its locked. We are not prepared to walk at any time, apart from walking the kayaks into and out of the river.

How can we best utilise our resources so we can go for a paddle and still get everything home again without having to walk anywhere?

Hint: There are a couple of algorithms you can use to solve the conundrum. But which is best? Which will involve the least amount of driving? Does it depend on where you live: close to the start or close to the finish? What if you live half way between the start and finish?