Teaching Undergraduates how to contribute to Open Source

Short Form


Surprisingly, most college students, even those enrolled in a CS program, don't really know what Open Source means. What does Open Source mean? What is the difference between each of the most popular Open Source licenses? What development tools and processes do you need to be familiar with to begin to contribute to an Open Source project? How do you evaluate an Open Source project to determine if it is the right one for you? How do you gain enough confidence to submit your first pull request to a live open source project?


In this talk, I’ll walk through the different topics that students to master on their way to becoming an Open Source contributor. These topics were covered in my Fall 2016 course .

In particular the topics will include:

  • How to choose an Open Source license (why is Copyright law good for open source?)
  • Hands on activities with Git and GitHub to define a GitHub workflow the entire class can uses.
  • How to use a simulated open source project to have teams of students practice their open source development skills.
  • Building Mozilla Firefox on OpenSUSE and fixing a bug or two.
  • How to gain enough confidence to submit your first pull request to a live open source project.

The talk will close with a critique of what worked well and what did not and ask for feed back from the audience about others’ experience starting out contributing to Open Source.

Speaking experience

I've never given this talk before but small parts of this talk will be pulled from my post-Sabbatical talk in September 2014.

Along with nearly daily lectures, I've spoken at various academic conferences over the years including:

Ninth IEEE International Working Conference on Source Code Analysis and Manipulation. SCAM September 2009.

2008 Workshop on Defects in Large Software Systems. DEFECTS June 2008.

2008 International Working Conference on Mining Software Repositories , May 2008.