Where most computer science departments emphasize theory and mention free and open source software (FOSS) only indirectly, Seneca College in Toronto, Canada, offers a different approach: a hands-on introduction to the community in partnership with the Mozilla and Fedora projects. Now in its third year, the program is expanding rapidly and receiving attention from other academic institutions that hope to imitate it.
According to Chris Tyler, one of the professors involved in the teaching and development of the program, Seneca College has been using FOSS in its courses for 15 years. However, when Mike Shaver and other evangelists from Mozilla's Toronto office began giving presentations on free software at the college, professor David Humphrey started working on Mozilla-related projects with students outside of class. As this extracurricular work began being integrated into the course material, it led to a $50,000 grant from Mozilla in 2006, and an additional $100,000 grant in 2007.
This year, the Fedora project began a similar relationship with Seneca, due largely to the efforts of Chris Blizzard, a former employee of Red Hat, Fedora's parent corporation, who now works at Mozilla. Red Hat also gave an undisclosed grant to Seneca.
Currently, Seneca offers four upper undergraduate course that involve Mozilla, two each in the Bachelor of Software Development and the Computer Programming and Analysis Diploma. It also offers the week-long Real World Mozilla course. This fall, thanks to Fedora, it will add the graduate-level Linux/Unix System Administration program.
So far, approximately 150 students have taken Seneca's undergraduate courses in free software. "About half the students maintain some sort of involvement in open source," Tyler says. One recent student contributed a plugin to Firefox 3 that Mozilla developers said couldn't be written, and several have gone on to become Mozilla interns and employees.
Those involved explain that the Seneca programs are necessary because familiarity with the free software world is not something that traditional computer science can teach.
Greg DeKonigsberg, Fedora's liaison with Seneca, says, "There's a lot of knowledge that's just not taught that you need [in order] to participate in an open source project. There's a difference in how open source is approached [compared to] traditional software, and it's not like you can learn it in a book. It's very much an apprenticeship model."
Frank Hecker, executive director of the Mozilla Foundation, makes the same point, referring to the learning process within the free software community as "osmosis."
"What they're doing is not something you can capture in a course book or video," Hecker says. "Part of the reason that the Seneca project works is that you don't just have students working on an isolated project, where they do the project on their own, they hand it in, and the teachers evaluate it. Part of the process is that [students] actually get directly involved in the community. they don't just submit code; they have to get involved in the Mozilla development processes. They're really learning as a sort of junior person to the more senior members of the project how to be a Mozilla developer. And there's no Big Book of Mozilla that will tell you everything you need to know. You have to learn by doing."
Among the knowledge that students learn via the Seneca projects, Hecker suggests, are: "How do you submit bugs? How do you get reviews for your code patches? How do you participate in the build process and don't mess it up?"
DeKonigsberg says, "These are skills that people just don't learn at the undergraduate level."
Even those students who do not continue working in the FOSS community benefit, Tyler suggests. They learn to work with code bases several orders of magnitude greater than those in traditional student projects; pick up skills in project management, collaboration, and testing; and become acquainted with FOSS -- an acquaintance that is becoming increasingly necessary in the general high-tech world. And, of course, if they complete their FOSS projects, they have a real-world example of their coding skills to show employers.
"Trying to teach these things artificially, either by creating a false open source community for the purposes of the class, or teaching them outside the community, is not effective," Tyler says bluntly. "This is a very applied, pragmatic approach. We've really become convinced that it's the most effective way to teach open source development."
The benefits to projects
That makes the benefit to Seneca's students clear, but why are Mozilla and Fedora so willing to work with Seneca? In Mozilla's case, part of the reason may be that some of the grant money goes directly toward paying the costs of Mozilla employees who fly in to give presentations. However, there are also more indirect benefits for the projects involved.
"From a Mozilla perspective, it wasn't just promoting Mozilla in general," Hecker says. "It's also a training facility to provide additional people to work on the Mozilla project." By contrast, he explains, people who volunteer in their spare time take much longer to reach the point where they are major contributors or potential employees. In effect, he says, the Seneca program is a way for Mozilla to actively develop and shape potential contributors.
Although the Fedora part of the program is still being developed, DeKonigsberg hopes for similar advantages for his project. In addition, he points out that "Students bring a lot of perspective that [those already in the project] can miss. One of the problems of working every day in a project is that you become desensitized to the pain points of new contributors. But to students, those pain points are obvious if you're paying attention." In other words, by listening to students, DeKongisberg hopes to improve the prevailing practices within in Fedora.
Even if students don't stay with Fedora, but use it as a gateway to other FOSS projects, DeKonigsberg says, "That would be a huge success. Our supply chain is the global commons of free software, which means that it is in our direct interest to do whatever we can to grow that commons."
Exporting the lessons
The addition of Fedora to the Seneca programs is only the beginning, Tyler says. Another project is scheduled to start working with the college in the fall, and Tyler says that he is also talking to several other projects about their participation.
Not only that, but, according to Hecker, Seneca has "received a lot of interest from France, Japan, and elsewhere about how to do similar projects, both for Mozilla and other open source projects."
To help satisfy curiosity about the college's programs, Tyler and Humphrey have added an educational track to Seneca's Free Software and Open Source Symposium this year, and Tyler is scheduled to speak at the upcoming Ottawa Linux Symposium on the college's programs.
Seneca's FOSS instructors are also in the early stages of developing a FOSS curriculum -- a venture in which Fedora in particular hopes to be actively involved. "My ideal goal would be a completely open source curriculum about the open source development methodology," DeKonigsberg says.
By any standards, Seneca's FOSS projects seem an innovative success. The reason, those involved agree, is that as a polytechnic, the college, as Tyler says, "specifically has a mandate for applied, pragmatic applications."
By contrast, Hecker says, traditional computer science departments at larger academic institutions are more interested in research, with the ultimate goals of creating new graduates, prestigious publications, and, ultimately, valuable patents. "Because Seneca is not a traditional computer science school, it was willing to think outside the box and think about serving its traditional mission, which is helping people to go out and get jobs," Hecker says.
DeKonigsberg says much the same, suggesting that, by working with the FOSS community, where sharing information is a prime virtue, Seneca is helping post-secondary education return to its original ideals.
"This is what universities are supposed to be about -- the creation and dispersal of knowledge," DeKongisberg enthuses. "Increasingly, universities are about locking up knowledge for profit. My hope is that we can make sure that, at least in the software world, we're putting up a good fight against that happening."