Workshopping Git

Workshopping Git

On Thursday, August 25th, I led ACM's first general body meeting of the 2016 semester. ACM@UC, UC's student chapter of the Association for Computing Machinery, is the club that acts as a catch all for the computer science students, to grow both technically and professionally.

The Thursday meeting was the first meeting I've run as president of a club. We had 72 people sign in, with an estimated actual attendance of closer to 80 or 85. At the meeting, I introduced students to what ACM@UC does, what we have planned for the semester, and finally, I led a short workshop on git.

If you're unfamiliar, git is a tool for distributed version control. It is very much the current big thing. Git is must-have knowledge, especially for students. Git and Github provide students with a way to both collaborate and showcase their work. The earlier a student can gain a basic of understanding of git and the concepts behind it, the better. Knowing this, the ACM@UC exec team and I decided that git would be an appropriate topic to workshop at our first meeting.

I wrote the workshop from scratch, following other git tutorials and my own experience for inspiration. The workshop starts off relatively simple, with installing git and creating a Github account. From there, I led members through creating a repository, the anatomy of a git commit, and finally forking from a git repository. I asked members to fork a repository I had created specifically for this workshop. It's a simple webpage, with a small amount of small amount of javascript code. I chose a webpage and javascript in an effort to ensure that all attendees could run the program. Many students at this meeting have never written code before, let alone installed python or a C++ compiler.

Once the attendees had downloaded their fork of the repository, I led them through creating a branch, explaining what a branch was and how it streamlines git collaboration. I had members make simple changes to the code, that could mostly be copy and pasted with minor edits. Together we added a message box that told the user "Congrats on Learning Git" when a button was clicked. Finally, I taught pull requests, as members then submitted pull requests to the original repository with their changes.

This workshop was a great learning experience for me. When I practiced the workshop alone, it took me about 25 minutes to work though. I knew that it would take extra time, waiting for people to configure their systems and ask for help when stuck, but I didn't anticipate the workshop running for about 50 minutes. If I did the workshop again, I probably wouldn't include actually modifying code. I skipped over why I was adding the code I added, and instead focused on copy and pasting the code in. It worked, but I think a lot of student got caught up there. Of the 80 some members in attendance, 37 got as far as forking the repository, 7 got to the pull request part. I think the vast majority of students got caught up between these steps on the code changes. As for 37 getting as far as forking, I think that's not too bad. About 1/3 of the meeting already knew git and helped others, and a healthy number of students had other commitments leading to leaving early, or neglected to bring a laptop.

I'm happy with how my first workshop and meeting went, and I look forward to leading many more this semester.

Click here for a link the workshop I gave, including the slides and source code.