Recently I've again started reading Dijkstra's book "A Discipline Of Programming". In the very first chapter "Chapter 0 on executional abstraction", he mentions a board game which when played correctly produces the GCD of two numbers. It is just an implementation of Euclid's Algorithm. I wanted to write a program to play this game.
I'd also discovered a library to produce svg animations called vivus, which I wanted to try.