To help students learning computer programing better cope with the high level of complexity involved, this project investigates a novel education technology, CSEdPad (CS Education Pad), to ease students' introduction to programming during their early encounters with CS concepts and tasks. The CSEdPad system design brings to bear proven educational technologies and techniques to improve students' mental model construction, learning, engagement, and retention in CS education. In particular, the system targets source code comprehension, a critical skill for both learners and professionals. It monitors and scaffolds source code comprehension processes while students engage in a variety of code comprehension tasks. Key approaches being explored include Animated Pedagogical Agents, self-explanation, and the Open Social Learner Model.
A key problem in teaching introductory programming that has been poorly addressed to date is teaching students how read and comprehend program code. In particular, current CS curricula tend to emphasize the writing of program code, and give little instruction on how to read code. To address this problem, we have created Coding Companion, a supplemental learning and quizzing tool for introductory Computer Science courses that use the Java programming language. This application focuses on helping students develop program comprehension skills by reviewing key programming concepts learned in class and walking the user through the step-by-step execution of code examples demonstrating those concepts.