Web-CAT: the Web-based Center for Automated Testing

Automatic grading using student-written tests.
Awesome tools and research for CS educators.

Welcome to the Web-CAT Community

This web site is the home of Web-CAT, and a number of related CS education tools and projects. Instructors, students, and developers of these educational tools use this site to communicate with each other, get support, and exchange ideas.

Our Other Educational Tools


CodeWorkout is a free, open-source web solution for practicing small programming problems. It can be used for homework, for free practice, and even for exams or quizzes. Exercises provide customized, immediate feedback to support learning.

Growth Mindset Feedback

When students believe they can get smarter, they understand that effort makes them stronger--that's a growth mindset. Such a belief is linked to more positive academic outcomes. We are actively researching ways to automated assignment provide feedback that promote growth mindset beliefs and to foster a more positive student experience.


The Programming Exercise Markup Language (PEML) is a simple, easy format for CS and IT instructors of all kinds (college, community college, high school, whatever) to describe programming assignments and activities. We want it to be so easy (and obvious) to use that instructors won't see it as a technological or notational barrier to expressing their assignments.


The SPLICE project (Standards, Protocols, and Learning Infrastructure for Computing Education) supports the CS Education community by supplying documentation and infrastructure to help with adopting shared standards, protocols, and tools. The project promotes development and broader reuse of innovative learning content that is instrumented for rich data collection.


A powerful, student-friendly library that supports writing unit tests for Java applications with graphical (Swing-based) user interfaces.


A browser-based Python programming environment built to support both student assignments and live, in-class demonstration activities.


The Simple Open Framework for Inventive Android applications (SOFIA) is a library/API that supports simple, clean designs for Android applications, and that makes it easier to bring Android projects into the classroom at all levels, including CS1 and CS2.


The CxxTest plug-in for Eclipse provides Eclipse users who are developing C++ code with a graphical user interface for CxxTest. CxxTest is a unit-testing framework for C++ development that behaves similarly to Eclipse's native support for JUnit. This plug-in provides better integration with Eclipse and the CDT.


Dereferee is a C++ template library intended for introductory C++ students learning about manual memory management and pointers. It provides a pointer template class that is instrumented to give detailed diagnostics about memory leaks, pointer-related errors, and other unwise behavior.

Community Powered Innovation

Participate: Join our community! Learn more about our educational projects. Use the main menu to find downloads, use our GitHub issue trackers to report bugs or request new features, or communicate with others through our forums for each project.

100% Free

All of our tools are free to use under the AGPL or other open source licenses. All source code is available on GitHub under our organization account: https://github.com/web-cat. Clone our work, fork it, customize it, and send us improvements!