CodeCheck®

Codecheck is an anonymous, author-friendly autograder. It is optimized for simple programming assignments that provide practice and build confidence.

Why CodeCheck?

  1. You don't need to register for authoring questions. Your students don't need to register for participating. Nobody needs to ask anyone for permission.
  2. Authoring a programming problem is delightfully simple. Provide a solution. Use comments to mark the parts that your students should fill in. Use comments to indicate test inputs. Upload and distribute a URL. View user guide Upload a problem

Make assignments with multiple problems. You can mix programming problems and activities from my Big Java/Big C++/Python for Everyone books. View user guide Create an assignment

Use CodeCheck as an LTI app inside your Learning Management System. View user guide

Try It Out

Check out this example. If your report looks like this, keep on trying until all test cases pass.

Test Banks for Java, Python, C++

Frequently Asked Questions

What browser should my students use?
Firefox or Chrome.
How do I register?
You don’t.
How do my students register?
They don’t.
Do I need to adopt one of your textbooks in order to use this service?
No.
Can I group multiple problems into a single assignment so that I don't have to give students a separate URL for each problem?
Yes. Use the assignment feature.
Can I put CodeCheck problems into a learning management system (LMS) such as Canvas, Moodle, or Blackboard?
Yes. Follow the LTI instructions to install CodeCheck as an LTI tool into your LMS. Then simply provide the problem or assignment URL as the “launch URL”.
How do students submit their solutions for grading?
If you assign an individual programming problem, tell your students to click on the Download button to get a signed zip file. Give them instructions on how to submit the file to you (by email, by submitting it into your learning management system, carrier pigeon, whatever).

If you use the assignments feature, visit the assignment page with your private URL.

If you use CodeCheck as an LTI tool inside your learning management system, you can browse student work by visiting the assignment as an instructor.

How do I know that a student didn’t tamper with the signed zip file?
Run jarsigner -verify Submission.signed.zip. You should get a message jar verified.
Can I write my own programming problems?
Sure. Follow these simple authoring guidelines.
Can I edit problems or assignments that I wrote?
Yes, provided you made a note of the private URL. The private URL allows you (or anyone else who has it) to edit the programming problem or assignment. Clearly, you don't want to share it with your students.
Why don't you just use logins with email addresses and passwords like everyone else?
If I did, your university might not allow you to use the service. They might (somewhat reasonably) argue that one individual can't possibly put together a hack-proof regulation-compliant site that adequately protects private information.
What is the cost of this service?
There is no charge for students or instructors at public or non-profit institutions. If you want to use the service for another purpose, whether commercial or not, contact me.
Under what warranty is this service offered?
Under the “you are lucky if it does anything” warranty. More explicitly, the legal department wants you to know the following: THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
Can I post my solutions to the problems on this site so that other students don't have to do the work?
The problems on this site (including the problem statements, starter code, titles, IDs, and arrangement) are copyrighted, and you may not publish any of those. You can, of course, publish your own solutions (without the problem statements, starter code, titles, IDs, or arrangement). But will it make you look responsible and employable?
I have suggestions for improvement. Whom should I contact?
Send an email to Cay Horstmann (cay@horstmann.com).

Privacy Statement

CodeCheck collects the following data:

The data is used to display assignments to students, to collect submissions from students, and to display submissions to instructors. Instructors can see submissions for the assignments that they create.

Assignments are stored indefinitely. Submissions may be periodically removed.

The data is stored in virtual machines and databases of commercial cloud providers. There is a risk of that data to become public. You should not include any private information in anything that CodeCheck stores, other than the IDs and keys generated by CodeCheck. In particular, do not provide your name, college ID, email address, or any password.

Log files may contain IP addresses from browser requests. Log files are stored for a few days and may be analyzed to fix problems with the service.

CodeCheck uses browser cookies to manage session state, and to store the “CodeCheck ID” and the “edit key”. You can use the site without any cookies, but then you need to manually provide the CodeCheck ID and edit key for all submissions.

CodeCheck does not use third-party cookies. CodeCheck does not send any data to third parties except to learning management systems when chosen by instructors.

To exercise your “right to be forgotten”, send an email to cay@horstmann.com with the private URL of the assignment, programming problem, or submission that you wish to have removed.

Acknowledgments

Thanks to Sunita Rajain and Tyler Wasniowski from San José State University for developing a predecessor to the assignments feature.

Thanks to Chaz Chang from San José State University for implementing the “edit URL” feature that enables instructors to edit problems. Previously, an instructor had to make a new problem to fix any issues with a problem.

Thanks to Greta Yu from Evergreen Valley High School for implementing multiple editable areas. In older versions of CodeCheck, the entire code was in a single text area and it was not possible to protect code from being edited.

Thanks to Anthony Trinh and Hien Vu from San José State University for providing text areas for inputting and editing problems. Previously, it was only possible to upload a zip file.