Thanks for the great report, Dena!


On Tue, Jan 9, 2018 at 7:23 PM, Strong, Dena L <dlstr...@illinois.edu> wrote:
> Reporting in: I just taught from Steve’s version today, and it went
> fantastically. I’ve never taught Git before. I really liked teaching with
> this structure – the Dracula thing never made sense to me, whereas both the
> audience and I didn’t have any problems following the “all right, we’re
> adding new features to software under development” description.
>
>
>
> I would enthusiastically endorse anyone who wants to teach from this version
> to give it a go!
>
>
>
> (I was particularly lucky since Maxim Belkin, my co-instructor, is
> brilliant, friendly, and enthusiastic! My original co-instructor had a house
> emergency and I’m really glad Max could step in. I would have been flailing
> a lot when the IT pros I was teaching asked things outside my knowledge and
> expertise level, but I would have been doing that with any lesson plan.)
>
>
>
> The TL;DR and a physical mechanism for conveying concepts below:
>
>
>
> This audience: 6 IT professionals ranging in experience from “I’ve never
> touched Git before” to “I’ve been using it on and off for a few years, but I
> still don’t get it.”
>
>
>
> The method: Steve’s non-Dracula version of git-novice, a slide deck for
> supplemental concept walk-throughs, and a bunch of file folders for physical
> representation of what was happening with each edit in each step. All my
> links are collected up at https://tinyurl.com/itpro-gitnotes.
>
>
>
> On the potential confusion point Steve mentions below: Two of our pairs were
> OK with the fork vs clone thing and worked out how not to have name space
> collisions and knew where they were at. However, our third pair was
> struggling and Maxim helped them out a lot. As suggested below, I think
> revising it so people are forking from a different repository than you’ve
> just cloned from would help reduce the name space collision headaches. And
> people were also finding that they could just accept the pull request
> because they already had access after having traded authorizations for
> collaboration. (So maybe have them fork from the instructor’s version
> instead?)
>
>
>
> We also discovered that either there weren’t instructions explicitly telling
> you to go up a directory from your previous working directory before running
> a clone command, or it was well enough buried that 2 of our 6 ended up
> cloning their new stuff into the folder they were already working in. So
> more clearly spelling out “before you start a new project, go back to your ~
> directory” could be helpful to add too?
>
>
>
> Because these were IT pros, they were more interested in complex workflows,
> resets, “hitting the undo button,” and continuous integration capabilities
> than in open science and R studio, so we went off the lesson plan at the end
> of step 9 and Max freestyled branching, merging, resets, and travis-ci.
>
>
>
> I think it would be worth considering adding “how do you roll back” to the
> course – they were really interested in branching and git reset and git
> checkout, which don’t get touched on in the major material. One poor
> individual had been manually undoing all his changes to get back to matching
> the master version whenever he wanted to retrace his path, and I think
> branches and git reset have changed his world. Food for thought?
>
>
>
> A teaching aid I found helpful: A “folders and notes” setup for physically
> demonstrating what goes where at what step. (Image attached – in actual
> class I put working-space on the left and repository on the right to match
> reading order; this photo was when I was setting up mirrored versions to
> test drive.)
>
> ·        Working directory: Papers in front of you
>
> ·        Edits: Sticky notes that get put on a thing in your working
> directory
>
> ·        Stage: A folded-over piece of paper labeled “stage” (because I only
> had manila or hanging folders, and the inner folders were commits)
>
> ·        Commit: “You take everything that’s in stage, and put it in this
> manila folder. Then the manila folder goes into your local repository
> hanging folder. You get more and more manila-folder commits as you add new
> versions to your local repository, and each of them has its own label –
> that’s this hash tag right here…”
>
> ·        Repositories: Two hanging folders of the same color, one in front
> of the person (local) and another in a box at the end of the room
> (remote/GitHub.com).
>
>
>
> It seemed to help people visualize the differences between add, commit, and
> push as I walked them through things, and the manila-folder layer gave some
> starter ground work for the difference between clone (“Blue wants to edit on
> Pink’s project, so Blue grabs a manila commit folder from Pink’s remote
> folder and puts it in Blue’s local folder in front of them”) and fork
> (“Blue doesn’t want to edit in Pink’s repository, Blue wants their own. So
> first we copy Pink’s manila folder commit into Blue’s remote directory, and
> then Blue has their own working space for this project, and here’s how Blue
> can give Pink some edits with a pull request.”) I hadn’t worked out how to
> simulate branching because I knew Maxim would handle that the way he
> preferred to, but everything up to that point seemed to work fine.
>
> I’d never thought I’d feel comfortable teaching Git, because I don’t use it
> in my working life. But we needed teachers, so I dove in, and I loved this
> lesson structure, and I want to give a huge thank you to both Steve (for
> providing the lesson structure) and Maxim (for being the safety net and
> expert guru all at the same time). :D
>
>
>
> From: Discuss [mailto:discuss-boun...@lists.software-carpentry.org] On
> Behalf Of Bond, Steve (NIH/NHGRI) [F]
> Sent: Tuesday, December 05, 2017 1:38 PM
> To: Software Carpentry Discussion <discuss@lists.software-carpentry.org>
> Subject: Re: [Discuss] Git and Github lesson (follow-up)
>
>
>
> Hi All,
>
> For a bit more context, we decided to strip the Dracula backdrop out of the
> git lesson completely to give our workshop participants another opportunity
> to write little scripts. The example we settled on was unit conversions
> (dollars-to-cents, minutes-to-hours, etc.). We also wanted to change the
> focus to the GitHub UI, because that is how the other instructors and I
> generally manage repositories on a day-to-day basis. It seemed weird to
> spend time showing students how to initialize a local repository and then
> turn around and say they probably won’t often do it that way.
>
> In practice, the reworked lessons have gone reasonably well. Depending on
> the class, though, it has gotten a bit sketchy when we move into
> collaboration and conflict resolution. In the lesson as currently written,
> students are asked to pair up and then create repositories that they then
> reciprocally share. Unfortunately, people tend to get confused about which
> repository they are modifying, which one is their own, and which is their
> partner’s. It might make more sense to have the instructor create a central
> repository that everyone clones and edits. Then we could create a conflict
> that affects everyone the same way.
>
> It’s been a while since our last workshop, so the material hasn’t been
> getting much attention. If there is sufficient interest from the community
> though, I’m happy to facilitate further refinements on my own fork or work
> with the core team on the main SWC version.
>
> Best,
>
> -Steve
>
>
>
>
>
> From: Anelda van der Walt <anelda.vdw...@gmail.com>
> Date: Tuesday, December 5, 2017 at 10:39 AM
> To: Software Carpentry Discussion <discuss@lists.software-carpentry.org>
> Subject: [Discuss] Git and Github lesson (follow-up)
>
>
>
> Dear all,
>
> Back in July 2017 I started a conversation on the discuss list about
> alternative Git/Github lessons that exist in the Carpentry community [1]. So
> many of you responded with suggestions about how you have dropped the
> Dracula example or augmented it with episodes on things like Git GUI or
> Github and more. Thanks very much to everyone who responded.
>
> One of the first lessons I was pointed to, was Steve Bond's (copied on this
> email) lesson [2] which was originally forked from the SWC git novice
> lesson, but introduces Github and constantly show how to do things both in
> git and github.
>
> Last week we ran a workshop at NWU where we trialled Steve's lesson. I chose
> this lesson as it was mature enough to use off the shelf (Steve had put a
> lot of effort in to make sure the lesson is refined).
>
>
> Feedback from the workshop:
>
> It was great to introduce the power of local repositories and connect that
> with online repositories and collaboration.
> The lesson makes version control much more accessible even for learners who
> are not yet comfortable on the commandline.
> The switching adds cognitive load but we went very slow and got good
> feedback.
> I veered off the script to spend some time introducing all the things that
> can be clicked on in the Github interface and people found that very
> valuable, but I don't know how to incorporate this as an episode in the
> lesson making it practical?
> We didn't get to the collaboration part even though we had time to spare as
> people's brains were fried by late Friday afternoon. We ended the workshop
> on a high. The lesson includes screenshots for every step of the way so I
> recommended people referred back to the lesson when they get to
> collaboration and conflict resolution.
>
> Afterwards a colleague did a short demo of how she uses Git from RStudio and
> another colleague showed the same for his text editor (Visual Studio Code
> [3] - available for Mac, Windows, Linux). This was really helpful to show
> people how they can use even better tools to be more efficient and adopt
> version control easier.
>
> I'm wondering if the community would like to try out Steve's lesson as
> alternative to Dracula and provide some feedback? Maybe this is a low
> hanging fruit waiting to be picked and solve some of our git
> teaching/learning problems?
>
> Steve already did most of the work...
>
>
>
> What do you think?
>
>
>
> Thanks,
>
>
>
> Anelda
>
>
>
> [1]
> http://lists.software-carpentry.org/pipermail/discuss/2017-July/005319.html
>
> [2] https://github.com/biologyguy/git-novice
>
> [3] https://code.visualstudio.com/docs/supporting/faq
>
>
> _______________________________________________
> Discuss mailing list
> Discuss@lists.software-carpentry.org
> http://lists.software-carpentry.org/listinfo/discuss
_______________________________________________
Discuss mailing list
Discuss@lists.software-carpentry.org
http://lists.software-carpentry.org/listinfo/discuss

Reply via email to