Skip to main content

skip to main content

developerWorks  >

Students choose their own open source adventure at UCLA

IBM and UCLA partner on open source education project

developerWorks
Document options

Document options requiring JavaScript are not displayed


Rate this page

Help us improve this content


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.

Students choose their own open source adventure at UCLA

Be sure to listen to this interview.

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

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


Please take a moment to complete this form to help us better serve you.



YesNoDon't know
 


 


12345
Not
useful
Extremely
useful
 


Share this....

digg Digg this story del.icio.us del.icio.us Slashdot Slashdot it!



Back to top