datacarpentry / rr-version-control

Reproducible Science Curriculum Lesson for Version Control
http://www.datacarpentry.org/rr-version-control/
Other
8 stars 11 forks source link

Change to teaching version control via only Github #4

Closed iamciera closed 8 years ago

iamciera commented 9 years ago

Collaborative Version Control via only Github

These are my notes on my experience showing people Git collaboration through only Github. The files were never put onto their own machines so a lot of the problems that occur from using different operating systems was erased. Overall it was the smoothest time showing people Git and people were generally excited about it. It was an informal group of about 8 people, so very small, easy to handle.

The Activity

Everything is isolated to a README.md file. The activity goals were 1. Intro to Git and Github, 2. allow them to share ways in which they organize their work, and 2. allow them to practice Markdown syntax. I chose organizing their work as a subject matter because I wanted them to get tips from each other and generate discussion. I was with mostly molecular biologists, so the activity encouraged non-computational organization too. I felt asking for how they organized their computational work might intimidate them. Also, I love talking about notebooks!

Intro After showing them how our rrhack group collaboratively made our curriculum material, I discussed motivation and general outline of version control ect. Then went straight into activity.

Total time spent: 2 hours, but we were all pretty chill and experimenting a lot. Could be less.

Steps of Activity

Of course afterward I had to reiterate what they are not doing. I gave them the references on how to learn more AND repositories to practice. I have one here I started last year and maintain with two friends: https://github.com/TheCodingCollective/quotes to let people practice. Also, it might be fun to start a large rrhack practice repository where they can contribute to after the exercise.

Thoughts?

hlapp commented 8 years ago

I like the limited set of technologies (essentially, web only) involved here, which cuts the potential for misbehaving or gone awry software installations and client differences to zero. Also, we can see how easy it is to get started, to document (commit message), to identify (commits), and to collaborate using pull requests (which means another layer of documentation, and remaining in control, in contrast to just giving others keys to the house). We could add tagging (from which it is a tiny step to versioning) as a step up to identifying commits. And perhaps generate a merge conflict and then the instructor demos how to resolve it (rather than have students do that, which would require command line).

kcranston commented 8 years ago

I wrote a lesson for teaching git with GitHub-only and taught it at the Duke Marine Lab workshop.

Pros:

Cons:

Given the length of time that we spend on git, I think teaching how to use git on your own machine is more important that teaching forks and pull requests (everyone collaborates with themselves, and not everyone has collaborators using github). Not saying we shouldn't show collaboration, but teaching that instead of a personal workflow seems out of order.

Perhaps git in RStudio?

hlapp commented 8 years ago

Thanks @kcranston for creating the instructor notes. I think that and the feedback as well as opening #7 completes this issue, so I'm going to close it.