Introducing students to the world of open source: Day 1

No readers like this yet.
open source button on keyboard

From Blake Ross to Linus Torvalds, students are credited with major achievements in the open source community. But that's not the picture Yuvi Masory painted as he sat across the table from me at an OpenHatch meetup in Philadelphia.

Download Free eBook

"My lab is hiring," he explained. "We need students with programming experience and who can find answers to questions. But the students at Penn have never even heard of IRC. They've never contributed to open source."

Yuvi is a graduate student and staff programmer. He implored me to come to campus and give a one-hour talk to undergraduates about OpenHatch, my project to help new contributors find their way in the community.

"Give me a weekend instead," I said.

A weekend of immersion

We scheduled a planning session between Yuvi, myself, and Felice Ford, a Linux-loving classics major at Harvard who was visiting.

We settled on two days of rich interaction. Even though programming students can write code, most never see a bug tracker, and very few learn about version control. This creates a cultural rift where plenty of people bounce off open source projects because of build problems or lack of community leadership. We wanted to be there to help students past problems like that.

We put up a website explaining the event. For Saturday, we planned four one-hour sessions. Each session focused on a different topic and offered students some hands-on exercises. The second day was a more typical "hackathon," a project day where we helped students find their way in projects of their choosing.

To create a sense of commitment from students, and to ensure a tight student-teacher ratio, we limited Saturday to 20 students. To help us prioritize people who were particularly excited, and particularly new, we asked for:

  • One sentence about how they discovered the event website
  • One sentence about their current involvement in open source (e.g., "never heard of it", "run Ubuntu", "wrote most of the Linux kernel")
  • One sentence about something they were excited about learning

Since our goal was to make more students aware of open source culture, we wanted to work directly with students to kickstart a local community. This strategy is unique, as far as we know. You may have read about the Professors' Open Source Summer Experience that teaches professors so that they can run a semester-long class for students.

Will they come?

To get the word out, we asked the University of Pennsylvania's computer science program to email all 250 of its students. We also reached out to students at Swarthmore and other nearby colleges. Yuvi put up enigmatic index cards, and a friend of his put up flyers.

Within minutes of sending the announcement, the emails started rolling in. By the end, we heard from fifty-one applicants. Immediately overwhelmed, we switched from worrying about advertising to reading the applications.

What feels normal to us is apparently extremely exciting to these students. Reading the emails was like reading fan mail. Some wrote such gems as this:

  • "My involvement with open source is primarily composed of unabashed admiration and adulation."
  • "I'm most excited to learn how to initially get involved with a project, I've poked around before, but the initial learning curve has been too intimidating for me to take the plunge."
  • "I have just read a lot about open source software. I'm really interested in how such collaborations create innovative and effective products (Firefox!), as well as the business perspective of how these collaborations are organised and run efficiently."
  • "I'd be excited about learning pretty much anything that has to do with open source software, the communities that create it, and its social impact."
  • "I hope I make it! This sounds terribly interesting!"

I just sat at my computer, reading and re-reading, saying aloud: "This is so exciting! These people are so excited!"

The students came from a wide variety of ethnic and cultural backgrounds. More than a third of the applicants were women, a (slightly) more even ratio than the Penn CIS program itself. Yuvi and I selected the thirty most excited students and told them to meet us on Saturday.

Now we needed teachers. Felice had created #penn on Freenode as a chat room for our burgeoning community. To our luck, a GNOME hacker named Zach Goldberg appeared in the channel, and we convinced him to take a bus from New York to his alma mater. My friends Jonathan Simpson and John Stumpo rounded out the teaching team.

We spent Friday afternoon and evening nailing down logistics. Around 1 a.m., Yuvi and I decided to switch which topics we would teach. Felice organized the students into groups based on their level of experience. Finally, we could all go to sleep.

One busy Saturday

The teachers all arrived by 10 a.m., and we set up wifi for the students to use. Teachers taught the same topic four times in a row, so we had the chance to improve our curriculum. Students switched between teachers and took a whirlwind tour of four areas within the open source community:

  • Communication technologies, like IRC and mailing lists
  • How to get, build, and modify open source code
  • Project organization, including version control, bug trackers, and individual roles within a project
  • Linux and command line skills

We broke once for lunch, and another time to discuss free software ethics in general and licensing specifically. Finally, after students had visited all four modules, we had an open discussion to wrap up the day. About twenty of our thirty students stuck through until the end.

Much feedback was positive. One student said about contributing to open source, "You made it feel a lot more doable." He continued, "You don't have to be a pro programmer to help or contribute something." Another enjoyed the variety of teachers and their "different personalities, the different take on things."

One student was particularly taken by the discussion of principles and ethics behind the free software movement. "It puts everything in a different perspective," she said definitively. However, she found our use of the term "hacker" a jarring distraction.

Toward the end of wrap-up, a student asked us when we would be running another event. At that moment, Yuvi and I looked at each other in disbelief.

Overall, students enjoyed the down-to-earth nature of the event. One student enjoyed our "conversational tone" and explained, "It was good to learn that open source people aren't cyborgs." Another called upon us to "Continue to keep it free [of charge]!"

What's next?

User profile image.
(Photo by Chris.) Asheesh loves growing camaraderie among geeks. He chaired the Johns Hopkins Association for Computing Machinery and taught Python classes at Noisebridge and EFF when he lived in San Francisco. He realizes that most of the work that makes projects successful is hidden beneath the surface.


And an excellent writeup as well. Can't wait to read about day 2.

