A paradoxical anecdote or riddle, used in Zen Buddhism to demonstrate the inadequacy of logical reasoning and to provoke enlightenment.
Applying this to programming has resulted in programming-style koans. Meaning riddles leading down a path to enlightenment about a specific language. Generally koans can be used to help learn the syntax and intricacies of a language by introducing different aspects in a logical order using failing tests which the "student" must pass before continuing.
I first became aware of programming koans when I set about learning Ruby and worked through the Ruby Koans.
So, give these koans a try, you might learn something!