CodeTurtle 0.2 Released
January 17th, 2009
The first project for my class is due next week, so I had to finish flushing out the minimum functionality I’ll need to grade it. This is actually how I suspect the rest of the semester will go, releasing small versions with enhancements to the checker APIs based on what I need to grade the next project in the semester.
So, first the good news. Below are the release notes with the additions in this version:
- Ability to automatically compile student projects at grade book creation time. Compiled classes will be put in the respective student’s project directory.
- Option to add a grade item for success/failure of compilation
- Option to delete existing compiled classes
- The user.dir property is now set prior to grading a project, scoping the execution of the student’s code to the project directory in which it is found.*
- Added ability to add custom notes on each grade item.
- Added grade item editor dialog for changing the awarded points, result, or notes, launched by either double-clicking or from the right-click menu (editing the awarded points directly in the table is still supported).
- Added HTML based “Summary Report” to display a high level overview of how points were accumulated, detail on any failed test cases, and all additional comments. The goal behind this initial implementation is a report to print and distribute to the student.**
* The user.dir in particular is to support the reading/writing of files done in my first project of the semester.
** The existing plain-text report is still available, however only the HTML report will be saved to the student’s directory. In the future I hope to add more flexibility around selecting which reports to generate, print, and save.
Additionally, the project checker APIs were enhanced to support the following.
- Added: Utility (checkFileExists) to check that a file was included in the submission.
- Added: Utility (findFile) to locate a file inside of the student’s project directory.
- Added: Utility (checkManual) for adding a manually graded item.
- Added: Utility (classExists) to return whether or not a class exists in the project.
- Changed: signature of “findClass” to return the class object.
It’s quite a bit more than I expected to get done by the start of the semester, which I’m pretty happy with. Alas, there are still many things I want to do. Printing remains my white whale as I just don’t feel like dealing with getting it set up. This version will save an HTML report to each student directory, so for now I’m content opening them individually and printing them. I also took some steps towards saving/loading grade books, but ran into an issue since URLClassLoader isn’t serializable. I know how to get around it — it should be as simple as implementing a custom serialization with Externalizable — I just didn’t feel like putting the time in and then adding the UI hooks for them and, again, I don’t see me needing it for the first project.
CodeTurtle 0.2 can be downloaded at the project’s site on SourceForge.

