Websheets is a system for creating and solving programming exercises. Try out the following Websheet by filling in the blanks. After solving it or making three incorrect submissions, you can see the author's solution.

Components of the Websheets System

Students can use the problem-solving interface to start practicing their Java and C++ skills. A list of all Websheet problems is also available.

Exercise Authors can use the editor to create and edit Websheet problems. There is an author's manual.

Teachers can see their students' grades on the grades page once the students grant them permission to see the grades on the settings page.

Hackers and Administrators can read the installation guide and source code of the system, which is open-source, and see a simple example of embedding websheets in webpages.


Websheets has been developed since 2013 by David Pritchard, supported by Princeton University, the University of Southern California, and the University of Waterloo. It has been used by over 1000 students.

Please send any positive feedback, bug reports, or feature requests by email to daveagp@gmail.com. We are also looking to measure the effects of different types of scaffolded exercises in the classroom.

We welcome any sort of code contributions: new language support, new features, interface improvements, etc. It is easiest to incorporate work proposed as a GitHub pull request.

Websheets was presented at the conference ITiCSE 2015 (Pritchard, David. Websheets: A Templated Online Coding Exercise System, Proc. 15th ITiCSE, p.335, 2015). Here are the slides.

The source code is provided under a GPL Affero License. Exercises are available under a Creative Commons License.

Authentication Informatio

Websheets uses secure third-party authentication. So students need an account on Google, Facebook, or GitHub; they log in via that provider. Websheets will never know what their password is.

If you install Websheets on your own server, you can replace this with any other HybridAuth provider including OpenID, or any other PHP authentication mechanism (see the README). Upon request we can add other HybridAuth providers to our hosted mirror on the University of Waterloo's server.

Students grant a teacher the permission to look at their grades by visiting the settings page. Alternatively, if you run your own Websheets mirror, you can access all of the grades.