https://github.com/smimram/regrade
Simple grading system using regular expressions.
https://github.com/smimram/regrade
assignment grade homework ocaml regular-expression
Last synced: 4 months ago
JSON representation
Simple grading system using regular expressions.
- Host: GitHub
- URL: https://github.com/smimram/regrade
- Owner: smimram
- License: gpl-3.0
- Created: 2024-11-02T12:20:55.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-10-22T13:05:33.000Z (8 months ago)
- Last Synced: 2025-10-22T13:28:29.770Z (8 months ago)
- Topics: assignment, grade, homework, ocaml, regular-expression
- Language: OCaml
- Homepage:
- Size: 51.8 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGES.md
- License: LICENSE
Awesome Lists containing this project
README
# REGrade: a simple grading system based on regular expressions
This is a simple program to automatically grade homework. Each question is validated by looking a whether the file matches a regular expression. It can be useful as a first approximation of the correction, or in cases where tests are sufficient to ensure the validity of the answers.
## Usage
The correction is specified by a csv file of the form
```csv
name,Test
maximum,10
question,Q1,Q2,Q3
regexp,module,bla,(if|and)
points,,2,3
```
where the signification of the lines is the following
- `name`: name of the exam,
- `maximum`: maximum grade (20 if not specified),
- `question`: name of each question,
- `regexp`: regexp for correcting each question (in [PCRE format](https://en.wikipedia.org/wiki/Perl_Compatible_Regular_Expressions)),
- `file`: give points when there is a file whose name matches the regular expression,
- `points`: number of points for each question (1 if not specified).
You can then run a command of the form
```shell
regrade exam.csv file1 file file3
```
and it will grade the various files, outputting the results in `grades.csv`. If a folder is given instead of a file, all the files it contains are considered as one homework.
Useful commandline options include
- `--exclude`: exclude files whose name match the given regexp
- `--extension`: only consider file with given extension
- `--formulas`: generate a csv containing Excel formulas (so that the coefficients can easily be modified)
- `--sed`: apply a substitution (of the form `s/bla/bli/`) on filenames displayed in the generated csv, which can be useful to normalize those
## Installation
In order to install, simply type
```bash
opam install regrade
```