By Wileen Wong Kromhout
When Paul Eggert began teaching software development in his CS 130 course for the computer science department in 2003 at UCLA Henry Samueli School of Engineering and Applied Science, he immediately noticed a difference between what is taught in academia and what is learned in the “real world.”
“In the real world, there is a process in which you interact with real people with real needs and problems and discover them at the same time you’re solving them,” said Eggert. “This doesn’t match the typical academic environment where you just assign students problems and they come up with solutions.”
To try to set up a realistic software programming environment, Eggert initially assigned research projects and provided access to free software that would help them fulfill their project goals. Though he assigned students projects he thought were interesting, he soon discovered this led to a very hermetic environment where he was doing all the talking. And though the students did learn, it did not make for a very interesting educational experience.
“I lectured about software engineering principles. I gave them a different perspective on real world customers but I wasn’t really happy with the way things were going. So I decided to use my rolodex one day and asked for help,” said Eggert.
Word soon got out… Companies were being given an opportunity to work with talented university students interested in software programming and they saw the potential for not only their own companies but for the industry. By the fall of 2005, Eggert found that corporations were lining up to become sponsors and mentors for his class. Today, students in his classes work with corporations like IBM, Google, and The Aerospace Corporation. And Eggert is continuing to pursue other potential sponsors including Boeing, Northrop Grumman, and Amgen.
“Dr. Eggert’s done a good job of fielding several different corporations. The students are given the opportunity to pick something that might be in the field that they want to pursue. So if they want to go into the aerospace engineering field, it’s great that they have an option to work with people at Aerospace,” said Jennifer Lombardi, a former CS130 student and now an employee of The Aerospace Corporation and a mentor for the class.
It is during the first week of class where mentors from each company come in to give their presentations to the students. The students are the ones who get to choose what projects they would like to work on and what company they would like to work with. Students are asked to rank their choices and every attempt is made to match them with their top choice.
“Since the projects are proposed by other companies, students are more motivated to do the work. They know that the product they’re implementing will be used in the real world or will become very close to a real world product,” said Ei Darli Aung, a CS130 student working on an IBM project.
“The companies guide us in choosing construction tools and how to use them for the projects. We get an opportunity to learn the technologies that are actually being used by these companies today. And the most rewarding part of the class for me is working on a project like this from scratch with a large team of six.”
According to Eggert, it is important in software engineering that students learn to work with each other as part of a team. And with some popular projects, student teams will even compete on the same project and come up with alternate solutions to the same problem. By having students work on actual industry related projects, the companies not only acquire assistance solving real industry problems but mentors also find themselves learning from their students.
Now in its fourth quarter with CS130, Mark Weaver explained that the IBM mentors communicate with their students regularly and often. This quarter three student groups are working with IBM. “All the groups send us a status report each week. We also monitor emails they send out to everyone. We meet with them a couple times during the quarter and we try to get on campus three or four times a quarter. We’ve even started weekly calls to some of them,” said Weaver.
According to Sharon McFadden, an IBM representative, “The skills that Mark and the rest of the team are working with the students on, these are skills that are applicable not only to IBM but to the rest of the IT industry. So we really feel like we’re supporting not only IBM’s employment objectives but in a larger sense, the same skills that apply to many Southern California businesses, business partners, as well as our customers.”
Eggert wonders if enough can be taught in ten weeks and is now looking to create a program that will be more than a one quarter software engineering course. The newly extended program would allow students to work on a much larger project that would continue through multiple quarters. Eggert is currently in discussions with some of the companies but remains sensitive to the kind of time commitment mentors would need to give. Though companies provide some credit, all mentors volunteer their own time.
Chris Ishisoko, a student working with The Aerospace Corporation this quarter, says he would definitely take more courses like CS 130. “I find the software engineering field to be fascinating. Contrary to popular belief, effective software development can require a lot of planning and management activities. In effect, managing a software development project through its lifecycle is very similar to running a small business.”