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

Structs, pointers to structs, reading from files, arrays of structs

This lab has two main parts. In the first part (Steps 1 through 5), students use test-driven development to finish three programs that the students will use to practice storing and manipulating data in structs and arrays, as well as general debugging. In the second part (Steps 6 through 9), students extend a program that reads in airport data from a file, and reports to the user the easternmost airport. Students add code to the program to determine the westernmost, southernmost and northernmost airports in the United States.

You Won't Find Me There

In this project, student's explore the technological side of mail forwarding, by writing a program that determines whether individual pieces of mail should be forwarded and, if so, the address to which they should be forwarded. Along the way, student's gain experience implementing their own data structure called a singly-linked list. This assignment is excellent for students that want additional exposure to an intuitive example of fundamental data structures, or more practice implementing classes.

Engagement Excellence

Perfect Candidate

In this project students explore the design and implementation of software for a highly simplified voting machine that allows users to cast votes for one race (say, Mayor of Simpleton) and counts the number of votes for each candidate. Additionally, students work in pairs to scan input from a file, maintain data in an array structure, and output data in a particular format. This activity is good for students that would benefit from practice with using basic data structures to keep track of information.

Engagement Excellence

Functions

In this lab students are encouraged to work collaboratively to create various functions. This activity requires students to create functions that performs various calculations on entered values. The first function calculates molecular weight of hydrogen, carbon, and oxygen; the second calculates body-mass index (bmi); and the third the Collatz conjecture. This lab is ideal for students looking for more practice creating functions.

Caesar Cipher-Strings, Conditionals, Loops

In this lab students collaborate on the creation of a Caesar cipher in Python. This lab covers the concept of a rotation (Caesar) cipher, including encoding and decoding strings of text. This lab is ideal for students looking to practice working with strings, functions, conditionals, and loops in the context of encryption/decryption.

Strings

In this lab students collaborate using Pair Programming to explore strings in Python. Using iteration, students create a program that loops through strings and produces one of a couple different outputs. Students are required to work together on this lab and the instructor recommends periodic performance checks to ensure that adequate progress is being made by both students. This lab is ideal for students looking to get additional practice working with strings and collaborating on program development and analysis through Pair Programming.

Stars and Triangles

In this lab (Lab 5) students collaborate using Pair Programming to explore looping and conditionals in Python. Using loops (e.g. 'while) and conditionals ('if/else'), students complete a series of activities that involve creating ASCII art and formatted output.

Exploring Repetition

In this lab students collaborate using Pair Programming to explore looping (iteration) in Python. Using various loop structures, such as 'while' and 'for', students must complete a series of tasks that illustrate the use of iteration. Frequent use of guiding questions helps students to both explore these ideas together and to discuss how the looping structures can best be used to complete the task. These activities are ideal for students interested in gaining experience with implementing and evaluating loops, as well as those who are looking for an example of how to implement Pair Programming in a CS1 lab section.

Engagement Excellence
Subscribe to Use Collaborative Learning