Programming koans are a series of programming tasks written as failing unit test assertions. Each koan must be modified by fixing the code to make the test assertions pass. In the course of solving each koan the student achieves an understanding of that particular part of the programming language or feature, moving closer to a state of programming language enlightenment.
It looks like the original idea of programming koans was implemented in Ruby: https://github.com/spatten/ruby_koans and subsequently similar koan suites have been put together for other languages. The following are an inexhaustive list of koans for improving one's C++ skills: