Sunday, August 07, 2005

Thanks To ...

Over a year ago, on May 6, 2004, I sent an email to Dean Frieder Seible and Denine Hagen in response to an article Denine wrote announcing something called "COSMOS" being organized by the Jacobs School of Engineering, for which I wanted to express interest in becoming involved. They put me in contact with Susan Kelly, and in the next few months, after many conversations with her and Barney Rickett (and a visit to UC Irvine with them and Rich Herz to see how their COSMOS program worked), I finally decided to organize the "computer science cluster," one of the academic divisions of the program. Little did I know what I was in for.

Following a year of planning, the program began on July 11, and after an incredible month (for which you can read my blog entries), it is now over. I can say in no uncertain terms that it was a grand success, and great and special experience - not just for the students, but for all of us, certainly including me. Everyone learned a lot, experienced new things, and made new friends, hopefully long-lasting ones.

My part of the program would not have succeeded without the help of some absolutely great and totally committed colleagues. First, Larry Carter, who has been a professor here for many years, brought a wealth of knowledge and experience to the program. He is one of those few people who knows a lot about a lot, in a deep way (in fact, his research contributions span many areas). I think this was very important for us, as we needed to adapt the curriculum as we went along in a major way, including the redesign of the software laboratories once we saw what the students were and were not capable of doing. At least two of the five final projects were based on classes and laboratories that Larry developed. In one project, the students took Larry's tic-tac-toe program, studied it, and used it as the kernel for developing a chess program. In another, the students took his freeway-car simulator and figured out how to build a simulation of a jungle with animals showing predator/prey behavior. It was classic "learn by good example".

Christine Alvarado, who recently completed her PhD at MIT and is now an assistant professor at Harvey Mudd College, was also an invaluable member of the team. Perhaps no other topic ignited the interests of the students more than Christine's area of expertise, AI (artificial intelligence). I found myself adjusting my own class topics to be more AI-related, just to maintain the inertia in student interest that Christine created. We also benefitted from Christine's research on sketch recognition, as her lectures prompted, for example, a final project on handwriting analysis. The students clearly liked Christine's lecturing style a lot, as well as the laboratories she developed. There was a practical difficulty for Christine, as she had just moved to Fullerton (near Harvey Mudd) and had a two-hour commute EACH WAY. Despite this, she not only met her obligations, but went the extra mile many times. As I said up front: total commitment.

Our Teacher Fellow, Lara Geronime, who is a middle/high school math teacher, did a terrific job in developing the students' communication and writing skills. She had a very difficult job, as most of the teacher-fellow prepared materials were in the context of experimental laboratories developed for the physical sciences. She had to translate much of this material and make it applicable specifically to computer science. Perhaps most importantly, she helped prepare the students for their final presentations. For this, she deserves high commendations, as the final presentations were immensely improved over the initial ones in all aspects, including clarity, content, and delivery. There was one student in particular for whom I thought it would be a major achievement if she were able to simply get up and speak publicly without breaking down (a fear many of us have experienced at least once in our lives!). Not only did she speak, but she was great! Preparation was key, thanks to Lara.

Finally, our teaching assistant, Andrew Terry, who is a graduate student and master's candidate in our computer science program at UCSD, was great in helping the students in the lab and developing some of the lab software. Andrew was ever-present with the students, and they seemed to bond very well with him. He helped Christine develop at least one of the text recognition programs that was used as an exercise for the students to study and modify. One of the students, Greg, having never seen a sophisticated program before, called it "the greatest program ever!" - which I'm sure made Andrew's day. Computer scientists can relate to this, as all of us have had a special first experience with the magic of programming, after which one gets hooked and never looks back. Andrew now has the pleasure of knowing he made this happen for this student, and perhaps others.

There were many other people who helped out. So many of my colleagues volunteered time to give lectures; in fact, there were so many that I was actually not able to take advantage of all of them. The ones that did, Pavel Pevzner (bioinformatics), Geoff Voelker (video games), and Stefan Savage (Internet security), had deep impact: at least one student for each topic (Greg, Chris, and Bennett, respectively), said that they were sparked to pursue the lecture topics further, perhaps even considering a career in the area. We had some unforgettable field trips to various laboratories, including Jim Hollan's Distributed Cognition and Human-Computer Interface Lab, Jeffrey Krichmar's Computational Neuroanatomy Lab at the Neurosciences Institute, and the San Diego Supercomputer Center. Last but not least was the all-day programming contest, organized by my colleague Brad Calder and his excellent team of graduate and undergraduate students. Many of our students considered the contest the highlight of all the activities.

Susan Kelly, the COSMOS program manager, was a joy to work with; she always found a way of making things happen for us (as in finding and paying for abacuses as well as slide rules which were made available by Dick Rose at significantly reduced cost - thank you Dick!). I enjoyed my many conversations with Barney Rickett, one of the program co-directors, on the academic content and organization of our cluster, as well as program co-directors Rich Herz and Gabriele Wienhausen (whom I had met more than 15 years ago at an EDUCOM conference where we were both demonstrating use of multimedia in the classroom, and then had not seen each other until the start of this program!). I did not get to know the RA's (resident assistants) well, but I thank them for taking care of these students during non-class times. I also thank our department chair, Mohan Paturi, for making the wonderful classrooms and labs in our new building available. Finally, I'm grateful to our Dean, Frieder Seible, who had the vision and understanding for the importance of having COSMOS at UCSD, and led the way in making it happen by working with our generous corporate sponsors.

There are many people who I hope will forgive me that I did not mention, but deserve praise and thanks. Today I heard that the student-to-staff ratio was an incredible 2 to 1. And this does not even include many other people, like some of those mentioned above, that helped out. The bottom line is that a lot of effort went into making this a great program, and it was well worth it.

There are many joys in being a professor, and at the top is working with students and seeing them graduate. The COSMOS program ranks right up there, and is one of the most positive experiences I've had in all my 18 years at UCSD.

Saturday, August 06, 2005

They're Gone

Today is both a happy and sad day - happy because I got to meet with all of the parents of these wonderful students - sad because the students are now all gone. We had a "graduation ceremony" where they all received certificates, and then lots of hugs and farewell tears.

These parents - as well as the students - have a lot to be proud of. Each and every one of the students came and lived on the campus of a top research university for a month (almost all away from home for the first time), got a whirlwind of lectures from world-class researchers on a variety of topics, visited top laboratories (supercomputing, robotics, etc.), participated in classes where we discussed topics in artificial intelligence, high performance computing, limits of computation, distributed computing, etc., and finally, debated some of the deepest questions in computer science. They developed a project of their own choosing and saw it to completion, concluding with a presentation (each was required to speak), a poster, and a demo of their working programs.

I became friends with fourteen very special teenagers - actually young adults - this past month. They are bright, articulate, curious, and a lot of fun to be with. And they have so much potential and opportunity ahead of them. Soon they will be applying for college. Maybe I'll see them as undergraduates in a few years, or as graduate students in five or six. I wonder what will become of them - I have high expectations. And I hope they will keep in touch.

Friday, August 05, 2005

Final Projects

The students gave the final presentations this morning, and then presented their posters this afternoon.

The first group to present was Chris, Colin, and Greg. They designed a text-based fantasy game, which they built from scratch. They used Scheme to build the game engine, and developed an intricate story-line for the game. It even had some audio features, playing clips from Monty Python and the Holy Grail ("It's a shrubbery!"), that seemed to please everyone.

The second group, Bennett, Jeff, and Mack, worked on a graphical user interface for manipulating fractals, specifically the Mandelbrot and Julia sets. The program allows the user to focus on different regions, apply different color maps, specify parameters such as number of iterations, allow file saving in different formats, and of course, display beautiful images that represent complex mathematics.

The third group was Justin, Margarita, and Vickie. They designed a handwriting analysis program that is able to recognize written characters and find best matches in a library. Their presentation was excellent, explaining what they were trying to achieve, how they did it, problems they encountered, and both capabilities and limitations of the program.

