Curated summary
Teaching software development the easy way using GitLab
GitLab for Education can turn the administrative work of teaching software development into a scalable, professional workflow. University of Washington lecturer Stephen G. Dame uses GitLab groups, controlled permissions, merge requests, and inline comments to distribute materials, protect solutions, and provide contextual feedback. The approach helps students build real-world version-control and code-review habits while reducing instructor overhead.
Building a Course Structure with Groups
- Dame organizes the university in a root group such as
UWTeaching, with one subgroup per course, such ascss430. - Course subgroups contain:
- Private lecture materials and code repositories
- Student subgroups
- Grader subgroups
- Permissions inherit through the hierarchy, allowing instructors to control access centrally.
- Students receive Reporter access with an expiration date tied to the academic quarter.
- They can clone and pull assignment repositories but cannot push to instructor-controlled repositories.
- Students use SSH keys across local machines, cloud shells, and virtual machines, then copy code into private repositories for their own version history.
Automating Enrollment for Large Classes
- Manually creating student accounts and permissions becomes impractical for large cohorts.
- GitLab’s REST API can automate:
- Creating personal subgroups for students
- Looking up GitLab users
- Assigning Reporter permissions
- Setting membership expiration dates
- GitLab also provides an open source class-management project with additional automation tools.
Feedback Through Merge Requests
- Students submit assignments by opening merge requests in their repositories.
- Instructors immediately see a complete diff of the student’s work.
- Comments can be attached directly to individual lines of code.
- Inline feedback lets instructors explain both what is wrong and why, while directing students toward the next step.
- Because feedback appears beside the relevant code, it is more actionable than comments on a separate document.
Starting with GitLab for Education
- The initial setup requires planning, but the workflow becomes largely self-sustaining once established.
- GitLab for Education provides qualifying institutions with GitLab Ultimate features, including expanded storage, compute minutes, and merge-request capabilities.
- Instructors are advised to begin with one course group, one assignment template, and a basic pipeline before expanding.
A simple GitLab structure can make course administration more efficient while giving students practical experience with the collaborative development tools used in industry.
Related reading
Continue with another curated summary.