GitHub Classroom is a tool that allows teachers to manage assignments using Github, a version control system that allows for collaboration and tracking of changes to code and text. Using GitHub Classroom can enhance teaching in computer science and non-computer-science (non-CS) courses where students must code or write a text. Still, it is becoming more popular in social sciences and other disciplines.
Any applied course can benefit from these tools; examples range from classes in English literature to courses focusing on Big-data and Machine Learning applications in social sciences, Econometrics, and applied statistics.
Instructors can distribute their code and material in a centralized form, assign individual or group assignments to students via GitHub Classroom, and provide feedback. Learning to use these tools is also advantageous for students due to their popularity in academia and industry. Moreover, it is helpful for instructors to transition some of their material to an online format. GitHub is a powerful facilitator of scaffolding and group projects within the classroom.
In scaffolding projects, the instructor breaks down complex tasks into manageable steps where students can build their skills gradually. With GitHub Classroom, they can receive guidance and support along the way. Moreover, GitHub’s team project capabilities allow smooth collaboration among students and help with fair grading by keeping track of each student’s contribution to the project. Team members can work concurrently on a project through shared repositories, leveraging version control to track changes, merge contributions, and resolve coding conflicts.
This fosters a dynamic and interactive learning environment where students can engage in effective teamwork, exchange ideas, and collectively produce high-quality outcomes. The collaborative nature of GitHub empowers students to leverage each other’s strengths, enhance their communication and collaboration skills, and develop a deeper understanding of the subject matter through collective intelligence.
I have used the GitHub classroom in my “Big Data Tools for Economists,” taught in Python. Below are the main advantages of using the GitHub Classroom I observed in my course.
- The instructor can create a GitHub Classroom account (straightforward to make) and create a repository for the class. The instructor can then set up the environment and distribute the assignment to all students via a link or an invitation email. The setup can be a coding repository, a prompt text, or anything else. Once the students join the link, a personal GitHub page for them is created, and they can push (upload) their assignments to that page which locks on the deadline.
- The instructor can follow students’ work over different stages if necessary and observe each student’s effort. There are many benefits to this. For instance, students are more motivated to start earlier since the instructor will see their day-by-day work. There is no lost work since GitHub will save all the versions of their files, so if the student misses submitting their work on Crowdmark, for example, or lose their work due to a technical issue, the instructor has their last edits before the deadline and can use that version to grade.
- Instructors can provide feedback on students’ work using GitHub’s commenting system. Moreover, students can request input if it makes sense for the course design.
- The instructor can grade the submissions using GitHub’s grading system, which can be used to automate grading fully or partially.
- The instructor can assign groups and define group work and scaffolding projects much more manageable than in other educational settings such as Canvas. If a team project is defined, each student’s contribution to the project is straightforward and can be tracked over time which not only makes students more productive but also helps with fair grading practices.
Nelson et al. (2021) show that students’ performances improved by using this tool. They show that using shared repositories eased group projects and motivated students. However, it is essential to note that Nelson et al. (2021), Angulo (2019), and other researchers have mentioned that first-year students were unfamiliar with version control. Instructors should assess the cost of introducing this tool to their classroom and should consider teaching Git and GitHub to students before using the platform for projects. In my course, I spend one week on version control systems and working with GitHub. In the presence of class time constraints, instructors can consider teaching this module asynchronous online. Other costs and benefits of working with GitHub classroom have been discussed in the literature but primarily for computer science and statistics courses (for instance, see Angulo and Aktunc (2018), Fiksel et al. (2019), Hsing and Gennarelli (2019), and Nelson et al. (2021)). My class is a successful example of using this tool in a non-computer science course. I provide more details on the structure of my course in the rest of this article. In the Appendix, I have included some valuable resources about GitHub for instructors and students. In addition to the material provided in the Appendix, review this step-by-step guide to setting up a GitHub classroom with screenshots and visuals.
Link to Example artifact(s)
Economists and most social scientists have recently been introduced to these tools, and my course is one of the first to adapt this tool and use it for teaching economics. I have used the GitHub Classroom in my “Big Data Tools for Economists” course for the past three years. In this course, students work on their research papers for the entire semester, requiring frequent feedback from the teaching team.
In my course, students are evaluated through a series of scaffolding projects that progressively build toward a final project and paper. Each project includes clear expectations and guidelines that students must follow. The first project starts by providing guidelines on downloading and loading the data, checking the summary statistics, dealing with outliers, thinking about a research question, revising the summary statistics, and narrowing the question. The second project asks students to perform meaningful, advanced data visualizations and provide intuition. In the third project, students scrape a data set that does not exist but is required for their research, merge it with their initial dataset, and repeat the first two steps. The fourth project asks them to run simple regressions and machine learning (ML) models and interpret their results.
This course allows students to learn new data skills and apply them to economics research, develop their independent research skills, and gain experience in the research process, including overcoming obstacles. Each project is structured like a paper, with an introduction and conclusion section, and builds upon the previous project. Throughout the course, students receive individual feedback on their code, results, and inference and are expected to address any comments in the following project. By the end of the course, students have completed an entire project and paper using their assigned individual datasets.
Defining student-specific semester-long projects using real-world datasets in economics is a challenging task. Using GitHub Classroom has helped me to achieve this in an economics course, and this introduction will be helpful for social science and other majors.
At the beginning of the course, I have a module explaining GitHub using this book and asking and advising students to create their accounts.
On the instructor side, to get started, I created a GitHub Classroom account and a repository for the class. I then set up the environment and distributed the assignment to all students via a link (or an invitation email). Once the students join the link, a personal GitHub page for them is created, and they can push (upload) their assignments to that page, which locks on the deadline.
As mentioned above, my course has three to four scaffolding projects. In each project, I have 20 to 30 points allocated to applying comments students received in previous projects. Using the GitHub classroom, we can observe our feedback, measure how much of the feedback has been incorporated, and fairly grade that section.
A scaffolding design must have active commenting and active grading of the previous feedback to produce high-quality and efficient work. Students need an incentive mechanism to go back to previous work and edit. Using GitHub Classroom has contributed to this design and has helped me overcome this challenge. The automation, tracking of students’ work during the semester, not losing any student work (since GitHub is a version control system), and providing feedback have contributed positively to my course and can be helpful in other classes in other disciplines.
What are the advantages of GitHub over Canvas, Crowdmark, or other educational tools? GitHub Classroom is primarily used for managing text and code-based assignments, allowing students to work individually or collaborate on code, and submitting code for grading. It is built on top of the GitHub version control system, which is widely used in the industry and academia.
Compared to other educational tools, there are three main advantages of working with GitHub Classroom. One is that you can observe and check different stages of student work throughout the assignment. The instructor can open the assignment on a particular day and see students’ progress (you should require students to push their work at a set frequency). In Canvas and Crowdmark, the instructor may be able to observe the viewing date and other activities, but they cannot follow students’ work over time.
The second significant advantage is that it is easier to define group work, observe each individual’s contribution, and provide feedback using the GitHub classroom than other educational tools. And the third advantage is providing active feedback to students and monitoring the previous feedback and the scope of implementation of the comments provided to students.
Link to scholarly reference(s)
Angulo, Miguel A., & Aktunc, O. (2019). “Using GitHub as a teaching tool for programming courses.” In 2018 Gulf Southwest Section Conference. 2019.
Fiksel, J., Jager, L.R., Hardin, J.S., & Taub, M.A. (2019). “Using Github classroom to teach statistics.” Journal of Statistics Education, 27(2), 110-119.
Hsing, C., & Gennarelli, V. (2019). “Using GitHub in the classroom predicts student learning outcomes and classroom experiences: Findings from a survey of students and teachers.” In Proceedings of the 50th ACM Technical Symposium on Computer Science Education, pp. 672-678. 2019.
Nelson, M.A., & Ponciano, L. (2021). “Experiences and insights from using Github Classroom to support Project-Based Courses.” In 2021 Third International Workshop on Software Engineering Education for the Next Generation (SEENG), pp. 31-35. IEEE, 2021.
A1. Books, Courses, and Other Resources:
Below I provide some instructional resources to get started. Instructors can use these videos to self-learn and to share with the class. Please note that the links may be deactivated in the future by the website owner.
- Official GitHub Guides
- Git Documentation
- Atlassian Git Tutorial
- GitKraken Git and GitHub Learning Resources
- Pro Git by Scott Chacon and Ben Straub
- Version Control with Git by Jon Loeliger and Matthew McCullough
- Git Pocket Guide: A Working Introduction by Richard E. Silverman
Online Courses: (note that the links may expire in the future)
Khazra, N. (2023). Facilitating Scaffolding and Team Projects in Non-Computer Science Courses with GitHub Classroom. In deNoyelles, A., Bauer, S., & Wyatt, S. (Eds.), Teaching Online Pedagogical Repository. Orlando, FL: University of Central Florida Center for Distributed Learning.