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

Testing the Java Collections Framework

Students are provided a jar of a custom implementation of an ArrayList. Students write unit tests to evaluate the ArrayList to 1) learn how to work with a linear data structure and 2) practice writing unit tests. The tests may be refactored for other lab activities to evaluate the quality of student implemented linear data structures (e.g., ArrayList and LinkedList). Students work in groups of two-three. Students are expected to know how to work with Eclipse or other advanced IDE, write JUnit tests, and the basics of the Java Collections Framework.

Introduction to Pair Programming in Java using a Raspberry Pi

This is a lab activity that introduces pair programming to students while they're learning to implement, compile, and execute their first Java programs. Students use the text editor, Nano, to write the programs, then compile and execute them from the Terminal application. After completing the lab, students perform a simple assessment exercise to gauge their understanding of the transformation process from source code to executable program.

Using programming to analyze real human DNA files

This assignment introduces the concepts of bio-computation and genetics and how programming is used to help solve current-day problems in those fields. Specifically this assignment looks at skin type, type-2 diabetes, exercise and diet. It includes references to a website with a diagram showing how the genotypes for exercise and diet interrelate and students need to develop code to implement the diagram. Learning objectives include: command-line arguments, data structure (python dictionary), if-else, loops, file input, writing user-defined functions.

The author of this material was awarded a 2016 NCWIT Engagement Excellence Award for this assignment. Learn more about the award on the NCWIT awards page.

Engagement Excellence

POGIL Activities (3) on Unit Testing in Java with JUnit

This is a team-based classroom activity using Process-Oriented Guided Inquiry Learning. Teams of 3-4 students work together to learn about unit testing in general, JUnit in particular, and effective test strategies.

The attached files are the student's versions of the activities. Please contact the author for the teacher's versions with solutions and additional information.

POGIL Activity on HTML 2: Documents and Links

This is a team-based classroom activity using Process-Oriented Guided Inquiry Learning (POGIL). Teams of 3-4 students work together to learn about HTML documents and links. Part 1 of the activity focuses on markup in general, HTML markup in particular, and related issues.

The attached file is the student's version of the activity. Please contact the author for the teacher's version with solutions and additional information.

POGIL Activity on HTML 1: Markup

This is a team-based classroom activity using Process-Oriented Guided Inquiry Learning (POGIL). Teams of 3-4 students work together to learn about markup in general, HTML markup in particular, and related issues. Part 2 of the activity focuses on HTML documents and links.

Conversions/Complex Tip Functions

In this assignment, students use Pair Programming to compose a collection of functions and a tip calculator. Using Python, students create three functions and a program that calculates the tip for a bill.

Searching in Hi-Lo - CS1 First Day on Algorithm Design & Analysis

This is a team-based classroom activity using Process-Oriented Guided Inquiry Learning. I use this the first day of CS1, and sometimes the first week of CS2 (depending on students). Teams of 3-4 students work together to identify and evaluate several strategies (algorithms) to solve a Hi-Lo number guessing game. In doing so, they learn about tradeoffs between difficulty and efficiency, and are introduced to complexity analysis, although the activity does not use O() notation.

POGIL Activity on Recursion

This POGIL activity is intended as an in-class activity for a CS 1 course (Java), potentially replacing a lecture, lab, or recitation section. The activity introduces students to recursion. It also introduces students to the POGIL roles and requires students to reflect on their collaboration. Students should be familiar with writing methods, making method calls, and writing if-statements and loops. Students should understand factorials and summations. (If not, additional math explanations should replace the summation sign.)

POGIL Activity on Java Operators (% and /)

This POGIL activity is intended as an in-class activity for a CS 1 course (Java), potentially replacing a lecture, lab, or recitation section. The activity introduces students to the Java operators % and /, and the difference between integer and floating-point division. It also introduces students to the POGIL roles and requires students to reflect on their collaboration.  This activity may be given on the first day of class in CS 1 (no Java experience necessary).

Model 1 was authored by Mark Morehouse; Models 2, 3 and 4 was authored by Helen Hu.

Subscribe to Use Collaborative Learning