Open source software is becoming a dominant force in the software world and the world in general. Unfortunately, many universities still teach computer science without any mention of this recent advance. In the fall of 2007, Rensselaer Polytechnic Institute (RPI) set out to change this.
The Rensselaer Center for Open Source Software (RCOS) was established with the goal of providing an environment where students can learn about open source software while sharing knowledge, experience, and insight with each other. Students can work on existing open source projects or start their own, honing their technical programming skills in an environment that allows them to work on real-world sized and styled projects while surrounding themselves with other students in many programming disciplines. They can share knowledge, share skills, and learn from others' strengths and weaknesses.
Programming skills are typically what one would think of as the most important factor in the success of an open source project. However, arguably more important but often overlooked, is the social and community interaction that takes place. RCOS does not formally teach any programming techniques. Learning takes places as part of the natural flow of things within the talented group of student members.
Instead, RCOS provides a place for students to simulate and practice the types of interactions (such as feedback, code reviews, or status reports) that they would experience working with a large open source project. Feedback on program design and implementation is given in the form of presentations, question and answer sessions, and informal code reviews.
Giving and receiving feedback is critically important to the success of open source projects, so practicing this in a non-threatening environment like RCOS is an excellent starting point for getting into real-world open source development.
Several student projects have been particularly successful. To track the progress of student projects, one student developed a Dashboard application. The Dashboard catalogs all student projects, contributors, code repositories, and project wikis and blogs. Another student worked on a lightweight presentation application, Ease, which has received some attention from omgubuntu.co.uk. A web application written by yet another student, Course Scheduler, helps students select their course schedule and then has it vetted by the university.
In addition to this project-based setting for students, RCOS funds a formal course at RPI. This course, Open Source Software Practices, has been previously highlighted here.
There is no reason that this open source feedback and review model cannot be used in other areas of study. Many non-software coursesrequire students to give a "final report" to the class at the end ofthe project. At this point, it is too late. Feedback that could comeout of this will never be acted upon. One idea: apply the "release early, release often" principle to semester projects of any type. With this approach students are more likely to receive feedback they can use to improve their project. The faculty must of course facilitate this by requiring more frequent, thoughtful peer critiques, but the payback for the little bit of extra work should be much more impressive resulting projects.
We hope that other universities will follow in the footsteps of Rensselaer and RCOS. Fostering and promoting open source development and practices in students will certainly lead to an even stronger awareness in the next generation of scientists and engineers.