UCOSP (Undergraduate Capstone Open Source Projects) brings together students from all across Canada to work together on open source projects. Students learn first-hand what distributed development is like. Each team has students from two or three schools, and uses a mix of agile and open source processes under the supervision of a faculty or industry lead. Heading into our fourth year, we believe we have developed a good model for introducing students to open source projects during the regular academic year.
In the past year, we had 78 students from 15 universities across Canada working on 15 different teams. The projects range from web and mobile applications to video processing. We would like to thank the project mentors, faculty mentors, and our sponsors.
Why are we doing this?
In academia, we have long had students working on project courses and even sometimes on open source projects within individual universities. By collaborating with multiple universities, we offer students opportunities that just were not possible at a single institution. UCOSP students are typically enrolled in an independent study course as part of a full load of courses. The infrastructure of UCOSP provides a valuable connection between the goals of an ongoing open source project and the constraints of fitting project work into the academic environment.
By including students from different schools we accomplish several goals:
- Students learn how to interact in a distributed environment. They learn to use IR channels, blog posts, mailing lists, and code reviews to communicate.
- Students work on real systems, with technical mentorship from a project expert and academic oversight from their home university and the UCOSP committee.
- Students meet and compare notes with students from other schools.
- Students from smaller schools have an opportunity that might not otherwise be available to them.
Most importantly, the students have a blast. They rave about their experiences and what they learned, telling us about communication and time management, rather than the cool technology. Of course, another advantage of working in the open source community is the opportunity for students to show prospective employers their peer-reviewed contributions to real projects.
The Code Sprint
Bringing all the students to one location for a 3-day code sprint near the beginning of the term is the key to making UCOSP work so well. All the teams put in three days of hard work to kick start their projects, and by meeting their teammates in the flesh, they develop a stronger bond, and work better together for the rest of the term. Project mentors also attend and get a chance to learn the strengths and weaknesses of their team members. This is the main financial cost of the program.
One of our challenges has been convincing faculty from a variety of universities that we can provide feedback and effectively monitor the progress of their students. As the program has evolved, we have developed a system for soliciting feedback from both project mentors and students and informing the students and faculty from their home departments about their student’s progress. At the end of the term, the project mentors work with the UCOSP committee to send reports to each student's home faculty mentor. This mentor sometimes requires additional reporting from the student, and combines the committee's recommended grade with their own assessment.
Recent projects have been quite varied and many have been part of Google Summer of Code: POSIT, ReviewBoard, MarkUs, EOL, and FreeSeer. We try to work with a wide variety of projects to meet the interests of the students.
We are very happy with the success of UCOSP. We'd be happy to talk with anyone about the program and how we have made it work. We are always looking for more open source projects that students can contribute to. It has been a real pleasure to get to know the project mentors and see their enthusiasm. The greatest reward of the program is to see the students arrive at the Code Sprint looking a little overwhelmed, to watch them rise to the challenge, and to see just how much they accomplish in the program.