For my Digital Learning Environments Community Engagement project, I chose to develop a workshop on Pair Programming in K-8 classrooms. I picked this topic because I am excited by the research behind pair programming and its potential for making students, and in particular girls, feel more engaged and confident in computer science classes.
Pair programming – when two students work together on the same device to write code – is a practical tool for teaching computer science and also offers a valuable opportunity for social-emotional learning. In pair programming, the “driver” controls the mouse and keyboard and writes the actual code while the “navigator” checks the logic of the program and watches for errors. Roles are traded every few minutes.
Some of the benefits of pair programming include:
- Students try to answer each other’s questions before asking their teacher for help
- Students learn to negotiate, collaborate, and communicate in the course of building their code
- Students think and learn more deeply by explaining their thought processes to each other
The 2-hour workshop will include a presentation and active learning segments.
1. Presentation – Research & Best Practices
I will present what pair programming is, what some of the research says about it, and how it can best be implemented. As part of my presentation I’ll be showing two videos, one from Code.org that models pair programming for young students, and another by Colleen Lewis, an associate professor of Computer Science at Harvey Mudd College who has studied pair programming and has developed a list of helpful tips and procedures.
2. Active Learning & Discussion
After the presentation on research and best practices, participants will self-rate (Figure 1) their Scratch experience and split into Novice, Competent and Expert groups. They will then find partners within their experience level group (as recommended by the research) and work together to program a conversation between two sprites in Scratch. While programming they will switch every 5 minutes between the Driver and Navigator roles.
Participants will be encouraged to program according to their experience level. Experienced Scratch users can employ more sophisticated tools and effects in their programs. For beginners, it’s ok if they only get a few lines of a conversation coded. The important thing is to experience the process of pair programming and see how it affects the quality of their coding experience.
After 30 minutes of programming we will meet as a group, participants will share some of their work, discuss what they observed about pair programming, then pair-off again to “buddy program” a new Scratch assignment together. Buddy programming is when partners each write code on their own computer, but stop every 5 minutes to discuss any problems or observations. After another 30 minutes we will get together, share our work, then compare pair and buddy programming and any final thoughts.
If my proposal is accepted, I look forward to working with several of my DEL cohort members who have graciously offered to help run the workshop.
Participants will use a number of digital tools during the session, including a Google Forms survey shown in Figure 1. to rate their Scratch experience and current use of pair programming in their classrooms.
Attendees can use online Scratch tutorials (Figure 2) if they don’t know how to complete the Scratch assignments on their own. Instructions and links to access the tutorials will be provided in a Workshop Links Document.
I will make my slides and resource documents available online. I’ve tried to make my presentation and materials accessible by using closed-captioned videos and adding alt-text to the images used in my presentation and in the supporting documents.
My plan is to submit a proposal to the NCCE conference that takes place in Seattle next March. My goal for this workshop is to create a fun, supportive, and collaborative environment for teachers to experiment with Scratch while learning best practices surrounding pair programming in their classroom. I am excited by the power of pair programming and look forward to sharing that excitement and the learning I have gained through my work in this course. Even if my proposal is not accepted, I will have gained invaluable knowledge that I can apply in my own classrooms.