With collaborative learning, students work together on a formal learning activity. This is distinct from projects where students “divide and conquer” a task. In contrast, with collaborative learning students are engaged in intellectual talk with each other. Collaborative learning builds critical thinking and problem solving, and if it is well-structured, it can help grow a more inclusive student community by helping students develop communication and teamwork skills, and an appreciation of diversity. Some examples of collaborative learning include Pair Programming, Peer Instruction, and Process Oriented Guided Inquiry Learning (POGIL).

Some suggestions

Integrate Pair Programming. When students are first learning this technique, make sure to enforce the formal rules of pair programming to ensure that each student gets experience in both roles and to decrease the likelihood that one student dominates.

Try Peer Instruction. This is an active approach to teaching and learning that centers around conceptual questions (“ConcepTests”) posed by the instructor and responded to by students. Students first try to answer the question individually. They then discuss the question in small groups and attempt to reach consensus on the answer. Peer instruction encourages students to think critically and analytically by focusing their attention on the underlying concepts rather than the correct answer.

Use Process Oriented Guided Inquiry Learning. POGIL is an active approach to learning designed to guide students to construct their own understanding of key concepts using "explore-invent-apply" learning cycles. Working in small teams, students explore a model, invent or create their own understanding of a key concept, and then apply the concept.

Group students by level of experience with computing. Collaborative learning works best when students are grouped with others who have similar levels of experience. Students with little experience in computing can get discouraged and feel as if they don't belong--even if they are performing well--when they are in a group with others who have a lot of experience.

Don't further isolate women or minorities. When possible, don’t put women--or other students who are underrepresented in computing--one to a group.

Examples from the collection

Computational Creativity Exercise (CCE): Storytelling

In this assignment students work as a team to develop chapters of a story where the first and last sentence of the chapter is prescribed. Students first work independently developing their own chapter and then work collaboratively to identify and resolve logical inconsistencies in the chapters in order to produce a final coherent story.  This exercise will allow students to practice problem decomposition, abstraction, and evaluation, and also debugging and testing.

This exercise was developed as part of the NSF-funded Computational Creativity project at the University of Nebraska-Lincoln.

Engagement Excellence

POGIL: Search I - Text Search

This is a team-based classroom activity designed for Process-Oriented Guided Inquiry Learning (POGIL). Teams of 3-4 students work together--and offline--to explore how text searches work using the classic poem, The Blind Men and the Elephant, as the search target. Groups work through different search approaches to better understand how computers search through text.

This is part one of a two part series on POGIL Search. Part II can be found here. The attached file is the student version of the activity. Please contact the author (Clif Kussmaul, clif@kussmaul.org) for the teacher versions with solutions and additional information.

Engagement Excellence

Towers of Hanoi

In this lab, students using process oriented guided inquiry learning (POGIL) dissect a program that solves the Towers of Hanoi puzzle. Three increasingly sophisticated implementations are provided: one that hard-codes the solution, one where methods call other methods to solve simpler problem instances, and one using recursion. Learning objectives include understanding recursion and critical thinking. This lab allows students to read an existing program rather than creating one from scratch.

The author of this material was awarded a 2017 NCWIT Engagement Excellence Award for this and two other of his POGIL assignments. Learn more about the award at https://www.ncwit.org/project/ncwit-engagecsedu-engagement-excellence-awards.

Engagement Excellence

Resources

Client-Led Game/Simulation Projects' Effects on Motivation and Career Readiness

This instructor-facing submission outlines the implementation of a client-led project-based learning (PBL) model in an upper-level game and simulation development course. The project centered on developing functional AR simulations for real clients. Drawing on professional documentation through Game Design Documents (GDDs), authentic feedback cycles, and self-efficacy theory, students experienced iterative development with external stakeholders. Survey data and focus-group feedback revealed increases in student motivation, enjoyment, and self-efficacy compared to previous faculty-led iterations. The submission includes a conceptual pedagogy model (Figure 1 in the paper), adaptation pathways for different instructional contexts, and recommendations to integrate client feedback structures without formal external partners.

ACM Digital Library Entry

Teaching software testing with role-play games

Role-play activities have been used for many years to help students engage with abstract content and build understanding in a fun and collaborative way. They are particularly popular in teaching object-oriented programming and concurrency, as it is relatively straightforward for students to take on the role of objects within a software system.

Software testing is typically seen as a dry and uninteresting discipline. There are several reasons for this: it involves many abstract concepts, the process of designing and writing software tests can be quite repetitive, and students struggle to see the value of thorough testing without real-world experience. These challenges create an environment where teaching software testing is particularly challenging compared to other areas of computing. To address this, we designed role-play games with the goal of improving student learning and engagement in a software testing class.

Incluso!: Introducing Universal Design Through Play

