Fighting Inertia

Getting from 0% to north of 50%

Created by Steven Bitner, PhD

Inertia has two general contexts

Bodies in motion stay in motion

Kool Aid breaking through a wall

Bodies at rest stay at rest

Sumo wrestler against small child

My First Attempts

Likely necessary, but not sufficient

Only allow submissions via GitHub

I'm going to have to email that to you.

My response:

Emailing code is not how this profession works. We need to get this resolved so that it doesn't continue to hamper your ability to submit code

Don't judge me, this is a deep into a chat where the student wouldn't follow basic steps

When students ask for help, ask them to push what they have for review

Allows me to get the full context
Keeps me from aiming at a moving target

Hold workshops

E.g. https://stevenbitner.github.io/git-talk

Any other similar efforts to de-mystify a tool that should be integral to everything that your students do is great

Mandate it in rubric

Rubric for GitHub usage

Ask questions on exams

![rejected]master -> master (fetch first)
error: failed to push some refs to 'https://github.com/course-org/student-repo.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.

What is the difference between Git and GitHub?

  1. There is no difference, it is two names for the same thing
  2. Git is a local program while GitHub is a cloud service
  3. GitHub is private while Git is public
  4. Git is a graphical application and GitHub is command line

What three step process is needed to submit your code for grading?

  1. git add; git commit; git push
  2. github add; github commit; github push
  3. save; compile; run
  4. 1 part vodka; 3 parts OJ; twist of lime

Use it

Not just to distribute assignments

Not just when someone is watching

Share in-class code via a repository

github.com/2020-spring-cop-3022/in-class-code

Constantly reinforce Git usage in class

I commit several times in every lecture

screenshot of commit log from a single lecture

Then it hit me

Image about the killer being inside the house

It's easier if you just send me a zip

Yes! I just made my last push [to GitHub] of the semester

Me First

Consider how hard it is to change yourself and you'll understand what little chance you have in trying to change others - Jacob Braude

Become a GitHub Education Campus Advisor

There's only one thing more contagious than enthusiasm, and that's the lack of it - Stephen D. Brookfield

Be the best you can be...of course, but also try to be the best in your department

Be an exemplar of a real engineer and others will have to follow along or start looking bad

Version control is critical to success

Diff

Rollback

Cloud hosting adds robustness

Computers crash but GitHub does not

Economically disadvantaged students have a mechanism for working on multiple machines

Get the chair on board

George Strait - The Chair

Version control is an industry best-practice, we are failing students

Legal concerns

GitHub ⊂ Microsoft

This needs to be your first sell!

Make cool things but only share them via GitHub repo links

Screenshot of grading tool for Canvas quiz

Drop-in projects and templates

Makefiles, Travis YML, test suites etc.

Grading streamlining

GitHub specific: pull all repos with prefix, create repo from the CLI

Clone all repos and create an Eclipse workspace with all students submissions as projects

Integrate MOSS or other plagiarism tools

LaTeX shells with Makefile for research project sharing

Make it painfully clear that you are not open to doing things wrong

Set Git remote to network folder when they ask you to share source code in Google Drive etc.

cd /Volumes/GoogleDrive/My\ Drive/5007/ &&
git init --bare hotel-project-solution.git &&
cd - &&
git remote add g-drive /Volumes/GoogleDrive/My\ Drive/5007/hotel-project-solution.git &&
git push g-drive master

Wrapping it up

✔ Understand that version control tools are an important facet of developing professionals

▢ Start using Git in every lecture (everything, really)

▢ Get your chair on board
   You are the chair? Oh man, that's awesome

▢ Develop (or steal) some cool tools and talk them up at faculty meetings

▢ Only distribute and accept assignments, notes, etc. via GitHub