CS471: Computer Science Pedagogy - Collaboration in the CS Classroom

Activity Goals

The goals of this activity are:
  1. To design activities engage students in partnerships in healthy and equitible ways

Supplemental Reading

Feel free to visit these resources for supplemental background reading material.

The Activity

Directions

Consider the activity models and answer the questions provided. First reflect on these questions on your own briefly, before discussing and comparing your thoughts with your group. Appoint one member of your group to discuss your findings with the class, and the rest of the group should help that member prepare their response. Answer each question individually from the activity, and compare with your group to prepare for our whole-class discussion. After class, think about the questions in the reflective prompt and respond to those individually in your notebook. Report out on areas of disagreement or items for which you and your group identified alternative approaches. Write down and report out questions you encountered along the way for group discussion.

Guiding Questions

  • How might we incorporate TPS and pair-programming into a unit design in computing (and, in particular, into your lightning talk topic)?

Collaboration in the CS Classroom: Pair Programming and Think-Pair-Share

Collaboration plays a vital role in the computer science (CS) classroom as it promotes problem-solving skills, knowledge sharing, and teamwork. Two popular collaboration techniques used in CS education are pair programming and think-pair-share. We will explore these techniques, discuss their benefits, and provide examples of how they can be implemented in the CS classroom.

Pair Programming

Pair programming is a collaborative technique where two students work together on a single computer to complete a programming task. One student takes on the role of the “driver,” who writes the code, while the other student acts as the “navigator,” providing guidance and reviewing the code.

Benefits of Pair Programming

Research has shown several benefits of pair programming. According to Cockburn et al., pair programming improves code quality, as the navigator can catch errors and provide immediate feedback. It also enhances learning, as both students actively engage in problem-solving and knowledge sharing. It can also increase student satisfaction and confidence in their programming abilities.

Specifically, Cockburn, et al, raise the following key benefits of pair programming, both in school and in an industry environment: Through interviews and controlled experiments, the authors found pair programming improves design quality, reduces defects, enhances technical skills, and improves team communications, while only costing about 15% more than solo programming.

  • A controlled experiment found pair programming took about 15% more time than solo programming, but resulted in 15% fewer defects. The defect reduction saves more money than the extra development time costs.

  • Surveys showed most programmers, both professionals and students, enjoyed pair programming more than solo programming.

  • Pairs produced programs with fewer lines of code than solo programmers, indicating superior designs. Interviews supported this.

  • Pair programming provides continuous code reviews as partners look over each other’s work. This catches mistakes early and promotes learning.

  • Pairs reported solving problems faster through “pair relaying”, dividing work and sharing insights.

  • Partners teach each other constantly, enhancing learning. Statistical data confirmed students learned faster with pair programming.

  • Pair programming improves communication and teamwork. Partners learn to work together and spread system knowledge between themselves.

Think-Pair-Share

Think-pair-share is a collaborative learning technique where students first think individually about a problem or question, then discuss their thoughts with a partner, and finally share their ideas with the rest of the class. This technique encourages active participation, critical thinking, and the exchange of diverse perspectives.

Kothiyal, Murthy, and Iyer conducted a study in an introductory Computer Science course with over 300 students utilizing Think-Pair-Share (TPS). In TPS, students first work individually on an activity, then pair up and discuss their solutions, and finally share as a whole class. A quasi-experimental study compared learning gains between a TPS group and a lecture group. The TPS group scored significantly higher on a post-test. Surveys showed most students felt TPS improved their conceptual understanding and engagement. TPS provided prompt feedback to the instructor on student difficulties and allowed addressing issues even in a large class. Challenges were logistics of pairing up students and noise during pair discussions, but overall, TPS was easy to implement. The study provides evidence that active learning with TPS enhances learning compared to passive lecture, even in large CS classes.

Steps

  1. Think: In the “Think” phase, students are given a question or problem to consider individually. They are encouraged to reflect on the question and formulate their thoughts and ideas.

  2. Pair: In the “Pair” phase, students are paired with a partner to discuss their thoughts and ideas. This collaboration allows them to refine their understanding, challenge each other’s assumptions, and develop a more nuanced perspective.

  3. Share: Finally, in the “Share” phase, pairs of students share their insights with the larger class. This fosters a sense of community and allows for diverse perspectives to be heard.

Benefits of Think-Pair-Share

Several studies have shown the benefits of using think-pair-share in the CS classroom. Think-pair-share can improve students’ problem-solving abilities and critical thinking skills. It also encourages active learning, engagement, and participation.
Specific benefits include:

  • Enhanced Engagement: TPS can increase student engagement by encouraging active participation and collaboration.
  • Diverse Perspectives: By allowing students to work in pairs, TPS promotes the sharing of diverse perspectives, leading to a richer understanding of the subject matter.
  • Formative Assessment: Instructors can use the “Share” phase to gauge student understanding and identify areas where further clarification may be needed.

Example: Think-Pair-Share in Python

Consider a classroom activity where students are learning about sorting algorithms. The instructor presents a problem statement to the class and asks students to think about it individually. The problem statement could be, “Sort the given list of integers using the bubble sort algorithm.”

After allowing time for individual thinking, the instructor asks students to pair up and discuss their approaches with each other. They can share their ideas, clarify concepts, and brainstorm solutions together.

Finally, the pairs share their approaches with the rest of the class, while the instructor provides guidance and facilitates a class discussion on the different sorting algorithms and their efficiency.

Conclusion

Collaboration techniques like pair programming and think-pair-share have demonstrated numerous benefits in the CS classroom. By incorporating these techniques, educators can create an interactive and engaging environment that promotes problem-solving, knowledge sharing, and critical thinking skills. These strategies not only improve student learning outcomes but also enhance satisfaction and confidence in their abilities.

Submission

I encourage you to submit your answers to the questions (and ask your own questions!) using the Class Activity Questions discussion board. You may also respond to questions or comments made by others, or ask follow-up questions there. Answer any reflective prompt questions in the Reflective Journal section of your OneNote Classroom personal section. You can find the link to the class notebook on the syllabus.