Skip to content

About

4th year university project: GAP Jupyter notebooks for creating and grading assignments. Provides an artefact for teachers to create and grade GAP assignments using the GAP Jupyter Kernel package.

Resources

Stars

2 stars

Watchers

1 watching

Forks

Latest commit

 

History

82 Commits

Folders and files

Repository files navigation

GAP-grader

This project serves as my Computer Science Honours project, required for completion of my BSc Computer Science and Mathematics degree at the University of St Andrews from September 2025 to April 2026.

Description

The GAP-grader serves as an efficient tool for creating and grading GAP assignments in Jupyter notebooks. It requires Python (any version 3.5+), GAP 4.14.0, GAP JupyterKernel 1.5.1, and notebook 6.5.7 (the JupyterKernel package does not currently work with the newest version of notebook). The required Python libraries can be installed via the requirements.txt file.

Using the tool

To create the student version of a GAP assignment, use the following command:

python main.py create <assignment_path> <created_version_path>

and to automatically grade student responses, use the following command:

python main.py grade <assignment_path> <student_notebooks_path>

where <student_notebooks_path> is a directory, that contains only Jupyter notebooks of student submissions.

For more information and extensive documentation, which includes steps for installation, set-up, creation and grading of assignments, please see the user manual tex file in the Documentation/ folder.

Examples

For examples, please see the Examples/ folder. This includes 3 basic assignments that demonstrate the basic functionalities of the tool, a complete assignment example on continued fractions, and a template that provides an informative example on how to create an assignment. Some example student submissions for the 3 basic assignments and the continued fraction assignment are also given in the Examples/student_responses folders.

Testing

The program uses pytest to perform unit tests on the important functionalities. To run the tests, simply run the following command:

pytest

About

4th year university project: GAP Jupyter notebooks for creating and grading assignments. Provides an artefact for teachers to create and grade GAP assignments using the GAP Jupyter Kernel package.

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages