Computer Science Cache

A Newsletter of the Department of Computer Science

University of Colorado at Boulder

Spring 1998

CS Student Wins Outstanding Engineering Graduate Award

Congratulations to Brian Cooper (CS '98) on having been selected by the College of Engineering as the Outstanding Graduate for Spring 1998 Graduation. Brian is a double major in Computer Science and Chemistry and has been elected to the Tau Beta Pi, Phi Beta Kappa and Golden Key honor societies. He has also been the President of the CU Speech and Debate Association since 1995. Brian will be going on to Stanford in the fall to pursue a PhD in Computer Science.

Outstanding Teacher Michael Main

Professor Michael Main continues to be honored for his commitment to education and learning. The textbook that he coauthored with Walter Savitch (Data Structures and Other Objects Using C++) has become the leading book in data structures in the country. Michael has done major revisions in the way introductory programming and data structures are taught at CU, including the use of students trained as mentors, and live enactments of the behavior of data structures by students in the classroom.

In the Fall, Michael pushed the borders of conventional education by holding a retreat for mentors for his data structures course. To prepare them for this work, he arranged for a two-night, one-day retreat in a large cabin at the Snow Mountain YMCA Camp of the Rockies near Winter Park. The primary purpose of the retreat was to learn some group leadership skills through role-playing exercises. Mow he is working on the programming languages course.

This year, in a rare combination of awards, he won the Boulder Faculty Assembly Award for Excellence in Teaching, which is given to three faculty members on the Boulder campus, as well as the Charles Hutchinson Memorial Award of the College, which is given to the college's outstanding teacher.

Major Gifts to Computer Science

Many companies have recently been remarkably generous with gifts to the department. Microsoft presented the department with at $35,000 cash grant to assist in establishing and operating a lab for Windows NT machines. Mitsubishi Electronic Research Labs presented a $50,000 gift to Mike Eisenberg to support his research, and MARS, Inc. gave Professor Jim Martin $12,500 to assist in his research program.

We have also received major gifts of equipment from US West, StorageTek, IBM, Network Appliance, Sybase, Lockheed Martin, Great Western Life, Gigalabs, and Cacheflow. This equipment has been used to support the infrastructure, and has been the major source of equipment for our teaching labs.

Finally, we wish to especially thank Chris Williamson (M.E., 1995) for his personal gift to buy equipment for the alumni machine ( For more details, see the list of gifts elsewhere in the newsletter.

New Faculty

Tamara Sumner will join the Department of Computer Science, ICS, and the Center of LifeLong Learning and Design in January, 1999. Tamara received her Ph.D. in Computer Science in December, 1995 at the University of Colorado.

In January 1996, Tamara joined The Open University Knowledge Media Institute in Milton Keynes, UK, where she has a permanent post as Lecturer. Her research topics have been in Open Learning, Distance Learning, Workplace Learning, Educational Media, and Digital Documents. As part of her research she has participated in designing, implementing, and evaluating an Interactive Course Map for a new open learning course in introductory computing. She also worked with a team to develop a new, year-long introductory computing course in "object-oriented design" which is expected to be a "flagship" course for the Open University in terms of using new media extensively. The course went online in February 1998 with approximately 5,000 students enrolled.

As research degree student coordinator for the Knowledge Media Institute, she developed a framework for Ph.D studentships that set out key progress milestones, supervision and monitoring arrangements, and training schemes.

Tamara is co-founder, co-editor and co-designer of the Journal of Interactive Media in Education (JIME), an innovative web-based electronic journal, published using the Digital Document discourse environment. JIME received Special Mention in The Charlesworth Group Award for Electronic Journals in December of 1996. To learn more about JIME visit the URL.

Advisory Board Meetings

The department's advisory boards held their second meeting in March, 1998. On March 13, the Academic Advisory Board met, with Terry Drabant, Bernard Gateau, Gary Keschl (for Carolyn Maher), Gordon Lewis, and Bill Richardson in attendance. Professor Richard Adrion (University of Massachusetts) and Professor Richard Taylor (University of California at Irvine and a CU alum) met with the advisory board. A highlight of the meeting was a panel, composed of Terry Drabant, Bill Richardson, Richard Adrion and Richard Taylor, addressing the future of software engineering. The room was overflowing, with a number of positive statements coming from the attendees.

The Research Advisory Board (Les Belady, Bob Ritchie, and Bert Sutherland) met on March 16. After reviewing more of the department's research, they reported: "We are very favorably impressed. The department is moving in needed directions to build a very healthy research program, showing signs of focus and the development of synergy among the faculty. The leadership of the new chair is delightful. The roster of faculty candidates is impressive; we wish the department every success in convincing several of them to join this year."

Both boards enthusiastically supported growth in the resource allocation and faculty to address the ever increasing number of students who want to study computer science.

From the Chair: Challenges and Opportunities

This past academic year we experienced continued strong enrollment growth as have many of our peer institutions. But while Computer Science at CU Boulder has grown almost without interruption for a long time, there now seem to be a change nationwide from a period of stagnation to one of sustained and significant growth in Computer Science enrollments.

In this environment we are working on securing the resources to be able to continue to offer quality programs to our students. We have had good interactions with the university administration, some of it in the context of our advisory board meetings in March. We are also in the middle of a "program review" process, which will get wrapped up in the Fall and will provide another opportunity to make our needs and concerns clear. I am optimistic that the final outcome will be very positive for our department.

I am very pleased that three new faculty members will join us this coming academic year: Ken Anderson from UC Irvine with interests in software engineering and hypermedia, Leysia Palen, also from Irvine, with interests including computer-supported cooperative work and the social implications of information technology, and Tammy Sumner from the Open University in the UK, with interests in human-computer interaction, lifelong learning and educational media. After they join us this newsletter will provide more detailed information about their teaching and research interests.

And finally, I am very pleased to note that our instructional computing facilities will get a strong boost through a very generous contribution from Sun Microsystems that will get installed over the summer. More details about that will also be in our Fall edition.

These are great developments to end the academic year on. And I certainly expect to be able to report more good news in this space in the future.


Around the Department

During the Spring E-Days activities, Pam Compo was selected as the Outstanding Undergraduate Advisor in the college by a vote of the undergraduate students. No committee decision, instead a straight vote by the students. Congratulations, Pam, and thank you!

Jan Mycielski, Grzegorz Rozenberg, and Arto Salomaa edited Structures in Logic and Computer Science: A Selection of Essays in Honor of A. Ehrenfeucht, Lecture Notes in Computer Science, v. 1261. This was a present for Andrzej's 65th birthday, August 8, 1997. He did not know about the project until he was given a copy.

Professor Clarence "Skip" Ellis will be inducted as an ACM Fellow in May 1998. This is a designation that is given to those ACM members "... who have distinguished themselves by outstanding technical and professional achievements in the field of information technology." Skip is the first ACM Fellow in our department.

Professor Oliver McBryan has received the Bank One of Colorado Corporation 1997-1998 Faculty Community Service Award. Bank One makes these awards annually to each of the four CU campuses to a faculty member "... who has rendered exceptional educational, humanitarian, civic, or other service in his or her community, external to the faculty member's primary University responsibilities and for no additional remuneration." Oliver was singled out for his work introducing web technology in schools and community.

Professor Bobby Schnabel received the Boulder Faculty Assembly Award for Excellence in Service. Bobby has been a tireless worker for the department, leading proposals for NSF infrastructure support, being Chairman of the department for five years, being Associate Dean for Academic Affairs for the College of Engineering for two years, and now serving as Faculty Director of the Atlas program where he leads the University's efforts in information technology.


Last issue, we bid a fond adieu to Lynda McGinley --- she's back as the manager of CSOps. Welcome back Lynda, we are certainly happy you reconsidered.

Peter Behrendt, Mike Schwartz, and Cathleen Wharton (Ph.D, 1994) are now Adjunct faculty members.

Dan Jurafsky was recently given a joint appointment with Computer Science (he holds a full-time appointment in the Department of Linguistics).


Mike Schwartz has resigned his faculty position to stay with @Home, a company specializing in various internet services. Mike says that he retains a great fondness for academia but that right now industry seems like the right place for him. He has kept his connection with CU by taking an appointment as an Adjunct Professor, and may still occasionally teach a class.

Donors to the Department

Microsoft			$35,000
Mitsubishi Electronic Research Lab	$50,000
MARS, Inc			$12,500

Chris Williamson		2 IBM 1 GB SCSI disks

Cacheflow			Web cache proxy machine
Gigalabs			Gigabit network switch
Great Western Life		48 Sun IPC workstations
				3 Sun IPX workstations
				18 Sun SparcStation 1 workstations
				Various color monitors
IBM				PC memory
Lockheed Martin			Sun SparcStation 1 workstations
Network Applicance Corp		Network equipment
StorageTek			8 Sun 4/330 systems
				Epoch storage manager
				Miscellaneous storage peripherals
				Netblazer CPU box
				10 color NCS X terminals
				5 Sun Sparc ELCs
Sybase				Software license
US West Advanced Technologies	80 color NCD X terminals

Alumni in Touch

Alexander Repenning (Ph.D., 1993) is part of a startup company (see their web page at He reports that "Our product is the AgentSheets environment allowing non-programmers to build interactive SimCity-like simulations that, at the press of a button, can be turned into Java applets and JavaBeans. AgentSheets has enabled high school kids to create Java applets that apparently challenge some of our grad students."

Jon Cook (Ph.D., 1996) is an Assistant Professor in the Department of Computer Science at New Mexico State University.

Stefanie Lindstaedt (Ph.D., 1997) wrote her thesis on "Group Memories: a Knowledge Medium for Communities of Interest" and has taken a position with DaimlerBenz Forschung und Technik (Research and Technologie), Ulm, Germany. You can contact Stefanie at .

Rick Blumenthal (PhD, 1998) completed his thesis entitled "Supporting Unstructured Activities with a Meta-Contextual Protocol in Situation-Based Workflow", and continues his work on groupware at US West Communications in Denver.

Getting in Touch

The Department continues to be housed in the College of Engineering, with the Departmental offices on the seventh floor. Our home page contains information about both programs and people, have a look. If you want to submit something for the next newsletter, send it to the editor, Gary Nutt ().

From the University Writing Program

[The pilot UWRP course for computer science and information systems students offered by Ann Bliss is moving right along. Professor Bliss provided us with the following report on the class. Editor] Your students are intelligent, hard working, and a LOT of fun. We are just finishing a collaborative project with an informatiks class at the University of Saarlandes in Saarbrucken, Germany--this collaboration has been quite an experience, but it is turning out well. We all learned a lot about working cross-culturally, cross-linguistically, and on the Internet. You might like to look at the project, which is posted on the server in Saarbrucken. Two of your students, Justin Brinkhoff and Rodger Wilson, have also developed the web page for our course. We will soon add an electronic magazine in order to post various written assignments in e-zine format. The entire class took part in a critique of several designs--the page you see was the most popular model. The students are also working on critiques of the web pages for the Life Long Learning Center (Gerhard Fischer's center), and they will soon begin an analysis of one of the L3D center's projects.

I don't know of any other undergraduate international projects such as this one, which asked teams of students (2 Germans and 2 Americans) to do research on the web and jointly write an essay of 750-1000 words analyzing various issues related to distance education. This pilot course is working quite well, and the students are writing all the time. I especially appreciate the focus of the course, which enables them to apply their theoretical and practical knowledge.

Teaching Performances

The CU Computer Science Department is fortunate to have a number of excellent teachers, reflected by the following FCQ results. Join us in congratulating all these fine teachers for their teaching performances for Fall, 1997.

Instructor Course #      Course Title                 Enrollment      Course  Instructor
                                                                      Rating  Rating

Lewis      1300          Intro Computing                   92           A-      A
Main       2270          Data Structures/Algorithms        68           A       A+
Main       2270          Data Structures/Algorithms        60           A-      A
Lewis      2830          Intro to Comp Sci                 76           B       A
Jessup     2830          Linear Algebra w/ CS Applications 13           B       B+
Main       2830          Mentoring/Debugging               25           A-      A+
King       3287          DB & Info Systems                 46           B       B+
Wolf       3308          Software Eng. Methods & Tools     57           B       B+
Bradley    3656          Numerical Computation             48           B+      A
Nutt       3753          Systems                           30           B       B
Nemeth     4113          UNIX System Administration        39           B       B
Sanders    4308          Software Eng Proj 1               59           B       B+
Martin     4830          Natural Language Processing       16           B       A-
Eisenberg  4830          Things that Think                 12           B+      A
Eisenberg  4830          Computer Science: The Canon       17           B       A-
Zorn       5535          Concepts in Progr. Languages      41           B+      A
Nutt       5573          Operating Systems                 30           B       B
Eisenberg  5582          Artificial Intelligence           29           B       B+
Byrd       5606          Principles Numerical Computation  11           B       B+
Singh      5622          Connectionist AI                  18           A-      A
Mozer      5622          Connectionist AI                  18           B+      B+
Cai        5636          Numerical Solution PDEs            9           A+      A+
Gabow      6454          Advanced Algorithms                9           A       A+
McBryan    7111          Parallel Processing               15           B+      B+
Zorn       7135          Topics in Programming Languages   15           A       A

What is "Component-based Software Development Anyway?

Ben Zorn

This Spring, I taught a section of CSCI 4830 entitled Component-based Software Systems. The intent of the class was to explore, both through readings and programming exercises, an approach to software systems based on software units called components. So what, exactly, is a component, and how does it differ from objects, which we all have heard about? Based on a definition taken from the class textbook, "Component Software: Beyond Object-oriented Programming" by Clemens Szyperski (Addison Wesley, 1997), components are unit of composition with well specified interfaces and explicit context dependencies. The intent is that components are deployed, composed, and integrated entirely by third parties. The hope is that components will create the kind of software reuse that object-oriented programming was supposed to bring, but to date has not.

So how does the concept of component relate to objects, in the object-oriented sense? Well, first, components do not typically have persistent state, unlike objects, which are usually considered as encapsulating state and behavior. Instead, components should be thought of as templates from which to make instances. Second, because components must have explicit context dependencies, they typically do not incorporate the inheritance mechanism found with objects. Inheritance is a form of implicit context, that is the class hierarchy is necessary to fully interpret the meaning of an object.

So given this definition, how are components supposed to be used? The current popular model of component use is integration through a visual builder tool, such as Microsoft's Visual Basic. These tools evolved from GUI builder tools, and GUI component toolkits are still the most common use of component systems today.

The introduction of components into software development creates new roles for developers. Specifically, in addition to traditional programmers, a new class of developer is the component assembler, whose role is to construct software by integrating existing components. While the component assembler may not have as much experience with designing algorithms, data structures, class hierarchies, etc. as a traditional programmer, the hope is that they have substantial domain expertise that current software developers may not have. As a result, they can quickly develop software that is particularly effective for their application domain.

In my class, we explored components by programming using the Java-related component model called JavaBeans. JavaBeans has extensive support in the Java 1.1 release, including the core reflection API and the new delegation event model. Developers of JavaBeans components can get a feel for the programming model using the Java BDK (Bean Development Kit), which is updated frequently. In addition to Sun's approach to components, we also discussed the current widely supported alternative approaches, namely Microsoft's COM (Component Object Model) and OMG's CORBA. All three of these technologies are rapidly evolving as the needs of such systems become more clearly understood.


In the Spring of 1998, 69 Freshmen, 57 Sophomores, 85 Juniors, 88 Seniors, and 50 Fifth year Seniors enrolled in the program for a total of 349 students. The Department also has approximately 115 minors (with majors from other programs in the university). Our Master's program has 103 MS/ME students and 68 students were enrolled in the PhD program in the Spring; this is a total of 171 graduate students.

Funding for the Computer Science Cache

This newsletter does not use any state, tuition, or grant funds. It is wholly funded through donations. Many employers will match any donations you make to an educational institution. If you would like to make a donation, and earmark it for any particular project, contact the Computer Science Department Chair at (303) 492-7514.

Dept of Computer Science, University of Colorado, Boulder, CO 80309-0430, 303-492-7514 (Dept. Office), 303-492-2844 (Fax), .