The Web-CAT Cookbook shows how to use Web-CAT as an automated grading tool. It is intended to be a living, community-maintained document where people can come to learn (and teach others) how to set up and run programming assignments using Web-CAT. Common scenarios and problem solutions in using Web-CAT are documented in the form of short use case "recipes".
A secondary aim of the Cookbook is to further the adoption of Web-CAT. To that end we want to allow the possibility of a publishable book. The ContributorAgreement statement for this book is the most important consideration for publication. It is designed to allow free access to the content of the Cookbook while protecting the investmest a publisher may make in a compilation of material from the Cookbook. If you are going to contribute to the Cookbook you must agree to the ContributorAgreement statement.
Given the current lack of practical documentation on how to write "testable" programming assignments, and lack of documentation on pedagogical strategies for using automated graders for feedback and learning, we also aim for the Cookbook to cover these areas as well.
The Cookbook is a living, collaborative, community-maintained document and contributions are actively sought from all users of Web-CAT. See the Author Guide at the bottom of this page for instructions on how you can contribute. It's structure (and Author Guide) are based on the Schematics Cookbook, another wiki-based documentation project. This basic organization has been reused under the terms of the LGPL, which also governs community contributions to the Web-CAT Cookbook.
Look for the movies in the recipes below if you want a quick video tour of what Web-CAT is like, starting with the SubmissionWalkthrough (24Mb, 5min).
Basic Concepts
TryOutWebCat (with usage instructions)
Sigcse2009Workshop: self-paced, on-line, quick-start training for new instructors (a detailed outline is available lower on this page)
Recipes for Students
Movie: SubmissionWalkthrough (24Mb, 5min)
Recipes for Graders
Movie: GradingWalkthrough
Recipes for Instructors
Self-paced On-line Training Materials
Sigcse2009Workshop: Automatically Grading Programming Assignments with Web-CAT
- The workshop wiki page contains electronic copies of the workshop materials in a form that you can try on your own, either on your own Web-CAT server, or with a guest account on the server at Virginia Tech. The workshop's hands-on materials include:
Preliminaries: Setting up your environment
Before you try the hands-on exercises, be sure you have Eclipse installed. Web-CAT does not require Eclipse, but the hands-on exercises here are written for that IDE to simplify the instructions. The preliminary setup instructions also explain how to install our submission plug-in for eclipse.
Exercise 1: Creating JUnit Test Cases with Eclipse
- This exercise will give you a bit of practice writing simple test cases with JUnit, if you have not already used that testing framework. It also explains how to run those tests within Eclipse and interpret the results.
Exercise 2: Setting up your first assignment
- The second exercise walks you through the following activities:
- Creating your first course offering
- Uploading your course roster as a CSV file
- Creating your first assignment
- Submitting a sample solution to try out your assignment
More resources for various practice assignments are also available under the TryOutWebCat/UsageInstructions.
- The second exercise walks you through the following activities:
Exercise 3: Changing assignment grading options
The third exercise is all about customizing the behavior of grading plug-ins, using the JavaTddPlugin as an example. It walks you through the following activities:
- Configuring an assignment without test cases
- Modifying an assignment so students are not required to write tests
- Changing code coverage requirements
- Providing "hints" to students when instructor tests fail
- Hand-grading key parts of students submissions
Exercise 4: Configuring coding style checks
- The fourth exercise walks you through the following activities:
- Adding instructor-provided data files to an assignment
- Regrading student submissions when they need to be reprocessed
- A brief overview of how static analysis works
- How to provide custom PMD checks (including turning them off)
- How to provide custom Checkstyle checks (including turning them off)
- The fourth exercise walks you through the following activities:
- The workshop wiki page contains electronic copies of the workshop materials in a form that you can try on your own, either on your own Web-CAT server, or with a guest account on the server at Virginia Tech. The workshop's hands-on materials include:
Bite-sized Recipes for Instructors
- Setting Up A Course Offering
- Setting Up An Assignment
- Advanced Features
Configuring the Java TDD Grading Plug-in
- Reference materials:
- Recipes:
Configuring the C++ TDD Grading Plug-in
- Reference materials:
- Recipes:
- recipes on the way
Configuring the C++ Stdio Grading Plug-in
- Reference materials:
- Recipes:
- recipes on the way
Configuring the Pascal Compiler Plug-in
- Reference materials:
- Recipes:
- recipes on the way
Configuring the Text TDD Plug-in
- Reference materials:
- Recipes:
- recipes on the way
Configuring the Generic TDD Feedback Plug-in
- Reference materials:
- Recipes:
- recipes on the way
Configuring the Output Comparison Plug-in
- Reference materials:
- Recipes:
- recipes on the way
Configuring the DrScheme TDD Plug-in
- Reference materials:
- Recipes:
- recipes on the way
Configuring the Prolog TDD Plug-in
- Reference materials:
- Recipes:
- recipes on the way
Recipes for Administrators
- Installation and Setup
Movie: InstallationWalkthrough (29Mb, 7min)
- Configuring Web-CAT
- Managing Courses
- Managing Users
- more recipes on the way
Information for Developers
DevelopmentPriorities capture current plans for fixes and enhancements
Recipes for Plug-in Writers
Edit conflict - other version:
Edit conflict - your version:
End of edit conflict
- more recipes on the way
Web-CAT Internals
Teaching Strategies
Writing Testable Assignments
- recipes on the way
Using Web-CAT to Improve Learning
- recipes on the way
Author Guide
Requested Recipes
- Add your requests for new recipes here