The fourth group was Jeremy and Yongwha. Their "jungle simulator," which they designed from scratch, simulates a jungle with various animals - tigers, monkeys, snakes, ... - each of which has unique characteristics and behaviors, as in how they move and their speed, what they eat and how often, how they breed, all of which are interdependent.

Finally, the group of Kellen, RoYa, and Suejean, designed a chess-playing program. They programmed how the various chess pieces legally move about an 8x8 board, and a game-playing engine that allows a user to play against the computer. This required having the computer determine the various possible moves into the future and select the best one.

As one can see, they all came up with something very different. Some of the projects were based on ideas that we presented during the first two weeks, while others were completely new. With lots of good practice and advice from Lara (which occurred during this entire week), they were articulate and clear in the presentations. It is very impressive what they were able to do in the span of two weeks.

After the morning presentations, we were visited by some of the program's corporate sponsors, Tom Dillon from SAIC, and Allison Kelly from Qualcomm. When asked by Tom what they learned, the students volunteered some good answers. Chris, in his usual articulate way, was first and discussed some of the "deep questions" we considered, such as whether computers can think and the limits of computation. Jeremy talked about the differences between analog and digital computing, and how this applies to the brain. Then, each of the groups gave live demonstrations (with their computers) of their projects. As usual, I was very proud of them. On the 20-minute walk to lunch, I had a good conversation with Allison about both the academic and social benefits of the COSMOS program to the students. I hope Allison and Tom went away feeling good about COSMOS, and its great value made possible by the support of companies like QUALCOMM and SAIC.

During the afternoon, the students displayed their posters and explained their work as visitors stopped by. They had all gotten past the hard part, the morning presentations, and now were confident and smiling. Their smiles got bigger and they stood taller with all the "oooh's" and "aaah's" by the visitors as they saw their work. I also got to see the work of the students in the other COSMOS clusters. I was absolutely impressed.

