This reminds me of a fun computer science class back in university called "Programming Challenges", which followed the Springer book of the same name. Over two or three weeks, we had to solve one problem every day. That was really fun! Edit: Forgot to mention that the recursive "lake on an island in a lake ..." problem was one of the excercises.