The University of Texas at Austin Department of Computer Science (UTCS) collaborated with Facebook and 12 universities from Europe, China and the United States to provide practical, collaborative software engineering experience as part of its computer science curriculum.
UTCS Professor Glenn Downing joined Facebook's Faculty Thought Leader Council to spearhead a project course at UTCS that aimed to better prepare motivated CS students of any background to succeed in professional software environments.
The class—designed to provide students with the expertise, insight and learning opportunities in the areas of software engineering—combined student teams with a select group of open source software projects. The course leveraged asynchronous learning, a student-centered teaching method that utilizes online learning resources to facilitate information sharing among a network of people. Student teams spanned universities to produce better learning outcomes by promoting shared lessons and experiences and by forcing a greater investment in team communication and coordination.
The philosophy behind the class was that the best way to learn software engineering is to do software engineering. Teams of three to eight students learned by doing, by working within an established open source code base. This is different than most project courses that have the students begin their projects from scratch; learning how to get a handle on a code base and build understanding of it to the point where one can make coding contributions is a valuable skill that is called upon repeatedly in a professional software engineering role.
The student teams worked to improve their project in two ways: by knocking out low hanging fruit issues that already existed and by identifying and pursuing new functionality they conceived. The student teams worked on their projects for anywhere from 8-20 weeks, depending upon the schedules of the universities involved.
Glenn originally sent out a request for application to previous students in his classes and chose three to be a part of the program: Daniel Jordan, a Turing Scholar; Alex Coomans and Adrian Maceiras, both seniors.
“It’s been one of the first projects I've worked on that has been really collaborative,” said Alex Coomans.
Glenn’s students collaborated on MongoDB, an open source, document-oriented database designed with both scalability and developer agility in mind, and got acquainted with a giant software stack with which many of them had no previous experience, including Ruby, Rails, JavaScript, CoffeeScript, RSpec, Jasmine, Paper.JS, Capybara, Devise, CanCan, OmniAuth, Guard, and MongoMapper.
They learned to create op count graphs to track operations per time on a database in real time, Ajax requests and jQuery. Adrian “learned a ton about ruby idioms, the rails ecosystem, and open source development in general.” They learned how to integrate the Jasmine testing framework into MongoTools and to build authentication and authorization for MongoTools.
Overall, the project was a success for Glenn and his students. “I think it was a very positive experience and I would definitely do it again,” says Glenn. Daniel said he learned a lot and was very grateful for the experience. Adrian described the class as an “incredibly fun and useful experience.”