I use GitHub Classroom to manage most assignments. This includes projects, writing and essays, homeworks, etc., but not exams.
Why GitHub Classroom?
git, GitHub, and GitHub Classroom can be operated using a CLI. This has major benefits:
- Repeated actions can be scripted
- Appropriate commands can be generated by LLM tools
Getting Set Up
If you are currently TAing one of my classes:
- You should be a member of the g-simmons-classes organization on GitHub
- You should have the “maintainer” role in a private repo named with the course code. For example, if you are TAing ECS170, you should see
g-simmons-classes/ECS170
in the list of repositories you have access to on GitHub.
If there is an issue with one of these, let me know as soon as you can.
How do I create an assignment?
Each assignment is a git repository. To make a new assignment:
-
Check if a template repository already exists for the assignment. If not, create a template repo:
- Create a template repo in the
g-simmons-classes/
organization on GitHub.- If you are not a part of this organization already, please contact me. All current TAs should be organization members.
- Create a local folder to link to the template repo.
- Use
git init
to make your local folder a git repo. - Use
git remote add origin <template-repo-url>
to link your local folder to the repo that was created on GitHub.
- Use
- Add assignment content to the local folder.
-
git add
andgit commit
your changes -
git push
to make the changes available on the remote template repository
- Create a template repo in the
-
Make the Assignment on GitHub Classroom:
- Go to the GitHub Classroom page for the class, and click the New Assignment button
- Select the template repository you just created
How do students complete and submit their work?
Student copies of assignments are forks of the assignment template. Whatever content is in the student’s fork at the deadline time is their submission.