 | Level: Introductory Scott Laningham (scottla@us.ibm.com), Podcast Editor, IBM developerWorks
25 Mar 2008 Listen to a chat about an innovative class at UCLA.
developerWorks: I'm Scott Laningham, and this is a developerWorks podcast.
This time, we're talking about an innovative computer science class at the University
of California at Los Angeles that offers students the opportunity to choose an open
source project adventure focused on Web 2.0 technologies and to interact with
professionals from IBM® during the project.
I'm joined by two UCLA computer science professionals Paul Eggert and Jens
Palsberg. Paul teaches the CS130 class at UCLA, and Jens is the chair of the
software field at UCLA and had an oversight role in creating the course. Also
joining in the chat is Gergana Markova, IBM project lead for these classroom
collaborations, as well as Gabe Nataneli, former student in the class and now working
as a teacher's assistant to Paul this semester. Thank you all for doing this today.
We really appreciate it.
All: Thank you.
developerWorks: Gergana, could you start us off with a little summary on the
idea here with this create-your-own-adventure class? I mean, what's the idea? And is
it unique to UCLA?
 |
Guest: Gergana Markova
Gergana Markova graduated with a master's degree in computer science from
Purdue University in 2003. Since then, she has been working for IBM in
Tucson as a software engineer developing the user interface of the
Tivoli® Storage Manager backup and archiving product. The Web team
she is part of enables the converting of the Tivoli Storage Manager command
line into an intuitive user-friendly Web-based interface for enterprise and
small-business customers. Her favorite expertise is Java™ code
utilities — shared code that makes our life far more easier to
do once, test once, and reuse many, many times. She is also the team's
focal point to the IBM presentation services, and enhances and commits all
custom contributions back to this IBM open source offering. In addition to
her daily job, she is a very active University Ambassador with the IBM
Academic Initiative, while displaying her passion for academia and desire
to help shape our future colleagues In 2006, she and two other Extreme
Blue friends masterminded the Create Your Own Technology Adventure IBM
class project offering at UCLA's CS130 Software Engineering class. She is
also a core team member of the IBM Women Inventors Community.
|
|
Markova: The main issue is that IBM or an industry partner offers an
open-ended university class project based on a technology of strategic interests to the
company — would that be IBM or another company. The typical class nowadays
offers very tight requirements on what student needs to do, and often, you can see how
one of the same projects has been done and again and again in the same class over the
years.
What we want to bring is allow the students to innovate based on their needs, their
passions, what is important to them or their community, given a specific technology
that is of interest to IBM, and IBM can support through experts. So they've really
created their own adventure, given the support of the IBM mentors.
developerWorks: Could you talk a bit about how the class and the
participation of the IBM mentors is organized and managed? And maybe, Jens or Paul, if
you want to chime in as well on that one, please do.
Markova: One of the things that is interesting about this setup is that over
the timeline of the class, we end up with different questions, with different issues, so
we need to be prepared to help the students to manage and deliver and get a good grade
for this short duration.
What we found out to be very useful is the model of the Extreme
Blue IBM internships. They have dedicated technical mentors, a couple of them, they
have dedicated project mentors, and they have somebody who leads the project. So from
IBM's point of view, I'm the project lead, I talk to the professors, we figure out what
kind of project we want to do, then we have technical mentors who are experts in the
area of the offered project, would that be Web 2.0 or Eclipse. And they're the best
people to solve technical projects. They're the best people to go and say, "This is my
idea. Is that something that's already there? Help me figure it out." Or "I have many
options. Which one would you recommend and why?" So the technical experts are the ones
who guide the students more the technical issues.
The role of the project mentors that they mentioned, they do a lot of other things. For
example, guiding the students through scheduling or making sure the students are
delivering on time. And also, something which is very important for IBM and benefits the
students: You have a diverse view of people from different divisions in IBM who would
give you different feedback, would tell you how they work on a daily basis so you can
learn more than that from the students' perspective.
Eggert: If I could just chime in. The IBM crew that works with us here is the
best organized and provides the best resources the students of any other groups that
we work with. I'm really amazed and I take my hat off to Gergana, except I normally
don't wear a hat.
No, really — you guys are really well organized in coming up for help for
the students. And it's not just technical help, it's, as you mentioned, sort of
keeping them on track with schedules and keeping their perspective about the projects
that they work on. And it's really unparalleled for this course.
 |
