This page discusses how to apply the SEAS Code Repository at
to coursework. It assumes that you are familiar with the service, so please review the docs
The SEAS Code Repository is a central service that provides large chunks of the typical workflow used in courses, including
However, the structure of the coursework will strongly influence how the SEAS Code Repository can be used in a course, and how well it fits the needs of any particular courses.
The following are some thoughts on how it could be used.
In it's simplest form, the SEAS Code Repository can be used to publish assignments, in particular assignments that include initial stub code, to students.
This would entail something like the following steps:
Another approach to use in courses is to encourage students to use the tool for managing their assignments, likely in conjunction with publishing the assignments.
Used in this way, the SEAS Code Repository acts as a development productivity tool, and encourages code software engineering practices.
In this scenario, students will use the system to collaborate on assignments, again either created from bare repositories themselves or by cloning published assignment repositories.
The steps involved would be similar to the above, except that the students would manage user collaborators individually. Once students would "own" a repository, and then invite other students in a "section" or study group to have commit access. The student owner would likely be responsible for final submission of the assignment on behalf of the group.
More involved use of the SEAS Code Repository to mimic real course assignment workflow would include using the service to "hand in" assignments at a given time. This approach assumes the following:
In this model, the instructors use the fact that all clones of a given repository are tracked, so that for a given assignment, a list of student work repositories can be generated.
At the deadline, all student clones are "handed-in" automatically by checking out each, and then integrating that student's work as a branch of the main assignment. The resulting repository, with one branch for each student or section, represents the "completed homework bundle" for that assignment, ready for grading.
This functionality is not yet available in the GUI, and would require a small amount of backend work by Academic Computing staff to implement for a given course (mail us at firstname.lastname@example.org if you are interested in this option).
This approach most closely resembles real-world software engineering. Students openly work in groups on different aspects of the same project, negating the need for careful tracking of permissions. Each repository (or set of repos) developed against is some component or aspect of the topic of the course, and the assignments may build up over the term to a initial "version 1.0." release.
The repository service serves as the central code management tool for the coursework, and the final project may actually involve merging all repositories into a working system.