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 Contributor Agreement 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 Contributor Agreement statement.
This cookbook is written in the form of a website hosted on GitHub Pages. To ask questions or make comments on any page, use the comment box at the bottom of that page. To add new pages, write your own recipes, or contribute other content, please fork the repository, add your page(s) and link them in, and create a pull request. For major concerns, such as suggesting revisions to the overall site navigation, open an issue on GitHub.
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, a 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 in the recipes below if you want a quick video tour of what Web-CAT is like, starting with the Submission Walkthrough (24Mb, 5min). Pages marked with do not exist yet–so contribute!
Basic Concepts
- What Is Web Cat?
- Courses And Course Offerings
- Assignments And Assignment Offerings
- Role Based Permissions
-
Web Cat Faq
- Try Out Web Cat (with usage instructions)
- SIGCSE 2009 Workshop: self-paced, on-line, quick-start training for new instructors (a detailed outline is available lower on this page)
- Web Cat Features (and Web Cat Change History)
- LTI Configuration
- Our Publications
Recipes for Students
- Login To Web Cat
- Change Your Password
-
Submit An Assignment
- Submission Walkthrough (24Mb, 5min)
- Submit Using Bluej
- Submit Using Eclipse
- Interpret Your Feedback Report
- Look Up Assignment Results
- Look Up An Old Submission
- View Graphs Of Your Results
- Download What You Submitted
Recipes for Graders
- Grading Walkthrough
- Manually Grade a Student Submission
- Override Late Penalties
- Give Extra Credit
- Regrade One Student
Recipes for Instructors
Self-paced On-line Training Materials
-
SIGCSE 2009 Workshop: Automatically Grading Programming Assignments with Web-CAT
The workshop 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 Try Out Web Cat/Usage Instructions.
-
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)
-
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:
Configuring the C++ Stdio Grading Plug-in
- Reference materials:
Configuring the Pascal Compiler Plug-in
- Reference materials:
Configuring the Text TDD Plug-in
- Reference materials:
Configuring the Generic TDD Feedback Plug-in
- Reference materials:
Configuring the Output Comparison Plug-in
- Reference materials:
Recipes for Administrators
- Installation and Setup
- Configuring Web-CAT
- Managing Courses
- Managing Users
- Install a New Plugin
- Set Plugin Global Properties
- Update Bootstrap Jar
Information for Developers
- Development Priorities capture current plans for fixes and enhancements
Recipes for Plug-in Writers
- Writea Plugin
- Define Plugin Parameters
- Simple Plugin Example
- Install a New Plugin
- Set Plugin Global Properties
- Edit Plugin Files Online
Web-CAT Internals
Teaching Strategies
Writing Testable Assignments
- recipes on the way
Using Web-CAT to Improve Learning
- recipes on the way
Author Guide
- Contributor Agreement
- Becoming An Author
- Creating Recipes
- Editing Existing Text
- Including Source Code
- You Have Permission
Requested Recipes
- Add your requests for new recipes here