We want to use advanced techniques from computer science, taken from fields such as term rewriting, strategies, error-correcting parsers, and generic programming to provide feedback at each intermediate step from the start towards the solution of an exercise.