A new course at Cornell, “Open-Source Software Engineering,” created in cooperation with Facebook, gives students practical experience working on real-world software development and collaborating with teams around the world.
Cornell is one of about two dozen universities, all leaders in computer science, invited to participate in Facebook’s “Open Academy” program to bring open-source software into the classroom. Open-source projects are created and managed by teams of volunteers who make their code available to the public; anyone can submit changes or improvements.
“Facebook wants students to come out with experience working on large existing code bases,” said Ross Tate, assistant professor of computer science, who teaches the course. “I can see most companies being interested in this. Working on open source can be more difficult than working in industry.” Some code bases used in the course include millions of lines of code. Part of the challenge is to modify some small part of that while staying in sync with the overall package.
Students in the course are divided into small teams; each team works on a specific project as part of a “virtual team” with students from other universities, guided by an industry mentor who is usually a member of the group managing the software they will work on. In the first offering of the course this past spring, students worked on modifications to seven open-source programs, including the widely used the Ruby on Rails, a framework for Web applications, and MongoDB, a database program for storing and searching documents.
Underscoring the value of the course as preparation for the job market, Tate asked mentors to grade his students on a scale of “How likely would you be to hire this student?”
“A lot of programmers will [contribute to open-source software] on their own. They will find a product they are passionate about and work on it,” explained Jeran Fox ’13, who took the course in the spring. “This is obviously cool because we're getting credit for it and have a mentor who's a major contributor.” Fox will join a startup in San Francisco, where he will probably work with a team of programmers who are all in the same room.
The course is not easy to get into. Facebook provides travel expenses for the students to attend a “Hackathon” conference in Palo Alto at the beginning of the semester, where they meet their mentors and the students from other universities who will be on their virtual teams, so the size of the class is limited. Prospective students must submit an application laying out their programming credentials.
“I encourage them to apply only if they have coding under their belts,” Tate said. “When I teach the class I focus more on how to be a programmer and be a part of a community.”
The first class had 17 students, making Cornell’s the largest class at any of the participating schools. This coming spring, Tate hopes for a class as large as 40.