Computer Science Department’s CS130 Course
Brings the World to Its Classroom
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."
###