Collaborative Coding Made Simple: A Guide to Group and Paired Programming with zyBooks

Teaching programming is challenging enough without the added complexity of managing group work. But collaborative coding is essential—it mirrors real-world development practices and helps students learn from each other. The good news? zyBooks has introduced a powerful feature in zyLabs that makes collaborative coding as seamless as individual work.

What is Group Programming in zyLabs?

The group programming feature allows students to code together in real-time while sharing a single grade. Whether you’re facilitating pair programming during lectures or assigning larger team projects, this feature creates a shared coding environment where every keystroke, test run, and submission is visible to all group members.

Key Features at a Glance

  • Real-time collaboration: Students see each other’s code changes instantly
  • Shared grading: All group members receive the same grade
  • Flexible group management: Create random groups or copy groups across sections
  • Complete visibility: Instructors can view keystroke-by-keystroke history
  • Outlier detection: Behavior insights flag concerning patterns like excessive pasting

Setting Up Group Work: The Instructor Experience

Getting started with group programming is straightforward. Here’s how it works:

1. Enable the Feature

Navigate to any lab section with Advanced zyLabs and click the gear icon (beta feature) at the top. Check the box for “Students will code together and share their grade.”

2. Assign Students to Groups

You have two options:

  • Random groups: Specify group size (pairs, triads, etc.) and let the system assign students randomly
  • Copy from another section: Maintain consistent groups across multiple labs by copying your existing configuration

The interface displays students in a spreadsheet-like view where you can easily:

  • See which group each student belongs to
  • Move students between groups with a dropdown menu
  • Create new groups as needed
  • Filter by specific groups or search for individual students

Pro tip: Students who join late will be placed in individual workspaces by default, but you can add them to existing groups at any time—their work will carry over.

3. Manage Groups Throughout the Semester

Once you’ve configured groups for one lab, you can copy that structure to subsequent labs with a single click. This makes maintaining consistent groups across an entire course incredibly efficient.

The Student Experience: Working Together Seamlessly

From the student perspective, group programming feels natural and intuitive:

Real-Time Collaboration

When students open a group lab, they immediately see their group members’ names at the top of the workspace. As anyone in the group types, all members see the changes appear in real-time—just like using Google Docs, but for code.

Shared Console and Testing

The collaborative experience extends beyond just the code editor:

  • When one student runs the program, all group members see the output
  • Anyone can input values into the console during program execution
  • Submit buttons sync across all group members
  • Grade updates appear simultaneously for everyone

No Built-In Chat Required

While the IDE doesn’t include video conferencing or chat features, students can communicate through:

  • Their existing communication tools (Zoom, Google Meet, etc. for remote work)
  • Face-to-face conversation (for in-person labs)
  • Comments in the code itself, which all group members can see

Instructor Insights: Monitoring Group Activity

The real power of group programming becomes apparent when you examine the instructor tools.

Group Activity Dashboard

Instead of the standard “Student Activity” view, group-enabled labs display a “Group Activity” dashboard where you can:

  • See all groups and their members at a glance
  • View each group’s final code submission
  • Access real-time workspaces to watch students code together
  • Review complete coding histories

Keystroke-by-Keystroke History

Perhaps the most valuable feature for instructors is the detailed playback history. Click the “History” button for any group to see:

  • Every character typed or deleted
  • Who contributed each change (color-coded by student)
  • Paste events (shown as large blocks of inserted text)
  • The exact timeline of the coding session

This transparency helps you:

  • Assess individual contributions within group work
  • Identify students who may be struggling or disengaged
  • Detect potential academic integrity issues
  • Provide targeted feedback on collaboration skills

Group Behavior Insights

The automated Behavior Insights tool analyzes all groups and flags outliers based on:

  • Pasted code percentage: How much code was pasted vs. typed
  • Time spent: Groups spending unusually long or short times
  • Number of submissions: Excessive or minimal testing
  • Explorer runs: How often students test their code

For example, if a group pasted 75% of their solution, the system flags this as an outlier. You can then review their history to determine whether they:

  • Pasted a solution and submitted it without understanding
  • Pasted the initial code, but modified and learned from it
  • Used legitimate resources appropriately

The tool distinguishes between code pasted before submission versus at submission, giving you nuanced insights into student behavior.

Grading Group Work

Group labs support both automated and manual grading:

Automated Testing

Standard output tests and unit tests work exactly as they do for individual labs. All group members receive the same automated score.

Manual Grading

Add rubric items that appear below the student workspace. When you manually grade a group’s work, all members receive the same score. While you can’t assign different grades to different group members within zyBooks, you can:

  • Use the playback history to inform grade adjustments in your LMS
  • Provide individual feedback based on contribution levels
  • Export grade data for custom weighting

Best Practices and Use Cases

Pair Programming During Lectures

Create zero-point lab sections specifically for in-class activities:

  1. Add a new section to your zyBook
  2. Include an Advanced zyLab without any test cases
  3. Enable group work and assign pairs
  4. Use access controls to set availability windows or passcodes

Students can work together during class without the pressure of grades, and you can live-code demonstrations that all students see in real-time.

Team Projects

For larger coding assignments:

  • Use groups of 3-5 students
  • Add manual grading rubrics for project requirements
  • Combine automated tests with manual evaluation
  • Review contribution histories before finalizing grades

Flipped Classroom Activities

Set up collaborative labs with:

  • Availability windows: Labs only accessible during scheduled times
  • Duration limits: Simulate exam conditions with time constraints
  • Passcodes: Control when students can begin working

Technical Considerations

IDE Options

While group work functions in multiple IDEs, the Coding Rooms IDE is specifically recommended for collaboration because it’s built with real-time collaboration features. Other supported options include:

  • Visual Studio Code
  • Jupyter Notebook
  • IntelliJ (for Java)
  • PyCharm (for Python, coming soon)

Understanding the Metrics

Paste detection: The system tracks text insertion events. This includes:

  • Traditional copy-paste operations
  • Autocomplete suggestions (like IntelliSense)
  • Code completion features

Keep this in mind when evaluating the pasted code percentage—some “pastes” are legitimate IDE features rather than copied solutions.

Getting Started

Group and pair programming in Advanced zyLabs is currently available as a beta feature in programming zyBooks. To enable it:

  1. Ensure your course uses Advanced zyLabs (available in most programming textbooks)
  2. Look for the gear icon at the top of the lab sections
  3. Check the beta features option for group work
  4. Consult the zyBooks Help Center for detailed setup guides

The Bottom Line

Collaborative coding doesn’t have to be complicated. With group and pair programming in Advanced zyLabs, you get:

  • Easy setup: Random assignment or custom groups in minutes
  • Real-time collaboration: Students code together seamlessly
  • Complete transparency: See exactly who contributed what
  • Automated insights: Flag potential issues without manual review
  • Flexible grading: Combine automated tests with manual evaluation

Whether you’re introducing pair programming for the first time or managing complex team projects, this feature brings collaborative coding into the modern classroom with all the visibility and control instructors need.

View the recent webinar for more information with Senior Product Developer Joe Mazzone. 


Ready to try group programming in your course? Visit the zyLabs User Guide or contact your account manager today.