Evaluating the effects of adaptively presenting worked examples, erroneous examples and problem solving in a constraint-based tutor.