A list of interesting programming challenges