Incluso! is a card game designed for groups of 3–5 players that introduces and explores the concept of universal design in digital products through collaborative play. Its goal is not only to educate but also to cultivate empathy, something that is often underdeveloped in students who are encountering accessible design principles for the first time. The game encourages players to consider real-world barriers that individuals with disabilities face, all within an engaging, conversation-driven format.

ACM Digital Library Entry

The Classroom Mob Programming Game

This lab helps students gain experience and proficiency with the agile practice of Mob Programming using Test-Driven Development. Mob Programming involves having an entire team working together to solve one problem at a time. By working closely together, the team shares understanding and enforces quality standards. The Classroom Mob Programming Game involves students in all the formal practices of Mob Programming within a single class or lab session.

The game uses tabletop role-playing game design patterns to produce an authentic learning experience for students. Students earn experience points by practicing the different Mob Programming roles, and new abilities are gained as they level up. This provides scaffolding for their learning: students move from simple to more nuanced practices as they gain levels. These abilities represent legitimate Mob Programming techniques, and so the learning objectives and gameplay are intrinsically linked.

ACM Digital Library Entry

Thinking Critically: Classroom Activities to Examine Ethics in Computing

There are many reasons why it is important for students to think about the ethical implications of computer science and the technology that they use and create. At the beginning of the Covid pandemic all teachers faced the sudden transition to necessary remote learning. The fast pivot to online learning required changes to existing lessons, or even creating totally new ones. Shifting to lessons about ethics proved to be a valuable substitution for lesson plans (LP) that required access to resources no longer available to students from home. Presented here are a series of lessons that could be taught in any modality that were adapted for middle and high school learners during the spring of 2020 for their science and AP CS Principles courses. Although the activities and artifacts that are described for students were originally created for online synchronous sessions, they could easily be adapted for face-to-face, online or hybrid classrooms. The subjects of these lessons focused on the ethical impacts of computing by looking at past, present, and emerging technologies.

Micro:Vote: An Introduction to Python using the BBC micro:bit

The Micro:Vote project is designed as an introduction to text- based programming through a 12-week project aimed at 11 to 13 year olds. The project is designed as a School-University partnership whose aim is to highlight the role of creativity and social impact in computing through the design of digital voting posters using the BBC micro:bit and MicroPython.

Adopting a Design Studio approach, the project scaffolds students in the creation of a physical computing voting system and informative poster, to gather responses on an issue of social importance within the community. Through the lens of Human- Computer Interaction, students investigate the role of computing in activism and learn to implement data and control structures.

ACM Digial Library Entry

Algorithm Investigator

This lab helps students gain experience and proficiency with algorithm analysis and the concept of time complexity. Students will not write code, but rather will identify mystery code based on run times for different input sizes. 

This assignment provides students with four short code segments and a program with a graphical interface. The provided program allows students to enter an input size and run one of four ‘mystery’ algorithms.  Elapsed time is displayed after each run. Students must match code segments with 'mystery' algorithms.  This requires that students plot run times for different input sizes for each 'mystery' algorithm, identify the asymptotic run time (big-O) of each code segment, then perform the matching. 

Before attempting this assignment, students need a basic understanding of algorithm analysis, equivalent to one or two lectures on the topic and the ability to read and understand code written by someone else, including loops and arrays.

Boolean Logic - Java

This classroom activity uses Process Oriented Guided Inquiry Learning (POGIL) to introduce students to Java. Students work in small teams to answer a series of questions about relational and conditional operators. The instructor facilitates interaction among teams, offers guidance and encouragement, and summarizes key concepts.

Learning Objectives:
* Evaluate boolean expressions with relational operators (<, >, <=, >=, ==, !=).
* Explain the difference between assignment (=) and equality (==) operators.
* Evaluate boolean expressions that involve comparisons with &&, ||, and !.
* Evaluate complex logic expressions based on operator precedence.

Introduction to Java

This classroom activity uses Process Oriented Guided Inquiry Learning (POGIL) to introduce students to Java. Students work in small teams to answer a series of questions about variables and assignment. The instructor facilitates interaction among teams, offers guidance and encouragement, and summarizes key concepts.

Learning Objectives:
* Identify components of the "hello world" program.
* Write Java code to declare int and double variables.
* Explain what it means to assign a value to a variable.
* Leverage the prior knowledge and experience of others.

Conditions and Logic - Python

This classroom activity uses Process Oriented Guided Inquiry Learning (POGIL) to introduce students to Python. Students work in small teams to answer a series of questions. They run examples in a Python Shell and discuss the results. The instructor facilitates interaction among teams, offers guidance and encouragement, and summarizes key concepts.

Learning Objectives:
* Evaluate boolean expressions with comparison operators (<, >, <=, >=, ==, !=).
* Explain the syntax and meaning of if/else statements and indented blocks.
* Evaluate boolean expressions that involve comparisons with and, or, and not.
* Evaluate complex logic expressions based on operator precedence.

Subscribe to Use Collaborative Learning