The course uses 3D interactive animation in a novice-friendly environment to introduce object-oriented programming concepts and help students develop problem-solving skills. Pedagogical issues are presented that involve the use of visualization and graphics concepts, the notion of state, and programming ...