Teaching metacognitive skills : implementation and evaluation of a tutoring system to guide self-explanation while learning from examples