Custom auto-grading in zyLabs

Output tests
  • Decide if tests will grade student use of case or whitespace.
  • Compare exact output or use “starts with”, “ends with”, or “contains” .
  • Control which parts of the test students see .
  • Write your own regular expression.
Unit tests

zyLabs have an easy-to-use unit test built in, as well as a variety of standard unit test frameworks, including:

  • zyLabs have an easy-to-use unit test built in, as well as a variety of statdard unit test frameworks, including:
  • J Unit testing
  • Python unit testing
  • Gtest (Google Test)
Manual Grading

Manual grading allows instructors to add or deduct points based on specific criteria. 

  • Create cases to add points or deduct points.
  • Manual grading shows at the bottom of the student work.

.

Custom bash and shell scripts
  • Create custom feedback.
  • Give partial credit.
  • Detect and grade more advanced elements of code, such as memory leaks.

Customizing zyLabs

AI Hints ( NEW! Beta Fall 2025)

Instructors control this feature in each lab.

  • AI hints provide nudges to help students process their errors better.
  • Hints are provided on failing tests when students submit for grading
Cloning zyBooks maintained Labs

You can clone and customize any zyBooks maintained lab in your book. You can change:

  • The title
  • Instructions
  • Template/boilerplate code
  • Auto-grading
  • Other settings
Choosing different languages and IDEs

You can select from more than 50 languages and several standard IDEs including:

  • VS Code
  • Jupyter Notebook
  • IntilliJ
  • R Studio
Pair/Group programming

Pair/group programming in zyLabs allows for collaborative learning and project work. Instructors can:

  • Set up with any advanced zyLab, including your own custom labs 
  • View each student’s contribution and the history of the project.
  • Change student groups
Paste limits
  • In the settings of the lab, you can limit how many characters are pasted.

Academic Integrity/Reporting Tools

Code playback
  • See how student code evolves character-by-character.
  • Find large paste and delete events. 
Student behavior insights
  • View a dashboard of averages of student behavior metrics.
  • Flag outlier students for time, pasted code, and number of submissions.
  • Quickly go to student code and see their code history, character by character.
Similarity detection
  • Detect students with similar code.
  • Change the threshold for detection. 
  • Export code for your records.
Student Activity

The student activity section provides a quick visual of student coding efforts with our coding trail, along with the ability to see their exact work from any point of the development process.

  • Time spent on the lab 
  • “Explore” runs 
  • Each submission for grading 
  • Dates and days of the week when work was done 

Other zyBooks Tips

Using zyLabs for virtual office hours

Collaborate in real-time in the IDE with students

Comment on student work

View student code, character-for-character, including past efforts

Creating a sandbox for in-class practice

Creating a sandbox provides a non-graded space for students to practice coding. Instructors can: 

  • Create a non-graded space for students to practice in class or lab 
  • Add a piece of template code, or leave the coding space blank.
  • Move sandbox spaces to any section of the zyBook.
Creating assessments with Advanced zyLabs and custom sections
  • Set duration limits
  • Set availability windows
  • Include a passcode
  • Set submission limits
  • Edit test-bench feedback to match your assessment