As an EECS major at Cal, I see so many of my peers gunning for jobs in industry without realizing that they can put their skills to great use in open source. I can't wait for the article on how to hold an event like this.

Also, awesome article!

Hi Sam,

Drop me a line at if you want to get involved in a decal that a few friends and I are organizing as a community for CS folks to get involved in open source.

I love this idea. I commented on the HN post as well, but I think this is a great idea. I'd definitely love to see your material and to try and help get this idea implemented elsewhere. With all of the tech that's here in Austin and the size of UT, I bet we could pull it off here too.

Looking forward to hearing more about this. I've subscribed to your author RSS on the site, but feel free to ping me via email once you have more info up about promoting our own.

OK this makes a LOt of sense dude.

This is a spectacular effort, and I'm following to see what happens after Day 2. I think widespread implementation of these efforts would be awesome, but also wonder why CS majors fail to get these experiences from their course work? My comment got unwieldy, so I posted an article detailing my open source 'dream' scenario:

Keep up the great work, everyone.

These sound like some informative and motivating classes. Any way these lectures/courses could be made available online? Something like that would make a great FAQ link for MANY open source projects. I know a lot of people who aren't in college would love to contribute but don't really know where to start.

He's a Mozilla developer, a professor at Seneca College in Ontario and the founder of their Centre for Development of Open Technology. He teaches <a href="">courses on open source development using the Mozilla project as the basis for coursework. Students work on real issues alongside regular project developers and make lasting contributions to heavily used programs.

He's written extensively about the process on his well-written and thoughtful blog:

I know it wouldn't be quite the same, but I think an online version of this sort of workshop would help a lot of people. I've been programming since the Neolithic era (1980s BASIC dialects), and am reasonably familiar with several languages (C, some PHP, some Java, etc), but don't really know where to start in terms of getting involved in open source projects. An "open source 101" self-paced online course sounds like it would be great for the thousands of folks like me out there who might not be able to make it to an in-person workshop.
Some things you could address:
* What is GIT? Why should you care? How can you use it?
* How to match your abilities with projects needing help
* What is the etiquette of working on these projects? Can anyone just jump in and start contributing, or should you contact some coordinator first?

Thanks -- your workshop is a fantastic idea; an online version would not be to replace it, but to bring some of that enthusiasm and information to the masses.

Yes please... if anyone finds out more about an equivalent online, please post!

Yuvi Masory and Felice Ford played a huge role in organizing the workshop. I want to make sure Felice in particular gets credit, since I somehow did not mention her in the article.

Felice and Yuvi handled all the logistics, getting all the details down to a T -- that included asking Github for sponsorship, staying up late the night before to organize the students into groups, reserving rooms, and earning the support of Penn computer science. The workshop was just a pipe dream until Yuri and Felice nailed down all the pieces. My hat's off to them!

Further thanks go out to John Stumpo, Jonathan Simpson, and Zach Goldberg, who all came in from out-of-down to help these students get their feet wet in open source.

Good to see opensource material being introduced to young people. They are the future.

Could you share the course material? I myself am interested in some of the topics. I could use some introduction to these topics myself.

However, for the girl who found the correct use of the term "hacker" a jarring distraction, well, no sympathy from me for believing the word abuse from the media (and the IT security industry and assorted other nitwits). Look up the jargon file sometime.

On communications, I hope you do teach RFC1855 and IRC netiquette. It's so obvious to "us" that we think everyone will just pick it up (and tangentially, it worked mostly the same way on fidonet, down to quoting and trimming requirements!), though that hasn't been feasible since september, and anyhow this is an accelerated instruction so might as well explain how /proper/ quoting works and what definitely not to do on lists and on IRC and so on.

we need to pick up the people where they are. if they have been taught all their life that hackers are bad, then no amount of reading the jargon file is going to change their feelings. it <strong>is</strong> a distraction.

greetings, eMBee.

As the open source office for the University of Granada, in southern Spain (, we organized something similar last year ( , translate via Google Translate). We did no selection on students, and around 30 showed up, some of them from out of town, and three of them from the Translation and Interpretation degree. The idea was to present the projects they were going to work in on Friday, give them some ideas on open source development, and then let them choose a project to hack away during the weekend, reporting results the following Monday. It was quite a success, and we intend to replay it this year; it will be probably be done too in other universities in Andalucía, the region Granada is in.
It might be a good idea, however, to select people in advance. Cheers!

I've read your whole article. It really inspires me so much, look forward to the 2nd day report.

please, do plublish a tutorial about how to contribute with open source project, with one simple example ...

get source from sourceforge / github / launchpad

it would be very useful...

Thank you for this well-needed initiative. It is one which I had also undertaken with some local programmers here in Shenzhen, China (especially given that open source is still less understood here, even by those who use it). (brettz9 at_ yahoo for any in the area).

While I know you have to make do with the technologies that exist, I think the need for this project points to the need for version control to be performable through wikis. There would be a much lower barrier to entry, if someone didn't have to go through the initial hassle of setting up a repository clone, leave their browser, etc., at least for their first experience in making a contribution, not to mention being helpful for advanced users who just noticed a small typo, or wanted to make a quick patch for a project which they did not care to take the time to download.

Version control environments could really take a lesson from the meaning of "wiki" as "fast" and hopefully get over the hazing-like mentality of, "Well I had to learn how to do it, so you have to learn it before you can get involved.".

While this is a little off-topic, maybe it could inspire facilitating the issue more by addressing one of its root problems.

Creative Commons LicenseThis work is licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License.