Should Computer Science Programs Require Students to Participate in Open Source Projects?
Jay Borenstein, a computer science lecturer at Stanford University and Founder of Facebook’s Open Academy, has an interesting piece at TechCrunch that suggests current university computer science programs aren't doing enough to prepare students for the real world. He writes, "Put simply, being a CS student is very different from being a real-life software engineer." He explains, "Unlike in the classroom, real-world software development projects are larger (in timeline and size) than the ones students encounter in class. One must also gain an understanding of some pretty substantial pre-existing code bases in order to be productive. What's more, in the real-world, project management and interpersonal relationships can have as much impact on software design as technical issues, and systems are ultimately evaluated by user satisfaction rather than technical merit."
He proposes that universities could help to remedy this situation by encouraging or even requiring students to participate in open source development projects. He says that this approach gives students access to experts, teaches teamwork skills, allows students to make a difference in the world and gives them the chance to focus on a particular skill set that they would like to pursue in their careers. Borenstein adds that several universities are already taking this approach through involvement with Facebook Open Academy.