Guest: Paul Eggert
Paul Eggert lectures in the UCLA Computer Science Department in the area of
software systems and languages. Previously, he was the CTO of Twin Sun
Inc., El Segundo, Calif., a strategic technical services company for the
Japanese market that has produced several successful products based on GNU,
Linux®, and BSD software. He has contributed to many important GNU
projects, including Autoconf, Bison, Diffutils, GNU Emacs, GCC, the GNU C
Library, the GNU core utilities, and GNU TAR. He is currently a member of
the GNU C Library Steering Committee and is a maintainer or developer for
far too many GNU projects.
|
|
developerWorks: You know, Paul, I appreciate that. And I'm sure you must have
your own unique perspective on the purpose and value of this class. After all, you
work for UCLA, an academic institution. You're not an employee of IBM, but this
relationship sounds like a very harmonious one. How do you see it from your chair?
Eggert: Well, my chair is an academic one now, but before I came here, I was in
industry for 20 years, working for one of IBM's competitors. So I have a feeling for,
you know, the business needs and applications and sort of the real-world constraints of
building software projects.
And what this course is supposed to be — the software engineering course
— is supposed to provide students with a realistic view of how software
engineering works. And that goes beyond simply writing down specifications and making
sure that the code matches the specifications and all that sort of thing, the fairly
technical engineering details. They have to be done, but a crucial part of it is
interacting with real people that have real needs and that sort of provide challenging
problems that perhaps you didn't think of yourself when you were just sitting there in
the university class and solving the professor's problems.
So the key idea of the way this course is run is to get students working on real-world
problems, to challenge them as much as possible within the constraints of a course with
something that goes beyond sort of the problems at the back of the textbook.
 |
Guest: Jens Palsberg
Jens Palsberg is a professor of computer science at UCLA and was
instrumental in establishing this teaching/mentoring partnership with IBM.
He received a doctorate in computer science from the University of Aarhus,
Denmark, in 1992. From 1992 to 1996, he was a visiting scientist at various
institutions, including MIT. From 1996 to 2002, he was an associate
professor, and from 2002 to 2003, he was professor of computer science at
Purdue University. His research interests span the areas of compilers,
embedded systems, programming languages, software engineering, and
information security. He has authored more than 80 technical papers and
co-authored the book Object-Oriented Type Systems.
|
|
And that's
where I find that the help from IBM is really invaluable because your mentors know the
problems, right? They've been there, they've done that. And having them interact with
the students provides really valuable help to the students to see how software engineering works in practice.
Nataneli: Well, I just wanted to say something about sort of the student
perspective. I'm the teaching assistant for the class. I work very closely with
students, and I realize not only is it a very educational experience for students to
interact with real-world people in the industry but also a great motivation for them.
I see that students are very involved. They want to do this right, and that I think is
invaluable experience for, you know, their career, of course.
developerWorks: You know, I'd like to come back more to this idea of the
benefits to UCLA and doing the class this way, but first maybe we should get a little
into here what the current projects are in the class — what's actually
going on and what's being worked on this semester. Could you speak about that a bit more, Gabe?
Nataneli: Yes. So there is, of course, the IBM project, so students are
developing a Web application using this very interesting language called Ruby on Rails.
And it's a very interesting project. They're actually developing a DJ-kind of
application where you can upload some music, you can manage your libraries, and then
you can play some sort of quiz games based on your music knowledge in the music
library. And it's a very interesting project. It gives them exposure to a new language, to a new
technique. And, of course, a very important part from my perspective is that they had
to come up with the specification, which is something quite unusual for university
courses.
 |
