Friday, April 9, 2010

Open Source and Computer Science Education

Today's columnist is Ralph Morelli from the Humanitarian FOSS Project. He writes:

In his March 2006 column in the Communications of the ACM, ACM President David Patterson urged Computer Science (CS) educators to "Join the open source movement." Despite the widespread use of the open source development model in the software industry, Patterson observed that "most schools still teach 'write programs from a blank piece of paper' programming."

Patterson noted that students could be inspired and attracted to CS by getting engaged in open source development projects in the real world.

That was in 2006. Today there are several college-based initiatives that have taken up Patterson's charge. This article describes three such efforts.

In January 2006 as part of an independent study project, a small group of students and faculty at Trinity College downloaded the open source Sahana disaster management system, installed it on their server, and began studying the source code. Sahana was developed in Sri Lanka by a group of volunteer programmers in the immediate aftermath of the 2004/5 Asian Tsunami. Over the next several months the Trinity group designed and built a Volunteer Management module that was incorporated into the code base in December 2006.

In addition to learning how to manage and use the tools of the typical open source development environment such as Eclipse, Sourceforge, CVS, and SVN, Trinity students also learned how to interact with programmers and developers in Sahana's development community, most of whom are based in Sri Lanka. Two students eventually went on to earn committer status in the Sahana project, thus becoming full-fledged members of the Sahana project team. You can't really get more 'real world' than that.

Building on Trinity's Sahana experience, a group of faculty at Trinity, Connecticut College, and Wesleyan University sought funding from the National Science Foundation under its CPATH (Computing Pathways to Revitalized Undergraduate Education) program and started the Humanitarian Free and Open Source Software project (HFOSS). The project's goal is to get undergraduates engaged in building F/LOSS that benefits the public good ("humanity") as a way to help revitalize undergraduate computing education. To date, F/LOSS concepts and practices have been introduced in a variety of introductory and advanced undergraduate courses.

Since 2007 the HFOSS project has engaged undergraduates in several F/LOSS development projects, including OpenMRS and GNOME. Source code from these projects has been studied and used in courses, independent studies, capstone projects, and summer research internships. CS students have learned about the F/LOSS movement and the F/LOSS development and distribution model. And HFOSS students have made real contributions to these projects, including helping to deploy Sahana in China during the 2008 earthquake and in Haiti during the 2010 earthquake.

Reactions from HFOSS students have been overwhelmingly enthusiastic and positive. A typical sentiment expressed in course evaluations and questionnaires is: "after taking this independent study I realized that I can be in the lab, doing what I am interested in, and still make a humanitarian impact and help society."

This summer the HFOSS project will expand to several new schools, including a woman's college (Mount Holyoke College, in Hadley, MA), a community College (Bergen Community College, in Bergen, NJ), and a traditionally black college (North Carolina Central University in Durham, NC). The goal is to be able to provide summer internship opportunities to students around the country, getting them engaged in building software that serves their communities -- a kind of Computing for America.

A second project that is helping promote open source education is TeachingOpenSource.org (TOS). TOS was established in March 2009 "to serve as neutral collaboration point for everyone involved in Teaching Open Source." Lively discussions on TOS's mailing list focus on open source education models, funding opportunities, community relations, and other issues. A group of TOS participants led by Greg DeKonigsberg of Red Hat has just finished a new textbook: Practical Open Source Software Exploration: How to be Productively Lost, the Open Source Way. The book is freely available under a Creative Commons BY-SA license.

TOS is also sponsoring a number of week-long immersion experiences for CS faculty. Several POSSEs (Professor Open Source Summer Experience) are being planned this year at Worcester State University, RIT, CMU, and elsewhere. And through TOS's efforts there will be an Education Track at this year's OSCON (O'Reilly Open Source Convention) in Portland, OR in July.

In addition to HFOSS and TOS, open source projects and centers are springing up at other colleges. The Rensselaer Center for Open Source Software has started a number of FOSS development projects that are used to anchor classes in computer science and other disciplines. The Center's goal is to support "the development of open software solutions to promote civil societies in the United States and around the globe."

Rochester Institute of Technology has the FOSS@RIT initiative, which hosts an One Laptop Per Child (OLPC) users group and focuses on educational game development. At the University of Waterloo, the Undergraduate Capstone Open Source Projects (UCOSP) brings together undergraduates at several universities in Canada and the U.S. to collaborate on open source capstone projects. This term, participants from nine different schools in Canada and the U.S. are collaborating on seven different F/LOSS development projects.

As these examples show, there is a growing interest in F/LOSS within academia. It is estimated that students make up around 30% of contributors to F/LOSS projects. CS faculty are beginning to recognize that it's time to incorporate the F/LOSS model into the undergraduate curriculum. While CS educators are still well short of Patterson's call to "join the open source movement" things are clearly headed in the right direction.

No comments: