Using Git, GitHub, and GitHub Classroom for Courses


September 6, 2023

Employers and data scientists consistently include competency with version control systems such as Git and GitHub as high value skills for their work. It’s one thing to teach a lesson on using Git and Github, it’s another to make it the foundation for information sharing for a course. By this I mean requiring students to use Git and GitHub to get class lecture notes, execute every assignment, and complete their group projects. After 15-weeks of using Git and GitHub every week students have practical experience in workflows for version control and collaboration as well as the “muscle memory” to execute those workflows as second nature. They also routinely get to experience some of the hiccups that can happen with Git and GitHub and figure out how to recover from them.

In 2019, Dr. David Gerard introduced the use of Git and GitHub as the basis for the American University course called Data Science. This course is for students that already completed a course in programming with R and RStudio so they are familiar with programming in an Integrated Development Environment. Since then I have used Git and GitHub as the basis for teaching this course 10 times in face-to-face, Zoom-based, and hybrid classes.

American University uses the Canvas Learning Management System. I use Git and GitHub as the basis for information sharing and use Canvas for the administration of assignments and grades. I also use GitHub Classroom for its role in creating assignments for students based on a template assignment repository. I am grateful to GitHub for the educational benefits they provide for teachers and students.

When David and I first started teaching, Fiskel et al’s Using GitHub Classroom To Teach Statistics was a great reference for how to synchronize across the various pieces of technology. Since then, Git and GitHub have changed, especially in the area of security credentials. For my own sanity, I have documented the numerous steps to get started and then execute a course, and then get ready for the next version of the course.

The article Using Git, GitHub, and GitHub Classroom for Courses is under the Teaching section. It tries to capture the workflows for a complete semester. There are certainly other approaches. Some might use more capabilities from GitHub and GitHub Classroom so feel free to experiment.