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.
    • Add assignment content to the local folder.
    • git add and git commit your changes
    • git push to make the changes available on the remote template repository
  • 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

New Assignment

New Assignment

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.