Web-CAT is the most widely used automated grading platform in the world, and is best known for allowing instructors to grade students based on how well they test their own code.
This tutorial introduces participants to using Web-CAT, an open-source automated grading system. Web-CAT is customizable and extensible, allowing it to support a wide variety of programming languages and assessment strategies. Web-CAT is most well-known as the system that “grades students on how well they test their own code,” with experimental evidence that it offers greater learning benefits than more traditional output-comparison grading. Participants will learn how to set up and configure assignments, manage multiple sections, and allow graders to manually grade for design.
Presentation: Automatically Grading Programming Assignments with Web-CAT (PDF, 6 pp.)
Download a single zip file containing all of the following examples, or view examples individually in your web browser.
The examples shown in the tutorial:
Example 1: DvrRecording:
Example 2: Calculator
Example 3: HelloWorld: Testing main programs, stdi/o, etc.
Example 4: PushCounter: Testing Swing GUI applications using LIFT.
roster.csv: The simple course roster used as an example.
checkstyle-None.xml and pmd-None.xml: The configuration files used to disable (turn off) Checkstyle and/or PMD static analysis checks.
loose-checkstyle.xml: An alternative Checkstyle rule configuration that is more forgiving than the default.
webcat-eclipse-submitter-1.4.3.zip: The Web-CAT submission plug-in for Eclipse.
student.jar: JUnit
support library used by Web-CAT and many universities,
including student.TestCase
,
student.GUITestCase
, LIFT, and more.
Source code for student.jar and LIFT is open-source, available from the Web-CAT project on SourceForge.
JUnit.org has more information on how to use JUnit.
Documentation for the asserts in JUnit: http://www.junit.org/apidocs/org/junit/Assert.html
Testing GUI Programs is a Prezi presentation that gives a good introduction to LIFT and how it is used.
The LIFT website provides more details on LIFT, including links to two sigcse papers, downloads, examples, and discussion forums.