Home Page


About ReCodEx

ReCodEx is a system for dynamic analysis and evaluation of programming exercises. It allows the supervisors to assign practical programming problems to students through a web interface. Students upload their solutions as source codes to the system and ReCodEx automatically evaluates them (by compiling and executing the solutions in safe environment). Hence, students get a quick feedback to their solution so they can correct simple mistakes immediately. Furthermore, supervisors do not have to verify functionality of each solution manually which leaves them more time to focus on higher aspects such as the solution code quality.

GitHub,documentation in wiki

Quick Start

Groups

All work is organized in groups. A group interconnects coding assignments and people who wish to solve them (referred to as students). Groups often reflect real world organizational units like a classes of students or a coding competition events. A group may hold more than one assignment and it may provide complex rules for grading or ranking member users.

Groups are organized in a tree so they can better reflect hierarchical structures (e.g., top-level group may correspond to a course whilst its sub-groups correspond to individual lab-groups). The hierarchy is quite important from the perspective of access control. Particularly, a group admin is allowed to administrate also the sub-groups. The intermediate nodes of the tree often comprise organizational groups (folders for other groups), whilst leaves are regular groups (with students and assignments).

Assignments

Assignments are exercises assigned to particular group. An assignment holds copied data of the exercise — a specification (text in markdown) and various configurations which govern the evaluation process of submitted solutions. In addition, the assignment is given a deadline and maximal amount of points (points awarded for 100% correct solutions). Solutions submitted after the deadline are are still evaluated, but they are awarded no points.

Assignments employ additional limitations on submissions. The most important one is the maximal number of submissions per student. This limit is mainly imposed to keep the hardware demands of the evaluation system reasonable. Furthermore, the philosophy of the ReCodEx is that the students should submit finished solutions, not use ReCodEx for debugging.

Submitting Solutions

Solutions of assignments are submitted as file(s), typically containing the source code (details should be described in the assignment specification). If the assignment allows multiple runtime environments (programming languages), the actual runtime is selected based on the names (extensions) of submitted files. A student may correct the selection in case of ambiguity. Furthermore, some languages (e.g., Python or JavaScript) need to specify the entry point — which file holds the main script to be executed (unless the entry point is already specified in the exercise configuration).

When the solution is evaluated, the ReCodEx will make available the results of the evaluation and award points based on the solution correctness and assignment configuration. Some details (e.g., exact solution outputs) may not be available to students, especially if the testing data are kept secret. Teachers may choose to intervene in the grading process by either assigning bonus points or by overriding the points awarded by ReCodEx. Furthermore, the teachers may mark any solution as revised (i.e., read by the teacher) or by accepted (which also makes ReCodEx ignore all other solutions of the student).


Acknowledgement

The initial creation of the project was supported by the Student Grant Program (SFG) of the Faculty of Mathematics and Physics, Charles University. Maintenance and further development is currently funded by School of Computer Science of the same institution.