GitHub in the classroom: not just for group projects
2013; Consortium for Computing Sciences in Colleges; Volume: 28; Issue: 4 Linguagem: Inglês
ISSN
1937-4771
Autores Tópico(s)Software Engineering Research
ResumoVersion control is something that students are not usually introduced to until they get to industry. One popular distributed version control system known as has become even more popular in recent years as the basis for a popular website called It is a web-based hosting service for software development projects that utilize the Git revision control system. Github is hugely popular in industry and many companies use programmers' GitHub portfolios as a basis for hiring. The only downside to using a site like GitHub is it emphasizes social coding, meaning individuals can not only see, but can clone your code to either start working on a project with you, or take it in a different direction. This obviously will not work for standard programming assignments, where students need to keep projects private. GitHub has realized this problem, and offers university students free private repositories to work on projects in school. One simple example that motivated me to start using Git in the classroom was the ability to and merge. We have all seen a students flash drive contents with: Prog1v1, Prog1v2, Prog1v3... Prog1vN, or at least something similar. What these students have essentially done is their own code, with no real convenient method of getting all their changes and additions, back into Prog1v1. I teach incremental programming, and urge the student to get something working, before adding the next component. If a student uses Git, when they reach a point where the code is stable, they can simply create a new switch to that branch, work on that branch, then when it's working, merge it back into the original Prog1v1. Or, if it's totally off course, abandon that branch and move in another direction, without destroying the original Prog1v1. In addition, some of the questions I asked myself before using GitHub in the classroom, were: 1) Is version control necessary or worth the extra confusion it may add to the already heavy workload in a programming class? 2) What level of student should version control be introduced to? 3) Is distributed version control only good for group projects, or will individual students benefit? All these questions, plus more, will be answered in a hands on approach to learning Git and GitHub.
Referência(s)