Lesson 1: What is Github?

What is GitHub and how can it be used for collaboration and version control?

Overview

This lesson introduces students to GitHub, a web-platform used for version control and collaboration in software development. They will explore the concept of repositories and learn how GitHub facilities teamwork in software development projects.

Objectives

Students will be able to:

  • Understand the purpose and functionality of GitHub.

  • Navigate GitHub interface

  • Explore repositories and their contents

Suggested Duration

~2 periods (45 minutes each)

NYS Computing Standards

  • 9-12.DL.4 Independently select advanced digital tools and resources to create, revise, and publish complex digital artifacts or collection of artifacts

  • 9-12.DL.5 Transfer knowledge of technology in order to use new and emerging technologies on multiple platforms.

Vocabulary

  • GitHub - a platform for hosting and collaborating on Git repositories

  • Repository - a location where files and their version history are stored

  • Commit - a saved change in a repository

  • Clone - to make a copy of a repository on your local machine

  • Branch - a separate line of development in a repository

  • Version Control System (VCS) - software tool that helps manage changes to files, documents, or any other set of digital information

Assessments

Formative:

  • Participation in group discussions and activities

  • Completion of exploration tasks on GitHub

  • Responses to comprehension questions during wrap-up

Summative:

  • Upcoming End of Unit Project

Resources

Do Now (~3 - 5 min)

Show the class the following video: What is GitHub?

Encourage students to pay attention to the main concepts introduced and any terms or tools mentioned.

Ask students to jot down at least two new terms or concepts they learned from the video.

Prompt them to consider how GitHub is introduced and who it might be useful for in regards to collaborative projects or version control.

Invite students to share their observations and insights from the video.

Suggestion of keeping a running chart of vocabulary for GitHub (digitally or an anchor chart in the classroom)

Mini Lesson: Introducing GitHub (~10 - 15 min)

Begin the lesson with a discussion framing question: What is a Version Control System?

  • Ask students if they have ever accidentally overwritten a document or lost work because of a computer crash?

    • Imagine multiple people editing a document simultaneously, leading to confusion and lost edits.

  • Explain: VCS is like a “time machine” for your projects. It tracks all changes made over time, allowing you to revert to previous versions if needed.

    • Relate it to cloud based systems (ie: Google Drive or DropBox) - They store the latest version of a file, but lack a history of changes.

    • Imagine Google Drive, etc as a single bookshelf -you only have the most recent book on a topic.

    • VCS, like GitHub, is more like a well organized library with a history section.

    • You can access any version of a file (like a specific edition for a book) and see how it evolved.

In this course, students are focusing on professionalism and polishing their skillset in their last CS course of high school. That means they are being treated like developers - and many developers use Github.

With your students, discuss the benefits for developers:

  • Collaboration - able to work on the same project simultaneously.

    • A repository has all the files stored on GitHub

    • Developers clone the repository

    • Developers make changes

    • Developers commit changes and push to the repository

  • Vocabulary Suggestion:

    • Have a digital anchor chart in your LMS, have students use a notebook or an anchor chart in the classroom:

    • Repository: The central location (like the library) where all project files and their versions are stored. (Think of it as the library building)

    • Clone: Downloading a complete copy of the repository (like borrowing all the books on a subject) to your computer. (Imagine getting your own copy of all the books related to your project)

    • Commit: Saving your specific changes to the project (like taking notes in your borrowed books).

    • Push: Uploading your committed changes back to the central repository (like returning your annotated books to the library).

  • For students that may still need more clarification with how a VCS works, you can use an online collaboration tool to simulate the VCS.

    • Use Padlet or Miro

    • Students can “commit” changes (add to their edits) and see the version history.

Group Work: Getting Into Github (~10 - 15 min)

Ask students to navigate to GitHub and sign up.

NB for DOE Teachers: While GitHub is ERMA approved, there are sometimes errors using single sign-on (such a the 'Create Account with Google' or 'Login with Google') options on many websites. To avoid this, ask students to manually create their login.

Begin by displaying a repository (such as this one) on the board. Alternatively, if you choose not to use the one linked, you can make your own for students to explore.

Ask students to discuss with their neighbor what they think the repository might be for and how it is organized.

Bring students back for a class discussion on their findings.

Explain the concept of repositories and how they store files and their revision history.

Navigate through a sample repository on GitHub, highlighting different sections such as files, commits, branches, and contributors.

Clarify key terms like commit, clone, and branch.

Independent Practice: Codecademy Introduction to Github (~10 - 20 min)

Throughout the Unit 0, we will take to Codecademy to review and cement skills that students are engaging with. Although Codecademy is very thorough and can iron out some misconceptions, it's no replacement for the excellent pedagogical knowledge and care you bring to the classroom as a teacher.

Ask students to create Codecademy accounts: once Codecademy passes ERMA approval, they will be able to login via clever. For now, they should sign up manually.

Once students have signed up, ask them to navigate to the Learn Github Introduction course by sharing the link - this short course is offered free from Codecademy. On the main page, students will see a syllabus. They are aiming to complete part one and will use the instruction in Codecademy as a guide.

Some sections will look familiar from their previous exploration - this activity is intended to cement their learning.

NB: Once Codecademy is ERMA-approved, students and teachers will have free access to all courses via Codecademy for Clever. For this curriculum, we have pulled the free modules, but please know more may be available to you if you would like a deeper dive or would prefer Codecademy to do more of the heavy lifting.

Additionally, it is not expected or needed for students to reach 100% completion in all Codecademy courses unless you feel strongly that they do so; these modules serve as practice to enforce ideas that have already been introduced.

Group Work: Deeper Dive (~30 - 40 minutes)

NB: For many traditional school settings, this will likely be the start of the second day of lessons. As a Do Now/Launch, consider asking students to reflect on learning from the previous day, including recalling the meaning of specific vocabulary terms.

Put students in pairs or small groups and give each group a repository to explore. You may wish to find your own or you may want to use one from this list:

Instruct students to examine the contents of the repository, identify its purpose, and note any interesting features they find.

Encourage collaboration and discussion within the groups.

Bring the class back together and have groups share their findings. This could be another opportunity to have a digital/paper chart listing all the main concepts learned about GitHub and repositories.

Wrap Up (~3 - 5 min)

Spend time addressing any misconceptions that came about during the exploration. Ensure students understand the importance of GitHub as a professional tool that they will be using throughout the year.

Extension/Sponge Activity

  1. Challenge students to recreate their own repositories for personal projects - this can be for previous projects or new work.

  2. Research and discuss real-world applications of GitHub in industry and open-source projects.

Last updated