Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Stories from the GitHub Classroom: Changing Practice, one Pull Request at a Time

Stories from the GitHub Classroom: Changing Practice, one Pull Request at a Time

Stories from the GitHub Classroom: Changing Practice, one Pull Request at a Time

--

Before we get started, I’d like to introduce myself. My name is John Britton and I’m the Education Liaison at GitHub.

I have a background in educational technology with a specific focus on training software developers.

In essence, my job is to help you get the most out of GitHub in your teaching

Over the past few years, I’ve had the opportunity to observe the ways educators have used GitHub in the classroom, and I’ve noticed a trend: many educators do not use pull requests in their courses.

That’s a shame, because they’re a really powerful way spark collaboration and improve the learning experience.

--

Enough about me, let’s talk about GitHub:

GitHub is a platform for collaborating on software. It’s a place for you to keep your code, share it with others, and communicate about changes as you make them.

In this talk, we’ll learn about how a key feature of GitHub, the pull request, can be used as a teaching tool.

* Show of hands, how many of you use GitHub on a regular basis?
* And of that group, how many of you are currently using GitHub with your students?
* And finally, how many of you feel that you are using pull requests to their full potential?

--

But first things first: What is a pull request?

(Ask audience)

“A pull request is a proposal to introduce changes, a distinct set of commits, into a project. It’s a conversation about code. When a...

John Britton

March 07, 2015
Tweet

More Decks by John Britton

Other Decks in Education

Transcript

  1. !

  2. “Pull requests (PR) are the heart of the GitHub work-

    flow, and we took advantage of PRs, including task lists so that students could report on their work in progress and get over initial humps. Any merged PR got extra credit(!). Because the course had been improved in some way—this seemed like an interesting standard for giving out extra credit.” - Jim Baker, University of Colorado
  3. “To get the students involved in their projects, we encouraged

    them to make actual contributions. Several teams were successful in this, and offered pull requests that were actually merged…. The open source projects generally welcomed these contributions, as illustrated by the HornetQ reaction” - Arie van Deursen, Delft University of Technology
  4. “Your job is to identify an existing ticket in an

    upstream project and send a patch. For every patch you submit that gets accepted, you get extra credit. I totally have students “hacking” their grade in my course, and submitting 17 patches by the end of it. That makes me pretty confident that at the end of the class they will do this stuff in real life, because they are doing it on their own.” - Remy DeCausemaker, RIT
  5. Developers also sought out more information on others in response

    to code contributions. They sought out information about other developers’ interaction style and interest to inform how they communicated with them. They also formed ability and expertise impressions based on profile information. These impressions influenced the way they handled project contributions moreso when the value of submitted contributions was uncertain, the contributor was unknown and future interactions were not expected. - J. Marlow et al. (2013)
  6. …because the TAs worked so closely with each of the

    teams over eight weeks, they had a really good sense of how well each team performed, how well they did using the software engineering techniques, and who actually contributed and who didn’t contribute.” - Dean James Larus, EPFL (École polytechnique fédérale de Lausanne)
  7. ! references + further reading 1. Basu, S. “Team Collaboration

    With GitHub” http://code.tutsplus.com/articles/team-collaboration-with-github-- net-29876 2. Binns, R. “Open Research in Practice: responding to peer review with GitHub” http://www.reubenbinns.com/blog/ open-research-in-practice-responding-to-peer-review-with-github/ 3. Escalante, J. “GitHub Pull Request Tutorial” http://www.thinkful.com/learn/github-pull-request-tutorial/Work- in-Progress 4. Garrison, D. R. (2011). E-learning in the 21st century: A framework for research and practice. Taylor & Francis. 5. Marlow, J., Dabbish, L., & Herbsleb, J. (2013, February). Impression formation in online peer production: activity traces and personal profiles in github. In Proceedings of the 2013 conference on Computer supported cooperative work(pp. 117-128). ACM. http://herbsleb.org/web-pubs/pdfs/marlow-impression-2013.pdf 6. McMinn, K. “How to Write the Perfect Pull Request” https://github.com/blog/1943-how-to-write-the-perfect- pull-request 7. Orsini, L. “How To Win Friends And Make Pull Requests On GitHub” http://readwrite.com/2014/07/02/github- pull-request-etiquette 8. Rigby, P. C., German, D. M., Cowen, L., & Storey, M. A. (2014). Peer Review on Open-Source Software Projects: Parameters, Statistical Models, and Theory. ACM Transactions on Software Engineering and Methodology (TOSEM), 23(4), 35. http://users.encs.concordia.ca/~pcr/paper/Rigby2014TOSEM.pdf 9. Zagalsky, A., Feliciano, J., Storey, M. A., Zhao, Y., & Wang, W. (2015). The Emergence of GitHub as a Collaborative Platform for Education. http://alexeyza.com/pdf/cscw15.pdf