This site is an archive; learn more about 8 years of OpenHatch.

[Events] After CCSF: Making Open Source Comes to Campus even more hands-on

Asheesh Laroia asheesh at asheesh.org
Fri Jul 12 22:28:46 UTC 2013


Hey all,

Last Friday, a bunch of the volunteers from the Open Source Comes to 
Campus event at City College of San Francisco met up. Roan Kattouw 
generously let us use the Wikimedia Foundation offices.

== Background ==

Thre are partial conversation logs here -- 
https://etherpad.mozilla.org/notessss -- and I wanted to share in this 
email a particular suggestion for how to make the Open Source Comes to 
Campus events more focused and engaging.

One important thing to note is, per Katherine's amazing notes 
<http://lists.openhatch.org/pipermail/ccsf-campus-staff/2013-July/000053.html> 
about attendance the event went, there were 41 attendees. This might be 
the largest OSCTC event there has been (it's competitive with the MIT 
event run by Jessica McKellar a few years ago).

== Attempting to motivate the learning through hands-on activity ==

Geoffrey Thomas (geofft) brought up an interesting point: right now, we 
probably have more lecture than needed. He envisions a modified format 
where, to the extent possible, students learn by *doing* even more than in 
the current format.

geofft also remarked that since many students don't get all the way to the 
end of submitting a patch to a "real project", and even if they do, they 
might not get feedback on the patch during the daytime. Plus, with 41 
attendees, Judy wasn't able to merge all the pull requests submitted 
against her repository during the Github demo 
<https://github.com/judytuna/the-new-field> (she only merged one at last 
count, which makes sense).

One way to do that is to adjust the schedule so that the first thing that 
happens is students work in groups of 4 with 1 mentor on doing a sample 
open source project of some kind (any of: do some translation for an open 
source project; submit a patch for a hand-picked with a bunch of code 
mentorship in a project where we have tested the 
build/dev-environment-setup process takes a reasonable amount of time; 
submit a trivial text change to a dummy project on Github, like what we do 
with the Github demo at the moment) for the first 1h30m of the day.

In general, the projects I'm imagining students working on in the 
four-on-one groups are ones where the solutions are known before-hand, or 
where they are simply collaborating with each other, rather than ones 
where students are solving fresh issues in communities that are novel to 
them. geofft pointed out that if students are e.g. submitting pull 
requests to Github during the morning, we could have a team of remote 
helpers not physically at the event who are commenting on their pull 
requests e.g. during lunch.

(I imagine that the TAs would stand at the front of the room and say, 
"Come to me if you want to _____" and after 5-10 min for people to 
self-sort, we'd divvy up unassigned people. We could be fairly broad in 
the number of available projects, or we could be fairly narrow.)

One thing we run into is that students (at different colleges and also 
within them) have different degrees of expertise with the command line. 
Mostly we've found we can do without any sort of explicit command line 
instruction, but periodically we find students where we can't. If we work 
in small groups, the mentor can feel free to take 5-10 minutes explaining 
"cd" and the like. One other interesting thing is that, geofft points out, 
if students have non-command-line ways of doing things (like git within 
Eclipse), then a mentor can just let them use that.

Brainstorming, what other skills can be blended into an initial 
small-group part?

* We could have the mentor ask the attendees go through the laptop setup, 
and make sure all the people in the small group are talking successfully 
on IRC. That way, laptop setup help is something that is easy to get.

* Depending on the task, students could be exposed to bug trackers, just 
as a matter of course of working on the task, and ask questions of their 
small-group mentor to learn more about the 'open source communication 
tools' we stress.

* The mentor can point them to 'git diff' and other ways of generating and 
applying diffs.

* The mentor can actually merge students' work, and possibly cause a merge 
conflict and explain how to fix it. (Mostly, I suspect students would 
benefit from seeing things done at the event and then being handed a 
resource they can use later-on, so it's okay if not all the material is 
presented in a completely memorable way if we also focus on creating 
resources we can hand to students for review after the fact.) (This is an 
improvement over submitting pull requests without being the instructor 
having time to give feedback to everyone, which is what happened at the 
Github Demo when we were swamped with >40 students!)

* The best part of Tom Levine's delivery of "How open source communities 
communicate" talk was when he got super excited showing off the bug 
tracker for "CSV Soundsystem", a personal project of his and collaborative 
data-driven music creation project he works on. If mentors have students 
work on a project with some meaning to them, or at least get a chance to 
talk with a small group about what projects they work on, that excitement 
is likely to be shared.

There are two big lecture-type things that we (I think) clearly can't 
blend into the small group presentation:

* History & ethics of free software

* Career panel

Geoffrey semi-seriously proposed removing "History & ethics of free 
software", but I still think something like that information should be 
part of the event, and anyway we have some plans to revise that so I want 
to see if perhaps post-revision we can come up with something extra great 
there. The career panel seems definitely worth keeping (and there are some 
revisions we can make there, too).

Hypothetical proposed revised schedule:

* 9:45am-10:15: Laptop setup, breakfast + coffee, meet & greet (with name 
tags)

* 10:15 - 11:45: Mini projects time, per above

* 11:45 - 12:15: career panel

* 12:15 - 1:00: Lunch

* 1:00 - 1:30: History & ethics of open source, somehow revised

Which leaves the time from 1:30 PM onward.

There are a couple of things we might do with the remaining 3h.

One thing we don't yet do a great job of, in my opinion, is giving 
students a great way to get acquainted with the massive breadth of free, 
open source software that does exist. It might be interesting to have an 
optional session where one teacher gives a session where they explain how 
to find an open source source project they might want to work on, or use. 
(We'd want to write up a curriculum for that, I suspect.) This is pretty 
important in terms of helping them find communities down the road that 
they might want to get engaged with.

Alternatively, that could be something that happens in a 4-on-1 group at 
the start, just before or after (or during) when students dive into their 
toy project contribution session with a mentor.

If we have a variety of activities of a variety of difficulty levels, then 
basically students could just turn around and work with a different mentor 
in another 4-students-1-mentor session, just like the morning, but you 
choose something else. So this way, you'd become exposed to the technical 
tools and/or community tools behind a variety of projects, and this way 
you'd become exposed to the fact that more than just Github exists.

The post-1:30 time, in this re-envisionment, is a little hazy for me 
still, but I think there is something to this general idea.

Again, you can read the original notes here -- 
https://etherpad.mozilla.org/notessss . I'm quite curious what people 
think.

(also curious to geofft if I got his idea basically right)

-- Ashesh.


More information about the Events mailing list