Teaching Open Source Development in the College Classroom

Short Form


Having attended the Open Source Bridge the last few years and contributed to open source myself, it is clear that there is a disconnect between open source development and the academic Computer Science world. Students are often intimidated by open source projects because they are run so differently and require a different set of skills than academic projects. This Fall, I will be teaching a course on Open Source development at Pacific University. I want to lay out for you the activities, topics, and projects that I plan on covering to see if these mesh with your experience as open source developers.


Many students leave their academic experience lacking the practical skills necessary for contributing to open source projects. What skills are missing from the academic experience that would help students enter the world of open source development? How is open source development different from classroom development or from closed source development at a company? How can we teach students the tools and techniques they need to be confident in open source development? How can we give students a positive first experience with open source and nudge them on to in-the-wild open source projects? I have some ideas but I would love to have the community’s input!

My GitHub repositories (ContactManager-Example-language) that will be used in the Fall course.

This presentation will consist of identifying the important skills, tools, processes, and techniques necessary for contributing to an open source project. I’ll talk about the lifecycle of a typical academic classroom project and describe how that lifecycle contrasts with the open source development model. Further, I want to lay out my ideas for how to allow students to practice these skills in the academic setting. Our curriculum is a traditional Computer Science model; C, C++, and Java feature heavily. Very little web development is required in our program so this course will focus on open source development using C, C++, and Java.

Edit (4/2/2014): This course will also contain a language component, either Ruby or Python, to allow students to choose from a larger selection of open source projects to work with.

This course, and this presentation, are heavily inspired by the Open Source Bridge conference, OpenHatch, and Emily Stolfo’s 2013 Open Source Bridge talk.


education, learning, making, community

Speaking experience

I have spoken at a number of academic conferences as well as very often standing up in front of a classroom and attempting to lead a discussion.