Making the invisible visible in constructionist learning tasks: an explanation framework based on a Pedagogical Virtual Machine (PVM)