The day ended with a little photo review. We looked at pictures taken throughout the month - the students making presentations, working an abacus or slide rule, cheering during the programming contest, a yawn (I'd like to say, rare) during a class, riding segways, and best of all, smiling during random occasions. Eventually, I will put these photos up for all to see. It was fun seeing the photos, but also bittersweet as we know this is all coming to an end.

Wednesday, August 03, 2005

Limits of Computing

Today's class was on the limits of computation and associated topics. We discussed what we know is computable (and what that means), what we know is not computable (discussed the halting problem), and certainly emphasized that there is much we simply don't know. In fact, we delved into other fundamental topics, such as what is meant by information (and considered the question: what if we received a stream of bits from outer space, what could we say about their source?), and the technical difference between belief and knowledge. We even discussed distributed and common knowledge, and played a game to illustrate these concepts, which I hoped they liked.

This was certainly the hardest class for them that I gave, and frankly, I did not expect these high school students to get this material (and it was a lot to cover in a day). After all, this is hard even for most undergraduates, and almost no one really gets it the first time around anyway - I know I didn't, even the second or third ... But my goal was to at least expose these students to the idea that there are (proven) limits to what can be computed. However, they did quite well - I think at least half followed, and perhaps some even understood, most of the arguments, based on how they responded to questions and the questions they asked.

This is a bright group, and there are a few who are real stars. Interacting with them is a special experience for me. These students will go far, and perhaps a few of the many questions raised today that fell in the "no one knows" category may some day be answered by some of them. In fact, I don't just believe it, I know it.

Monday, August 01, 2005

More on Analog vs. Digital

We continued our discussion on the differences between analog and digital computation, which was illustrated with the following simple demonstration. We took two equal decks of cards, and I asked that they each be divided into three equal piles. One student, Vickie, was to act as an analog machine, and another student, Kellen, as a digital machine. Vickie did the right thing: she divided her deck into three piles and tried to make them equal by eyeing and feeling their thickness. Kellen also did the right thing: she counted out each pile from her deck, making sure each had the same count. This nicely illustrated that analog machines are faster, use less energy, but are less accurate, than digital. I also had the students form two lines, each sending the size of their decks from one end to the other. The analog line copied the drawn thickness of the deck from person to person, whereas the digital line copied a number from person to person. This illustrated that transfer of an analog signal can pick up noise, easily altering the signal, whereas transfer of a digital signal is much less prone to error. We also used the abacuses and slide rules to carry out multiplication and division, which can be done more accurately on abacuses (digital) but faster and with less energy on slide rules (analog). Finally, we discussed whether the brain is an analog or digital computer. What do you think?

After class, the students worked on the final projects in the lab. I visited with each group, and they all seem to be making good progress, although I know they are a bit worried about completing (they will do just fine). Jeremy and Yongwha are building a jungle simulation. Kellen, RoYa, and Suejean are working on a chess-playing game. Justin, Vickie, and Margarita are working on a handwriting analysis program. Chris, Colin, and Greg are desigining a text-based fantasy game. Finally, Bennett, Jeff, and Mack are building a GUI for displaying Mandelbrot and Julia sets. Their goal is to get something ready by Wednesday, so that it can then be refined for final presentation on Friday.

Friday is not too far, and then it will be over. I believe there is a party for the students on Friday. I wonder if professors are invited?

Friday, July 29, 2005

Stealth

As the third week comes to a close, the students had a fun Friday. In the morning, they visited the Neurosciences Institute (and were excited about having gotten to ride Segways). In the afternoon, we went to see the movie "Stealth." It is about a highly sophisticated UCAV (unmanned combat aerial vehicle) fighter jet that has artificial intelligence. When it is added to a team of three of the best fighter pilots, they initially are skeptical, but become impressed with its capabilities. Until - of course - something goes wrong. The movie stretched credulity in many places, but I did find it interesting and even funny (I especially liked that EDI, which is the nickname of the UCAV, likes to listen to music which it downloads off the Web). The experience was good because the movie brought up many issues about artificial intelligence that we discussed in class. It also got us out of the classroom and off campus, which the students seemed to enjoy a lot.

Three weeks have gone by so fast. Next week, the students will focus on their final projects, and it will all end on Friday.

Thursday, July 28, 2005

The Programming Contest

From 12 noon until 7pm today, the students took part in a real programming contest. My colleague, Prof. Brad Calder, runs these kinds of contests for our undergraduates, and has coached our teams to national and world final events. He volunteered to hold such an event for our COSMOS students. We divided the students into six teams, each consisting of 2-3 COSMOS students. Each team also had a college-level (undergraduate or graduate) student "advisor," to help their team with programming questions, but not strategy, for which the COSMOS students were solely responsible. The contest consisted of a multi-player game where each team owns a castle with a ruler, knights, and peasants, and the goal is to program (in Java) strategies for how the pieces should move to defend one's castle and win over other ones.

We began at 12 noon and, over lunch, the teams were announced and the instructions were given out. Frankly, when I saw the instructions, I felt the students might have a difficult time. These contests are geared towards college students, and probably ones in their junior or senior years. In our case, we have high school students who just finished their sophomore or junior years. However, our students were able to get off the ground and after an hour they were quickly into strategizing. As the hours went by, they would try out their programs against simulated opponents or each other to see how their strategies worked.

At 6pm, all final programs had to be submitted, and a 6-way "battle royale" between the programs then took place. Over pizza, we all watched the various teams compete on the big-screen display, with lots of cheering by each team. It was absolutely great and lots of fun to watch! The winning team (they called themselves "the winner" - that's the name they initially chose!) consisted of COSMOS students Bennett and Vickie, and student helper Weifeng.

I am really impressed that the students were able to create interesting strategies from scratch, with concentrated effort over an 8-hour period. I am very grateful to Brad and his students, each of whom also put in 8 hours (and more in preparation, especially Michael Van Biesbrouck who set up all the software), for making this one of the most memorable experiences for our students during COSMOS.