RAI
A major component of many advanced programming courses is an open-ended “end-of-term project” assignment. Delivering and evaluating open-ended parallel programming projects for hundreds or thousands of students brings a need for broad system reconfigurability coupled with challenges of testing and development uniformity, access to esoteric hardware and programming environments, scalability, and security. We built RAI, a secure and extensible system for delivering open-ended programming assignments configured with access to different hardware and software requirements. More details in the paper and docs are at RAI Docs