October 19, 2009, 9:05 PM — "But, good gracious, you've got to educate him first. You can't expect a boy to be vicious till he's been to a good school," wrote the 19th century Scottish author Saki (H. H. Munro). Vicious or no, a proper university education is a requirement for most software development jobs, preferably with a Computer Science degree. With the growing relevance of open source for anyone searching for a job (or hey, just wanting to get her work done), the opportunity to work with up-to-date FOSS tools is a golden opportunity.
[ See also: Convincing the Boss to Accept FOSS]
A month or so ago, Red Hat announced that it granted funds to Carnegie Mellon University to create an open source computer lab. I asked the company to put me in touch with the University... not so I could write a rah-rah post saying, "Isn't Red Hat great?" (though hey, let's give a nod to them for supporting schools! okay, that's enough adulation) but because I was curious about the role that open source plays in higher education. What is Carnegie Mellon doing with the open source lab, I wanted to know; how do they work with students on FOSS projects?
So I was particularly happy to speak with Philip Lehman, the associate dean for Strategic Initiatives at Carnegie Mellon's School of Computer Science. He didn't have answers for all of my questions (or yours either, I'm sure), but I learned some things that I think are fairly cool. I hope you agree.
Carnegie Mellon opened two new centers, said Lehman: Two new physical buildings, which aim to be "a new environment for world class research and education." Three floors of the building are central to the campus, and fed by bridges from everywhere. And that's where the new computers — the 60 workstations installed with Fedora and Red Hat Enterprise Linux — live.
The open source lab for undergrad education is a terrific place for students to do hands-on work, said Lehman. "We want to teach people to use computational thinking," he explained, and Carnegie-Mellon is known for its interdisciplinary approach to problems and to the world. "It's important for students going into the working world to understand what's out there today — and obviously open source is a key part of that," said Lehman.
I'd expected a standardized suite of open source tools to be installed on each workstation (so that fans of, say, OpenOffice might cheer for their favorites). But as Lehman explained, the applications installed on the lab computers change from class to class and situation to situation. For example, he said, one programming class has a focus on interfaces to the operating system; the Red Hat environment allows the instructor to teach what he wants.
But students aren't simply learning how to program and just happening to use FOSS tools. Some are actively working on FOSS projects. According to Lehman, at least one programming class short-circuits a "build it from scratch" approach for the application they'll work on by instead starting with an open source project and expanding it. The open source code is a base, he said, and it's representative of the way most (new) developers will work in the real world. How often does a wet-behind-the-ears software developer on her first job get to start writing an application from scratch, after all? Plus, Lehman added, it helps the students learn to work together on a team. The software developed in class isn't done with the expectation that the students will contribute code back to the project but, Lehman said, "It does happen."
"We want students to learn by doing, do work that matters," said Lehman. "The hands-on open source lab is a great way to do that."
You probably should follow me on Twitter. Because, y'know, you just should.