Pedagogical-based learning object system to support self-regulated learning of computer science