Cooperative Learning

Content on this page is derived from participant presentations, discussions, and breakout group notes at the 2017 and 2018 workshops, as well as cooperative learning resources from Pedagogy in Action.

Having students work cooperatively while learning about computation improves academic achievement, information retention, critical-thinking, enjoyment, teamwork, and leadership skills. Cooperative work can also help students build self-efficacy. There are many avenues for incorporating cooperative learning into courses on computation and modeling. However, effective cooperative learning requires intentionality when structuring teams and grouping students. Below are insights from faculty who have taught courses on computation and modeling that incorporate cooperative learning.

Jump down to: Structuring Effective Teams | Assessing Group Work | Resources

« Back to Teaching Computation in the Sciences

Cooperative Learning Approaches

Collaborative learning can range from low investment (simple, short, and informal) to high investment (complex, time-intensive, and formal), and span multiple types of classroom settings. There are many ways to employ cooperative learning. Below is a sample of methods and techniques discussed by workshop participants that can be applied to computational learning.


Students work collaboratively to develop strategies and perform analyses.

  • Students can work in groups to complete tasks such as writing pseudocode, writing full code, debugging, and troubleshooting.
  • Create assignments, projects, and other assessments that encourage or require collaborative problem-solving.
  • Example: The introductory activity If You Build It... by Thomas Kelley (Northeastern University) resembles a send-a-problem assignment: a small group of students writes instructions and then gives those instructions to a second group. The second group must follow the instructions and come up with a solution.

Reciprocal teaching

Students provide their peers with feedback, explanations, or alternative perspectives.

  • Use undergraduate students as peer assistants to guide other students and groups.
  • Have students peer-review each other's code.


Students communicate in pairs, as small groups, or as a class.

  • Orient students so that they are facing one another (rather than the instructor) to facilitate discussion and peer-support.
  • Example: In his activity on Principal Component Analysis, Daniel Zysman (MIT) uses a think-pair-share-like approach where students work in small groups and then come back together as a class to discuss their strategies and solutions.

Keys to Structuring Effective Teams

There are numerous pitfalls to using random or student-organized teams for group work. Varied student backgrounds, abilities, and leadership identities have the potential to result in groups that aren't effective or don't function at all. Being intentional about structuring teams is important for effective cooperative learning.

BIOE 201: Conservation Principles in Bioengineering
Click to view
At the 2017 workshop, Princess Imoukhuede (University of Illinois - Urbana-Champaign) described how she structures teams and uses collaborative projects to develop computational and leadership skills in her course, BIOE 201: Conservation Principles in Bioengineering.

Download the presentation (PowerPoint 2007 (.pptx) 21MB Oct17 17)

Tips for structuring groups:

  • Build groups around student educational backgrounds, experiences, and motivations (Layton et al., 2010; Tonso, 2006).
    • Teams made up of members with different levels of practice or commitment can result in disproportionate workloads and learning outcomes.
    • Grouping students who are similar in terms of experience, commitment, and ability can make tracking and assessment easier and reduce the potential for uneven work or learning.
  • Consider racial and gender dynamics (van Dijk et al., 2017; Natishan, Schmidt, and Mead, 2000; Rosser, 1998).
    • Teams with a single member of a particular race or gender (particularly a single woman on a team otherwise composed of men) can contribute to marginalization of that person and often result in a disproportionately high workload for that team member.
  • Keep in mind different "environmental" factors (Layton et al., 2010).
    • Do students live on campus or commute? Do team members have compatible schedules that allow for group meetings? These factors can determine whether or not a team is able to work together regardless of the effort they put in.
  • Create roles and structures within groups.
    • Roles such as "spokesperson" and "scribe" build leadership skills and give team members explicit responsibilities.
    • Rotating these roles among team members can ensure engagement of each member.
      • Each student gets some training and experience in each role to promote growth.
  • Use tools such as CATME and StrengthsQuest to enhance team-building and leadership assessment (Rosch & Imoukhuede, 2016; Loughry et al., 2014).
    • Comprehensive Assessment for Team-Member Effectiveness (CATME)
      • CATME is a system for creating and evaluating student groups. CATME allows instructors to use parameters such as GPA, commute, schedule, leadership role, and skills to build compatible teams. It also provides spaces for student self and peer evaluation, and can identify red flags or unusual ratings.
    • StrengthsQuest
      • StrengthsQuest uses personality assessment to build self-knowledge. It helps students identify their leadership strengths, areas to improve, and areas of weakness that they can delegate to team members. By building student self-knowledge, students can improve their leadership identity and motivation to lead.
    • These tools can be highly effective when used together.

Assessing Group Work

How does an instructor assess whether or not individual students have met learning goals when working in groups? A breakout group on cooperative learning at the 2019 workshop recommended the following strategies:

  • Use assignments that require different levels and styles of engagement to assess what the students are learning.
    • Don't limit assessment to whether or not the code works.
    • Ask students to describe the code in their own words.
  • Increase opportunities for self-assessment and reflection.
    • Students need to time for self-reflection in order to promote development for the student.
  • Encourage honest student evaluation of themselves and their group members.
    • Use outside expertise to help communicate this if possible.
  • Provide regular (quarterly) assessment of the group and individuals to help maintain group function and cohesion.
    • Regular feedback helps students to track group function and effort.
    • Points can be assigned individually based on performance within the group.
    • Individual ratings can help prevent social loafing in the group.
    • Provides evidence when penalizing the group for underperforming.
  • Use alternative types of final assignment.

Resources on Cooperative Learning



« Back to Teaching Computation in the Sciences