Developing a lessons library for teaching version control

This paper describes the process for developing a sharable lessons library to support cross-cutting concerns in a computer science curriculum. The approach supports the creation of lessons that can be shared across courses, that can be updated quickly as new technologies are introduced, that allow new faculty the benefits of tested lessons, and that allow the lessons to be taught in courses with students employing different operating systems, technology stacks, and development environments. Focusing on core outcomes, the lessons can be adapted as the field evolves. The paper applies the process to the development of a lesson library for teaching collaborative coding with Git, a distributed version control system, across a variety of courses.