Teaching Open Source Practices, Version 4.0

No readers like this yet.
Doodles of the word open


In 2007, Sean O'Sullivan, one of the founders of MapInfo, graciously made a donation to his alma mater, the Rensselaer Polytechnic Institute in Troy, NY with the specific goal of creating a center for the promotion of open source among undergraduates:

"We have a duty to our fellow man to improve life on this planet. While technology has always been a huge enabler in improving quality of life, we now are at a point where, through open software and open content, these improvements can come at close to zero cost, opening up opportunities to all," said O'Sullivan

This donation gave birth to the Rensselaer Center for Open Source (RCOS), where every year about 100 undergraduates receive stipends to work on open source projects.

RCOS also identified a need to provide formal education on the practices of Open Source software, and crafted an elective course which has been taught for the last three years during the fall semester. The course is offered to EE and CS majors in particular.

The form and content of the course has been evolving over time. In 2009, it comprised the following syllabus:

  • Economics (3 lectures)

  • Intellectual Monopolies (2 lectures)

  • Software Patents (1 lecture)

  • Open Source Licensing (2 lectures)

  • Case Studies (CMake / VTK / GNOME / KDE...) (5 lectures)

  • Business Models (1 lecture)

  • Software Development Process (1 lecture)

  • Open Access Publishing (1 lecture)

  • Wikipedia & peer production (1 lecture)

  • Hands-On Exercises (gcc / kernel / sockets)

All the teaching materials are made publicly available under the Creative Commons by Attribution license and can be found here.

The course runs for 16 weeks, with two sessions of 1 hour 45 minutes every week. The typical session is divided in 1 hour of lecturing (really: lecturing!), and 45 minutes of hands-on activity.

Examples of hands-on activities have been:

Grades are partitioned into 75% for quizzes (about 10 of them) and 25% for a class project that requires students to participate in an open source project of their choice.

Instructors in the course were volunteers form Kitware, a local open source company with close ties to RPI, and included the developers of open source projects such as CMake, VTK and ITK. They were complemented with invited speakers who offered talks to the larger campus community.

Invited speakers have included:

  • Michael Tiemann – President - Open Source Initiative, VP Open Source Affairs - RedHat

  • Daniel Frye – VP Open Systems Development - IBM

  • Chris DiBona - Open Source Programs Manager – Google

  • Kent Quirk – Linden Lab

  • Sandro Groganz – InitMarketing (Open Source Marketing)

  • James Cherkoff – Collaborative Marketing

  • Willy Walker – GNOME Accessibility Project

  • Bo Lipari – Executive Director, New Yorkers for Verified Voting

The course is a work in progress and we have been learning as we go.Here are a few things that we have had trouble with, which are most likely the result of our lack of pedagogical skills...but still may be helpful if you plan to implement a similar course:

  • Just expecting students to take initiative doesn't necessarily work.

  • Grades, Grades, Grades: There must be clear rules for them.

  • It was difficult to convince students to read, in full, any of our strongly recommended open source books.

  • When students search for FOSS projects to work on, it has been surprisingly difficult to evoke response from open source communities (more on this below).

  • We need a lawyer to help us with copyright, patents and licensing talks. Students will come up with the strangest, yet interesting, scenarios as questions and we are left speechless.

Things that we found work well:

  • TED Videos are a great pedagogical tool. We want more of them!

  • A lot of material about copyright is available online, particularly in YouTube.

  • Invited speakers are key to create connections between the students and the realities of FOSS.

On August 30, 2010, we will start Version 4.0 of the course. We are looking forward to this edition, because this year we come armed with three really big guns:

  • The support of the TeachingOpenSource community

  • The OpenHatch project, that will enable students to efficiently find suitable FOSS projects to work on.

  • A collaboration with HFOSS (Humanitarian FOSS), that we anticipate will also be a major source of student projects that are satisfying enough to make them forget about grades.

Through our course, imperfect as it is, we have learned a lot and would love to hear your ideas and suggestions for improvement. We would also enjoy hearing ideas to promote the creation of similar courses in other higher education institutions.

Ideas outside of the traditional teaching practices are particularly welcome!

User profile image.
Luis Ibáñez works as Senior Software Engineer at Google Inc in Chicago.


We have a couple courses being offered on intellectual property and the law offered here at RIT, although they don't center around open source. We also have a course focusing on development of the OLPC platform. Lately I have been thinking that a course focusing on development for the Linux platform would be pretty neat. Start with an introduction into the community and then spend the rest of the quarter learning about the tools in Linux. I have the feeling that many students in our school learn the syntax of programming, but then really aren't sure where to go from there. I also don't think we cover things like packaging, bug tracking, tesing, or secure programming.

I agree with you,

A course focused on software development on Linux will be of great interest.

Many of the students who attend our course are actually expecting to learn about the use of FOSS development tools, and we don't focus on these tools as much as they would like. It will be interesting to include in such course the notion of large scale development, since most engineering students do not get exposed to the specific issues that arise when a project has more than 100K lines of code, or more than five developers. I believe Union College has a course on "large scale software development". [<a href="http://www.union.edu/applications/catalog/deptView.php?mode=catalog&year=2006&code=CS" target="blank">http://www.union.edu/applications/catalog/deptView.php?mode=catalog&year=2006&code=CS</a>].

Many of the FOSS practices can be introduced in a class directly from the need of coordinating a large distributed team of developers who deal with a large code base.

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