An open API service indexing awesome lists of open source software.

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.

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
```