Materials for UW Bothell professors and students to weave `git` into CSSE curricula.
This project is maintained by t4guw
By Lizzy Presland, June 2020
Teaching core concepts to UWB students (both underclassmen and upperclassmen) can appear daunting. It is my opinion that every faculty member at UWB is well-equipped to rise to this challenge; at the time of writing, the largest proponent of git
literacy at the school has been spearheaded by students and student groups. While there is nothing wrong with this, and the students who have taken the lead in helping their academic community embrace this vital toolset, none of the students at UWB have training or meaningful experience in developing pedagogical programs and cannot provide lasting influence in the development of school-wide curriculum.
Beyond the fact that faculty are better equipped to teach git
, it is also my firm belief that improving the git
literacy of faculty and students alike will reap many hereto unforeseen benefits.
This document lists some of my advice to faculty who wish to explore the use of the GitHub Classroom platform as a teaching tool for CSS courses at the freshman level and beyond.
Students who are in 342 & 343 can easily be taught how to use git with the CSS computing clusters. Familiarity with the command line interface for git
is, in my opinion, essential for success in industry, but more importantly, it is a core part of understanding the git
workflow for individual contributors and using commands with purpose and intent.
However, for students in CSS 142/143, the current curricula do not leave room for command line familiarity, and there is no way to provide consistent access to a single interface for git
. For these reasons, it is our recommendation, albeit a begrudging recommendation, to teach git
usage using GitHub Desktop, GitKraken, or another GUI tool for git
which is free to access for all students.
If GitHub Classroom is to be used as a teaching platform for CSS classes, it is important to ensure that students have outside resources to lean on for interacting with git
and GitHub; it is an obvious extension of providing tutoring resources for students for the core concepts and learning objectives of 100-level classes.
Ensure that CSS tutors are prepared to assist students with GitHub setup and git
commands, and that they are familiar with the GUI/CLI tool you choose to use as the primary teaching tool for git
.
Beyond the learning objectives of the existing CSS curricula, there are two key concepts which should be taught to students who are taking a GitHub Classroom course:
git
and GitHub usage: Cloning repositories, creating commits, and pushing changes to GitHub.A laboratory class might spend 2 hours so that students can complete the following tasks:
Performing these tasks should be reinforced with continuous usage of the platform throughout the quarter, as well as written materials for Windows/Mac users to reference (cheat sheet for git
commands).
As an additional set of exercises, it would be great to create a simple assignment so that students can get used to the process of accepting and completing an assignment through GitHub Classroom.
A set of exercises might look something like:
git
ecosystem without being stressed about the core requirements of the course assignments.For a 100-level coding class, it might be worth offering extra credit for students who add a basic report to their repository in the README. Assignment instructions can be moved to a separate markdown file to reduce visual clutter, and linked internally on the repo’s README for visibility.