GitHub Classroom is available to all St. Thomas faculty as part of the University’s GitHub Campus subscription. It is designed to make it easy to distribute programming or file-based assignments, collect student work, and review or grade submissions, all while working smoothly with Canvas.
At a high level, GitHub Classroom connects three things: your Canvas course roster, a shared “classroom” space in GitHub, and a set of private repositories where each student completes their work. Students submit assignments by working in their own repository, and instructors review the work directly in GitHub, with grades flowing back to Canvas.
You do not need to be a GitHub expert to use GitHub Classroom.
You can visit GitHub Classroom at its homepage:
Initial Org Setup
GitHub Classroom is managed through a GitHub Organization, which is a way of representaing a department or similar academic unit (for example, Computer Science, Physics, or Engineering). It is distinct from a GitHub Team.
To use GitHub Classroom, your unit must already have an Organization set up, and you must have permission to manage classrooms within it. (At this writing, most faculty do not yet have this.)
If you do not already have access, ITS will help you:
- Create or identify the correct GitHub Organization for your unit
- Assign appropriate permissions to instructors and TAs
- Connect the Organization to Canvas so class rosters and grades work correctly
Email techdesk@stthomas.edu to open a support ticket for setting up a GitHub Org for Classroom (cc jjheaney@stthomas.edu ).
Once this initial setup is complete, it does not need to be repeated for every course. Future instructors in the same unit can reuse the same Organization.
Canvas Configuration
When you set up your Classroom, you will be asked to connect to Canvas to get your course's roster. This is a good idea!
However, you may need a special Canvas key, especially if you have a new Organization. If you encounter this, contact ITS with a request to integrate GitHub Classroom with Canvas. Email techdesk@stthomas.edu (cc jjheaney@stthomas.edu). We will give you the key and/or configure the connection for you.
To create an assignment, the instructor starts with a “starter” repository. This repository contains the instructions, files, or code that students will begin with. GitHub Classroom then makes a private copy of this repository for each student (or each group, if it is a team assignment).
When the assignment is published, students access it from Canvas and accept it with a single click. GitHub automatically creates their private repository and gives them access. Students complete their work there and submit simply by saving and uploading their changes.
There is no separate “submit” button — the student’s work is recorded automatically as they work.
Receiving and Grading Homework
Professors can see all student submissions inside GitHub Classroom. Each student’s work appears in its own repository, with a clear record of when changes were made.
Grading can be done by:
- Opening the student’s files and reviewing their work
- Running automated tests (if the assignment includes them)
- Leaving written feedback directly on the student’s work
Once grading is complete, grades are returned to Canvas through the existing integration. No manual downloads or uploads are required.
Need help?
GitHub has lots of documentation and tutorials about GitHub Classroom.
More information about the St. Thomas GitHub environment (including guides, labs, website management, team management, repo creation, and more) can be found in GitHub Campus: Read Me First.
ITS is available to provide any assistance that you may need with the St. Thomas GitHub. Email techdesk@stthomas.edu to open a support ticket (cc jjheaney@stthomas.edu).