Teaching Git
After learning Git, here are some resources to teach it to students and use it in the classroom.
Philosophy
In order to successfully teach Git and GitHub to students, the material presented needs to be approachable and foundationally sound. Here are some of the tenets we follow:
In our programs, we attempt to demonstrate the usefulness of Git, rather than teaching it in the abstract. Ideally, students should learn Git because it helps them, not because they have to.
It helps to have a solid understanding of Git before trying to teach it. We are able to provide ample guidance, especially when complex situations arise.
We focus on what works, not on the "right way" to do something - for example, sometimes the best way out of a sticky situation is to copy and paste everything, delete the local repository, and just start again!
We try to follow standard branching workflows like Gitflow or Trunk-based development.
We encourage students to contribute to open source projects (sometimes, in a very simplified manner).
Overall, teaching Git can be a delicate process - but it is incredibly worthwhile, especially for long-term projects!
Introductory Video
This video explains GitHub without diving deep into the technical aspects of it. It can be helpful to frame its place in the context of the software development world before exploring the details.
Resources from Hyland Tech Outreach
Click here for a ~90 minute lesson introducing Git & GitHub. A version of this lesson has been used for hackathons, Capstone courses, and internships. Here are some specific aspects that have helped make it more successful:
- Controlled Sandbox Environment – Starting from a standardized template, without an overwhelming amount of setup, makes it faster to get up and running.
- Simple Change for First Pull Request – Walking through the pull request process for the first time can be scary - but doing it without having to worry about actual code makes it a little easier. Providing simple first changes (like spelling fixes) can give students some confidence to complete the pull request process.
- Conflict Resolution Demonstration – Merge conflicts tend to be one of the most difficult and scary parts of version control. By showing students a simulated merge conflict first, it can make it less intimidating to approach a real merge conflict.
Internship Project Example
Click here to see a repository maintained by students during an internship in Summer 2023. These interns did an excellent job running with Git - in fact, the process became so smooth that they were essentially functioning autonomously.
Learning Resources
Students can also leverage all of the learning resources to learn on their own!