Guest: Gabe Nataneli
Gabe Nataneli is a doctoral student in computer science focusing on the
areas of computer graphics and vision. His passion for software began when
he was 5 years old programming on a Commodore 64 and, since then, he has
explored a large number of different computer platforms, programming
languages, and software techniques. Over the years, he was involved in
literally hundreds of projects and also published several technical papers
on a variety of engineering topics. In the role of teaching assistant, he
has taught many software classes ranging from introductory object-oriented
programming to advanced computer animation. He holds a bachelor's degree
in electrical engineering from UCLA and is currently collaborating very
closely with the visual effects industry for his dissertation.
|
|
OK — So besides the IBM projects, there are also other teams working with
other industry clients. And that's interesting in terms of the class because it gives
them a breadth of possibilities. So we have a project with Google, so we are making
progress on the development of Wine, which is an implementation of the Win 32 API under
Linux®. And then we also have a project related to the political science
department. Essentially, their students are working on some tools to be able to
visualize some roll-call data that's also with application. Very interesting project.
And then we have also one last project related to the One Laptop per Child effort, and
they are developing some applications that can be deployed on these small hardware
devices, and it's sort of a very interesting interaction with outsiders in the industry.
developerWorks: And I guess you're close to the end of the semester, and is
there a showing of projects? And how does that work? How does the semester wrap up with these projects?
Nataneli: So as in the industry environment, we ask them to give presentations,
so most of our way to judge their progress is by having two presentations
— a midterm presentation and a final presentation — where
they essentially showcase the work they've done, how they're planning, and sort of they
wrap up all the work for the quarter and, yes, this is how it works.
developerWorks: You know, Paul, that scale of being able to present
— obviously, the ideas and the progress along the road in development,
that's a valuable skill and a critical one for young developers and computer science majors to develop, isn't it?
Eggert: Absolutely. You have to not only be able to build the stuff but also
be able to talk about it, to sell your ideas internally to your fellow developers and
also externally to customers and end-users and that sort of thing. The days of the lone
coder sort of closeted in his room are over, and we really have to be talking about how
these people will be working in the future. And one thing that we try to do as much as
possible, we even have a separate assignment for it, is to get students in tune with
the problems of just requirement solicitation where you're not writing any code, you're
just trying to understand what the problem is. And that is a key skill in today's
world. It's always been important, but it's getting more and more important.
Markova: Generally, if you look at what's needed today, you need to be a good
team player, you need to be able to communicate with internal team, with the people you
work on a daily basis, with external teams. You need to communicate globally. So a lot
of those that are required nowadays are changing, and I'm glad to see this class is
bringing the opportunity for industry partners to shape an environment and set the
process where students can learn and be more prepared to join the industry later on.
developerWorks: I'd like to ask another question here that just comes to
mind, and Gabe or Paul, anybody chime in on this one that wants to. But how
important are some of the new Web 2.0 means of communicating — social
networking in the workplace? How important are some of these tools to them? And are they using them in a class like this?
Eggert: I would say it's not important, it's assumed. The people that are
coming to this class are just assuming that kind of technology is going to be used,
and it's sort of, it's gone beyond being important and being a technology of the
future. It's gone to being "This is what we do."
developerWorks: I heard you say one time that students tend to innovate
differently than professionals, or I heard someone say that, and I'm wondering how
so? I mean, Gergana and/or Paul or Gabe, how do students innovate differently than
professionals? What do we mean by that?
Markova: I've definitely said that many times. When students come to the
table, we look at the same technology, let's say, Web 2.0. They typically don't
have any preconception what can be done, what are the limitations. From them, the
sky's the limit. They're just going to go and try it.
Another thing is what tends to be important to the students usually is different from
our professional views and what's priority for me, right? If you come from a more
enterprise company, many of the things you will be looking up would not be marketable,
right? Would that make a value for our customers? Like when I
was a student, a lot of the emphasis for what is cool? What do I want to show up to my
peers, to my friends? What do I want to show to a potential employer and put on my
resume?
So in the course of this class, we found many occasions where the project that students
came up, were very, very cool, you know, but they knew some new technologies or some
things which are more specific to their generation or the things which are important
for them were very different than a professional. And an example I want to give is, we
had the MIPS Eclipse project where students came and said, "Oh, we know there is this
architecture class and, by the way, students are struggling to do the MIPS program and
it's really hard. Why don't you go and help them with that?" I mean, think about it as
an IBMer, will they really look into that? So that's what I mean with they tend to
think different, they innovate differently and bring very interesting perspective in the type of things we deliver.
developerWorks: Paul, do you have anything to add on that, since you've
been on both sides of this fence, in terms of how students think and operate differently?
Eggert: Well, in a course like this, it's refreshing. They don't know what
can't be done, and so they go ahead and try to do it anyway. Or they will try to
solve problems where I'm thinking, "Oh, come on, guys. You're not really going to
make a dent on this. This is going to be a one-year thing. You're just going to have
a little mockup." And then they prove me wrong. They may not generate a finished
product, but they do remarkably well because they didn't know how hard it was.
And so that sort of attitude is refreshing. And I should admit sometimes it crashes
and burns. But that's OK. This course offers students the chance to fail, and that's
important, too. You learn a lot from failure.
developerWorks: And they don't have the layering on of the fear that comes
maybe later on when they think the consequences of failure are so much more severe.
Eggert: Exactly. That's exactly right.
Markova: And another thing, which I found interesting: We started choosing
tools, which are more familiar to the students. For example, in SourceForge where
they put the repository of their code and everything, there is the wiki, there is
forums. So things that they are familiar and comfortable in the way they communicate
with IBM mentors — it really helps for them to really be free to share
what they think on a regular basis through this forums or through these wikis without
thinking that they can probably bother the IBM mentor if they e-mail them too much or something like that.
Eggert: And part of that attitude I think comes from the students growing up
more in the open source era, where they're used to source code being out there and
available, warts and all, and they're kind of, you know, "That's just the normal way
things are." And people that maybe have been professional for longer are
more used to source code being proprietary and all that sort of thing, and not so much
looking at what's out there and stealing the best ideas from other people, that sort
of thing.
So it is a different attitude, and I think a very helpful one. I think this course
would not be possible without the sort of open source environment available. You know,
for example, the Ruby on Rails environment was written by — well, Ruby was
developed by one guy in Japan and Ruby on Rails by another guy here, and it didn't
really take off until about three years ago. I first heard about it, believe it or not
in Japan, not here, because it took off in Japan first, and that sort of
growth and sort of cross-fertilization is just normal in the open source world, and it
sort of encourages students to try to do something similar. They want to be famous like these other guys are.
developerWorks: Since we're on this topic of how important open source is
to this class and its ability to go forward and be successful, Gabe, I'm wondering,
since you've been a student in the class and now you're in the teacher-assistant
role, do you have any thoughts about any potential skepticism on students about
— you know, there's a company involved with this class and I'm just
being marketed to, or with the open source aspect is that largely irrelevant?
Nataneli: Well, at first, you know, that skepticism is legitimate, but after
having had an experience with the class and as a teaching assistant, I think the
skepticism went away. You know, IBM, for instance, has been very collaborative. They
have this sort of open attitude, and it's very useful. And of course, you know, once
you have things that are open source, at the core of development, you have this
open-mindedness, which breaks our skepticism completely. And, of course, in the end,
some of these open source projects may be amenable to commercial endeavors, and probably
IBM would be interested in that. But sort of the open mentality of open source I think
is very important for students and give them, you know, give them the freedom to
experiment to be creative what they're doing, and that's good.
Markova: And one of the positives here is that IBM doesn't come and say, "Use
our products. So we're going to teach our products and you will be good talent for us
and some of our business partners to pursue." We go there and say, "This is open
source. Let's work together on that, and you pick the idea." So a lot of this
skepticism about "Oh, you're just marketing to bring us to your company or your
business partners" does not exist. And we've seen that it's a problem in other
schools where we teach specific IBM products.
Eggert: And I think part of that just this quarter, for example, IBM was
using Ruby on Rails, which is technology developed outside of IBM completely. And
that sort of removes a lot of the concern that, "Oh, we're just, you know, pushing
IBM technology on the students." No — this is stuff that was developed elsewhere.
Markova: Oh, and Scott let me mention something else. One of the reasons we
had to look into open source technology is if you look to a propriety code, you
always have intellectual property issues. And I'm sure Paul would like to laugh at
that, but this is one of the main opportunities for us to collaborate with the
university on something where we don't need to deal with these issues and spend hours
on end with the lawyers on one side or the other.
developerWorks: If I could kind of ask a sort of wrap-up question here, and
I'd like to ask this to Jens initially and then others chime in if you want to. But
Jens, do you feel like this kind of collaboration between universities and companies
is just going to become more and more the norm and possibly just because the
fast-changing times that we're in demand this kind of approach?
Palsberg: I think yes. I think we see a strong demand from companies in
Los Angeles that hire our students. We see a strong demand from our alumni wherever
they are, to have a course like this. And I think other universities will realize
that this type of collaboration between university and companies, it gives the best
kind of software course. And what I've noticed is that it's personal contacts or
maybe lack of personal contacts that can be a barrier to creating the course. And I
think once universities — computer science departments —
once they realize that companies such as IBM want to help and they want to interact
with the students in the projects, then it becomes much easier to get going.
developerWorks: You know, without getting too warm and fuzzy here, it seems
there's certainly an element of a pure love of learning in this collaborative
atmosphere that gets beyond thinking only focused on the financial results, you
know, the monetization thing, wouldn't you say?
Eggert: Let's put it this way, I didn't come to teach at UCLA to get rich.
That's really not the goal here. Our goal is to further knowledge. And the more we
can do that the better. I think this course is really, really helping with that. And
you're right that there is sort of the concern or the connotation or whatever that
by partnering with a commercial company like IBM, you might have the problem of, you
know, following the money, turning into, distracting from the fundamental goal,
which is furthering education. But I have no qualms or concerns whatsoever about the
way this course is run now. IBM has been a wonderful partner in helping us do what
we need to do, and there really isn't an issue about monetization here, it's just
not an issue. It hasn't come up. It's wonderful.
Nataneli: And not allowing the single company to come to the class, but variety of
companies, some of them which are competitors to each other. It allows him to provide
variety of different project for the students and in the end of the day when we went
through the process of project proposals, Paul is the one who says this is something
that I'm interested for my students to pursue or not, right?
Eggert: Yes, that is. You know, I get approached by other companies, and in
some cases, I will have to reluctantly say no because of concerns along the ones that
we've described already today. We don't want to be pushing a particular proprietary
technology on the students. We don't want to have students sort of get worried about
licensing or patents or that sort of issue. I mean, those are all valued concerns,
and I respect those, it's just they tend to distract from the educational purpose
here. And so since if we can get it done sort of cleanly and without worrying about
monetization too much, let's do it the clean way and not worry about the other thing.
developerWorks: Right. And this embrace of a pure learning by all parties
involved is really a very healthy thing for everybody and benefits all of them in
the long run, I'm sure.
Eggert: Right.
developerWorks: Well, I want to thank everyone for being a part of this
chat with for us today about the CS 130 class at UCLA and a partnership between
UCLA and IBM. It was a great discussion. Thank you all.
Eggert: Thank you.
developerWorks: You've been listening to professors Paul Eggert and Jens
Palsberg from the UCLA Computer Science Department, and Gabe Nataneli, former
student in the CS130 class and now working as Paul's teacher's assistant. Also Gergana
Markova from IBM. Find some helpful links related to this topic in the show notes
for this podcast at ibm.com/developerWorks/podcast. I'm Scott Laningham. Thanks for listening.
Resources
About the author  | 
|  | Scott Laningham, host of developerWorks podcasts, was previously editor of developerWorks newsletters. Prior to IBM, he was an award-winning reporter and director for news programming featured on Public Radio International, a freelance writer for the American Communications Foundation and CBS Radio, and a songwriter/musician. |
Rate this page
|  |