Skip to content

Interactive grading shell building upon bash

Notifications You must be signed in to change notification settings

kl2792/bash-grader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

bash-grader

Make AP grade again!

The Bourne Aagin SHell grader is an interactive grading shell building upon bash. It is in dire need of a catchier, punnier name.

This grader is based on the internal sh-grader, written by Dale Zhao, and is used in Columbia w3157, taught by Prof. Jae Woo Lee. sh-grader runs lots of test scripts and prompts the user, but is course-specific, prone to crashing, and most critically rather resistant to attempts to fix it/hack more functionality into it.

The idea of this grader is to hack functions, aliases, and shortcuts into bash in order to provide an interactive grading environment.

This is building upon the idea of a script runner, except one may step through the entire grading process incrementally. Restesting, regrading, and rolling back should all be core features. Switching from student to student or assignment to assignment should be as simple as cding into a directory. Most importantly, the grader should be able to execute any arbitrary shell command while grading, without needing to ever quit the grader.

Then implementing an automated, "just let it go" sort of script runner should be a simple matter of stringing interactive components together in a while loop, pausing only for user input. But before this, the bash-grader should be built for interactivity from the ground up.

Design is very important here; a set of core utils should be built to encapsulate away weird bash syntax for common tasks (like logging or depedency management), but still utilise the power, convenience, and familiarity of good old bash. This should be easily readable and easily hackable, yet should also be robust so as to not bork any files. It should also be easily testable, and writing new rubrics should be as simple as writing simple tester scripts with metadata.

This is open source and still in development, so please suggest whatever.

About

Interactive grading shell building upon bash

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages