Table of Links
Abstract and 1. Introduction
2 Literature Review
3 Approach
3.1 Problem Structure & Dynamic Scaffolding
3.2 Informal Assessment & Feedback
3.3 Pair Programming Dyad
3.4 Course Structure
4 Discussion
5 Conclusion
6 Acknowledgements and References
3 Approach
PSS is a “flipped classroom” pedagogy in which pairs of students work together to solve ill-structured, complex problems all while engaging in a critical dialog with the instructor. This problem solving centered approach is intended to match real-world problem solving and encourage deep, conceptual thinking, and partner-based learning. As the pairs work on a problem, they will receive on the spot feedback called a desk crit. In addition, the instructor may feel the need to adjust the problem difficulty up or down to match the student’s ability and progress (Le Doux and Waller, 2016). This real-time adjustment is called a “dynamic scaffold” and is used to keep the students in their zone of proximal development (ZPD) (Vygotsky and Cole, 1978). Overall, PSS is a cognitive apprenticeship model of instruction, in which students learn by practicing problem solving and receiving personalized feedback as they work.
Our method is to adapt PSS to use the practice of pair programming. In our adaption, a series of shorter problems was found to be the most effective approach. The series of problems keep the pairs on-track, focused, and within their ZPD. This also provides more opportunities to employ the dynamic scaffolding to adjust problem difficulty.
3.1 Problem Structure & Dynamic Scaffolding
One essential aspect to PSS is the problem structure and formulation. Rather than using typical textbook problems, PSS challenges students by presenting them with problems that are more ill-structured and complex (Le Doux and Waller, 2016) according to Jonassen and Hung (2015)’s problem difficulty scheme. These problems are designed and intended to have multiple legitimate solutions (Jonassen and Hung, 2015).
In the original PSS for engineering, a single class was typically two hours in length. During a single class, a student team was expected to finish between one and three problems (Le Doux and Waller, 2016). This illustrates how the problems are lengthy and challenging with possibly many “deadends”, sub-problems, and an overall meandering path to a solution. By comparison, typical textbook problems are far more formulaic, straightforward, and linear.
In our adaptation of PSS for CS education, the problems are typically presented to the students with examples of program inputs and desired outputs. For example, if the problem is to write a program to produce prime numbers, the prompt for the student is minimal “Work with your partner to write a program that produces prime numbers.” The prompt is paired with example input and output, in this case a command-line interface:
In our adaptation of PSS for CS education, the problems are typically presented to the students with examples of program inputs and desired outputs. For example, if the problem is to write a program to produce prime numbers, the prompt for the student is minimal “Work with your partner to write a program that produces prime numbers.” The prompt is paired with example input and output, in this case a command-line interface:
The primes under 10:
2
3
5
7
This example is sufficiently ill-structured and complex for a CS1 course because it is solvable with their knowledge and skill level and allows for multiple legitimate solutions. First, the pair must identify the problem and challenges that need to be overcome to produce a solution. The decisions about which control structures to use and how to use them or which functions would be helpful to define or use are entirely up to the student pair. Each pair must create a complete solution i.e. a program for the given problem from scratch. Further, students may have to do some independent research on the particular application area, in this example, on the relevant properties of prime numbers to complete the task. In general, an example of input to a program and corresponding desired output is essentially a bare minimum specification for a program. In that sense, the problems are presented in an ill-structured fashion, since they do not explicitly ask for particular programming constructs or methodologies, only a desired goal. This gives the student pairs the opportunity to navigate a large space of solutions while keeping all the students in the class on the same task.
Another key aspect of PSS problems is complexity. The problem at the center of a PSS is targeted at the more advanced students. This ensures a sufficiently complex problem, however it will be too challenging for many of the students. The way this issue is addressed is through “dynamic scaffolding”, the process of instructors adjusting problems in real time (Le Doux and Waller, 2016).
If a team is stuck and unable to make any progress on a problem, the instructor may adjust the problem difficulty down by making the problem less complex, more structured, or both. This allows as many students as possible to be within their ZPD (Vygotsky and Cole, 1978). The ZPD means a challenge is appropriate for student learning, meaning that it is neither too challenging to be discouraging nor too boring to be uninteresting. Dynamic scaffolding means students are far more likely to be in their ZPD than traditional lectures which are typically only suited for a subset of students.
Our application of PSS for CS extends this idea of dynamic scaffolding to the problem selection and formulation. Rather than selecting a single problem for the PSS, our adaptation utilizes between one and five problems. The typical structure of our CS PSS is to have a “ladder” of problems, starting with a relatively easy problem, then followed by moderately difficult problems, and then finally ending with an advanced problem. All the problems are centered around a single concept or methodology being taught, for example, looping control structures.
We believe this “problem ladder” has some advantages over a single advanced problem. First it allows students to work at their own pace and naturally fall into their ZPD. Students will typically have both the experiences of successfully solving a problem and the experience of being challenged by another. This way students are encouraged by solving a problem and are also made aware that there is still more to learn. This is particularly important in CS1 classes since students typically have a diverse background regarding prior programming experience. It is important to encourage and motivate the inexperienced students while challenging the move advanced students. One important aspect of the “problem ladder” is that instructors should clearly communicate that students are not expected to solve all the problems. This will help prevent under-performing students from becoming discouraged by advanced problems.
Each problem on the “ladder” can be dynamically adjusted as well, which enables the instructor to have a fine-grained control over problem difficulty. For example, if a pair spent most of the class period solving the “easy” problem, it is often more useful for them to revise an adjusted version of the problem in the remaining time. That way they can spend their time focused on solving the problem rather than on the contextual switch to another problem. This dynamic adjustment is useful at both ends of the “ladder”. If the “easy” problem is too difficult, it can be adjusted down. Likewise, if a pair of advanced students solve all the problems in the ladder, the last problem can be adjusted to be more difficult. Returning to the example of computing prime numbers, one way to apply dynamic scaffolding to the problem is to change the requirement of producing all the primes under a limit to instead write a function that determines if a given number is prime or not. The complexity of the problem is reduced because the initial version of the problem requires two loops to solve, while the revised version only requires one. Also this provides additional structure to the problem since the goal is made more specific.
To ensure student motivation, participation in the PSS is part of the course grade. Though the requirement is not onerous, all that is required of the students is their prescience and a good-faith effort. Attendance to PSS sessions are obviously key to student learning and the requirement to put in some effort helps encourage them to climb up the problem ladder. Though, the natural progression of problem difficulty and early success provides intrinsic motivation. In practice we observed that students enjoyed solving problems and were naturally motivated generally speaking.
Author:
(1) J. Walker Orr, Electrical Engineering and Computer Science, George Fox University, Newberg, OR, 97132, USA ([email protected]).