Content area
Abstract
In this dissertation we propose a new computer-supported approach to teaching and learning, called Recursive Pedagogy, which is designed to fully engage students in problem solving and which uses the students' own attempts to generate new authentic problems requiring higher-level thinking. This approach works for any class using a Problem Solving Learning Environment (PSLE). We also propose a new model for studying the real-time problem solving performance of all students in a large class which we call the Problem Solving Markov Model. To evaluate these ideas, we built a Problem Solving Learning Environment (Spinoza) which allows students to solve Python programming and debugging problems in their browser. It was created to be used extensively in class time while generating several information-rich views for the instructor about the students' progress to help in orchestrating the class. To engage students with varying skill in problem solving activities, we designed a Recursive Pedagogy in Spinoza which we call Solve-Then-Debug. This activity requires students to rst solve a programming problem and then to analyze the most common errors of their classmates on that problem. We also showed how the Problem Solving Markov Model for Spinoza could be used to build orchestration and debrieng tools. The Spinoza system was used extensively in a large Python Programming class in the Spring 2017 semester and it proved to be an effective tool for keeping students engaged in programming and code analysis activities.