Welcome to Recourse

Recourse is a curriculum development project for undergraduate computer science. It seeks to define new teaching techniques, based on the open source culture, that close the gap between what students experience in school and what they encounter in industry. Common themes behind these techniques include:

  1. The longevity of software
  2. Group vs. individual work
  3. Current best-practice development approaches (test-driven development, continuous integration, etc.).

The scope of the work includes a suggested curriculum arc , teaching techniques to apply throughout this arc, and support software that facilitates easier implementation of these teaching techniques.

Recourse Support Software

The aforementioned themes require a degree of automation if they are to be applied efficiently in the classroom. Based on these needs, the software for Recourse consists of two primary components: an end-user Web application for managing coursework, called Mari, and a back-end service for processing student work, called RoboTA. Mari is a Java-based Web application using Hibernate for object-relational mapping and persistence and Spring's model-view-controller framework. The Web application manages courses, offerings, assignments, problems, and submissions. RoboTA is a work processor; on the most general level, it accepts proposed solutions to problems, then returns a response to that solution. The processor uses a plug-in architecture for different evaluation mechanisms, ranging from whether or not a submission fits a particular format to whether it compiles, builds, and tests cleanly. Both components are URI-based for minimal coupling but maximum cohesion. The URI scheme adheres to the representational state transfer (REST) paradigm, which improves URI readability and hides implementation details.

Acknowledgements

Partial support for this work was provided by the National Science Foundation 's Course, Curriculum, and Laboratory Improvement Program, Award No. 0511732.

National Science Foundation