kata: continual practice to improve. Optimised for correctness, clarity, maintainability, using new techniques..
These are all graded (beginner to intermediate) questions posed on a leading code kata site.
I've put in some notes to outline the problem. They're written TDD, so the unit/doc tests give an idea of expectations.