Integrating Git/Github into the course workflow

Adam J Sullivan
Brown University

Matthew Beckman
Penn State University

U.S. Conference on Teaching Statistics
State College, PA
May 17, 2019

Session URL: https://uscots-2019.github.io

Tools for breakout session

Goal: minimum viable implementation

  • first student exposure to Git/GitHub
  • RStudio integration
  • instructor configuration of GitHub Classroom
    • GitHub organization
    • Unlimited private repos for class
  • deploy assignments to students
  • assessment/evaluation of version control as a learning objective

Roadmap for breakout session

  • (discussion) What's Git/GitHub & why should we care?
  • (hands-on) How to first introduce your students to GitHub
  • (hands-on) Create GitHub organization for the class
  • (hands-on) Link “new classroom” in GitHub Classroom
  • (hands-on) Deploy assignments
  • (discussion) assessment/evaluation of source control as a learning objective
  • Wrap-up discussion

Why version control?

  • more at the end… (time permitting)
  • Git is a version control tool
    • plays nice with RStudio
    • files organized in repositories (a.k.a. “Repo”)
    • there are other tools (e.g., Subversion/SVN, Mercurial)
  • GitHub is a web-based repository hosting service
    • remote storage of repositories
    • includes additional features to make things user-friendly
  • standard tools for professional statisticians/data scientists
  • streamline collaboration
  • capture entire history/evolution of a file (or project)

Hands-on exercises

  • How to first introduce your students to GitHub
  • Create GitHub organization for the class
  • Link “new classroom” in GitHub Classroom
  • Deploy assignments

Workflow: RStudio with Git Integration

  1. Open the RStudio Project connected to your Git(Hub) Repo
  2. Work on your computer
  3. SAVE your work often
  4. When you want to preserve a snapshot of your project, you make a COMMIT
  5. Regularly PUSH commits them to the GitHub remote server
  6. PULL clones the most up-to-date version of the files from the GitHub remote to your local computer
  7. repeat steps 2 through 5

Evaluation