CodeGrade is a blended learning application designed especially for programming education. It makes grading and handing in programming exercises more insightful and effective for students and more efficient for teachers. Where programming exercises are currently reviewed in a classical and counter-intuitive way, resulting in only little and vague feedback, CodeGrade creates the missing intuitive environment for reviewing programming exercises.
This is achieved using some of the key-features CodeGrade provides:
- Line by line feedback making it possible to specifically write feedback for a specific part of the code.
- Rubrics per assignment to aid with grading.
- Built-in code plagiarism detection system using JPlag.
- CodeGrade Filesystem enabling both students and teachers to access and hand in files on the CodeGrade system locally without any overhead.
- CodeGrade editor plugins allowing the teacher to locally review programming assignments and fill in rubrics using the editor of choice.
A local installation of CodeGrade can be created using the running instructions in the CodeGrade documentation. CodeGrade can be run in both development mode and production mode, both are explained in the documentation.
The CodeGrade filesystem (or CodeGra.fs) can be used to mount a local CodeGrade instance on your computer to browse the assignments and files on the server. The filesystem can be used for students to locally work on the CodeGrade mount and thus automatically hand in the assignment with each save. For teachers the filesystem can be used to grade work without any overhead locally using a preferred supported editor.
More information on installing and using the CodeGrade filesystem can be found on https://github.com/CodeGra-de/CodeGra.fs.
Accompanying the CodeGrade filesystem are editor plugins. These plugins allow for easy and intuitive grading of work locally in your favourite editor. By using the combination of the filesystem and an editor plugin, overhead during grading can be reduced to a bare minimum and all focus can be on the actual grading of the work.
As of writing, there are editor plugins for the following editors:
- Vue.js - A front-end JavaScript UI framework used to create CodeGrade's front-end.
- Flask - A python back-end WSGI framework used to create CodeGrade's back-end.
- PostgreSQL - The database used for CodeGrade.
- Celery - Celery is used to provide a non blocking background queue.
By contributing to this product you agree that all code you write will be
released under the AGPL license, version 3 (AGPL-3.0-only). See LICENSE
for
details.
Please consult CONTRIBUTING.md
for further details on contributing to
CodeGrade.
CodeGrade is currently maintained and actively developed by Devin Hillenius (@DevinHillenius), Olmo Kramer (@olmokramer), Thomas Schaper (@libre-man) and Youri Voet (@yourivoet).
Please feel free to contact us at info@codegra.de for more information on innovating your programming education by using CodeGrade at your institute.
CodeGrade originated as project, called CodeGra.de, in the Project Software Engineering course at the University of Amsterdam in June 2017. The project emerged from our own frustrations as both students and teaching assistants in computer science at the UvA. As students we lacked meaningful feedback to give us insight in our grade for programming assignments. And as teaching assistants the amount of overhead required to actually grade programming assignments in the traditional way, in addition to the lack of providing useful feedback in a counter-intuitive environment made the work very frustrating at times. This still drives us to create a product that can revolutionise programming education to this date.
The initial version of CodeGrade was created for a course at the University of Amsterdam and was developed by Leon Bartelsman, Ewoud Bouman, Harm van Eekeren, Wicher Heldring, Devin Hillenius, Niek Kabel, Erik Kooistra, Olmo Kramer, Sebastian Melzer, Thomas Schaper, Bram Snijders and Youri Voet.
Furthermore, we want to thank the University of Amsterdam for their support of this project during its first year of development.
The full documentation of CodeGrade can be found on our website: https://docs.codegra.de/.
CodeGrade as a whole is licensed under the GNU Affero General Public License
v3.0 (AGPL-3.0-only). For more
information about copying see COPYING
. All license identifiers used in this
product are SPDX license identifiers.