This brief document answers the question "What is Recourse?," describing its goals, components, and implementation.
Recourse is a methodology for implementing a four-year undergraduate computer science curriculum based on open-source principles, values, ethics, and tools. It provides a general framework consisting of a curriculum progression and set of open-source inspired teaching methods.
A Recourse curriculum strives to provide a superior educational experience giving the student both (1) engineering and people skills demanded by industry, and (2) sufficient fluency with computer science fundamentals to enable new research.
The Recourse curriculum progression models one's rise through the ranks of open-source participation as follows:
At the end of the four phases of this overall curriculum "arc," the student should have acquired the expected knowledge and skills of a computer science bachelor's degree not only through existing conventional texts, lectures, and exercises, but also in the context of collaborative programming, shared code, and overall accountability for one's and others' work.
A Recourse curriculum uses an extensible set of teaching methods, including (at a minimum) the following four:
A Recourse curriculum does not conflict with any established curriculum such as ACM Curriculum 2001, since the Recourse framework does not define particular classes or knowledge units. The methodology simply requires, at a minimum, that:
These elements require a degree of automation if they are to be applied efficiently in the classroom. A Web application called Mari is available for implementing a Recourse-ready repository of course assignments and submissions. The application supports plugins for pre- and post-processing of submissions with instructor-defined rules if desired. Students submissions can be tagged as viewable only to certain users, to support assignments given to a whole class where collaboration (cheating) is prohibited. Submissions can also be marked completely public; thus Mari can serve as an open-source distribution point for student projects.