Computer Science Cache
A Newsletter of the Department of Computer Science
University of Colorado at Boulder
Spring 1997
It has been a year since our last issue of the newsletter. We intended to publish an issue in the Fall, but somehow we did not manage to schedule the time to produce it. We were also short on news from alums; send us notes about what you are doing!
In October, we were shocked by the death of two members of the Computer Science family. Bob Terwilliger was an Assistant Professor in the Department from 1987 to 1992, specializing in software engineering; he died of natural causes at his home in Boulder. Prior to his death, he had been working with Peter Polson in the Institute for Cognitive Science on a second Ph.D.
Last year we announced that Clive Baillie had been appointed to the
faculty as a Research Assistant Professor.
Clive and his wife Julie Boucher died in a climbing accident in the mountains
west of Boulder in October.
He had worked closely with Oliver McBryan on various Grand Challenge
problems; he was a world-renown expert on climate models and in
squeezing the maximum performance from supercomputers.
Just before his death, Clive sent me the article about his work.
That article appears later in this newsletter.
We are deeply saddened by the loss of these two friends.
The University and the College of Engineering have decided to try a new, supplementary approach to graduate education. As a pilot study, several engineering departments are planning on offering a new professional certificate program, with specialization in areas such as software engineering, applied networks, databases, and graphic user interfaces.
The idea is that each area will have a 4-course sequence focusing only on that area; a student can enroll in the certificate program to refurbish or learn new skills in the area without having to be admitted to the full 30-credit Master of Science or Master of Engineering program. This allows the student to focus on a specific area, learning Master's level materials in the area, but without spending time on the breadth of computer science that is appropriate for a full Master's degree.
In our plan for the certificate, three of the courses will be from our normal graduate curriculum. For example, in the software engineering area, the three normal courses might be CSCI 5828 (Foundations of Software Engineering), CSCI 5753 (Computer Performance Modeling) or CSCI 6448 (Object-oriented Design), and EMEN 5042 (Methods for Process Management). The fourth course will be a course specifically designed for the certificate program. It would synthesize and apply the material from the other courses with an eye toward commercial and industrial use.
We hope to launch the
certificate in at least one of the areas (probably software
engineering) by the fall, so
if you are still located in the Boulder area and are interested
in this program, contact the Department.
If the first certificate area is successful, we will expand into
other areas in which people are interested.
We are pleased to announce that the Department has formed a new Academic Advisory Board and a new Research Advisory Board. The Academic Advisory Board will focus on all aspects of the academic program including the departmental strategy, curriculum, degree programs, the certificate program, project programs, placing our alums, and generally giving us guidance that will help us take the correct course of action from the perspective of the business community. The Academic Advisory Board members are
The Research Advisory Board will focus on all aspects of our research program including strategy, identifying weaknesses in our research program, helping us to leverage our strengths, raising the visibility of the program, and generally giving us guidance to help us make appropriate decisions from the perspective of the research community. The Research Advisory Board members are
The first meeting of the Research Advisory Board is also being planned for August, with at least some time in which the members from the two boards can meet one another.
We are extremely fortunate to have two boards with this quality
of advisors.
From Bruce ...
In the last newsletter, Professor Nutt reported some preliminary data on CU Computer Science students and where they were working. During the development of the Senior Project web pages, I have gathered a much more complete set of data that might be of interest.
Nearly 400 students have completed Senior Project in its first nine years. Of these 400, I have now been in contact with all but about 50. It has been great to hear from all of you about where your careers have taken you, about your families, and about other major events in your lives. Some of you have even stopped by to visit when in Boulder, and are usually surprised when I not only remember your name, but the group that you were in, and perhaps even a few bits of (you thought long-forgotten) trivia about your project.
Don Gourly (M.S., 1987) is a Technical Program Manager leading the development effort for the National Museum of Natural History's Collections and Research Information System, an integrated set of tools for managing and analyzing specimen collections data at the Smithsonian Institute. Before joining the Smithsonian in 1993 he worked for Hewlett-Packard in Fort Collins, developing compilers and software development tools.
Silvia Crivelli (Ph.D., 1995) has recently moved to the Life Sciences Division at Lawrence Berkeley National Laboratory. She is a postdoctoral fellow in a group studying molecular structures. Among her collaborators are Bobby Schnabel, Richard Byrd, and Betty Eskow from this department.
Jonathan Bein (Ph.D., 1992) is President of Bolder Heuristics. Jonathan says "I am having a blast and growing in unanticipated ways running a 40 person consulting firm here in Boulder. The training at CU served me well." Mitchell Smith (M.S., 1991) is a Senior Software Engineer at Bolder Heuristics.
Marty Millet (B.S., Computer Science/Sociology, 1995) says that his career at the University of Colorado Police Department has complemented his education at CU. "I provide practical support to our evolving computer users and environment." His "post-senior project" is a Police Records Management system customized for police needs using Delphi on an 80-user Novell LAN. Marty encourages you to visit their web page at www.colorado.edu/police
Isabelle Demeure (Ph.D., 1989) is Assistant Professor in the Computer Science Department of Ecole Nationale Superieure des Telecommunications in Paris (one of the top ten engineering schools in France). She is also the Deputy Chairman of the department. Isabelle also heads the architecture and systems group, while she is teaching and doing research in the area of parallel, distributed and multimedia systems.
Thomas L. Robinson (B.S., Computer Science/Physics, 1987) completed an M.S. degree in Computer Science at the Naval Post Graduate School in Monterey, writing a thesis entitled "On-Line Type Inference."
After finishing his postdoc in England, Keith Vander Linden has taken a position as an Assistant Professor at Calvin College in Michigan.
Adam Beguelin (Ph.D., 1990) has taken a position at Inktomi in Berkeley; he has retained a part time appointment Carnegie-Mellon University as a Research Assistant Professor.
Zulah Eckert (Ph.D., 1995) has taken a position on the technical staff as a performance specialist at Hewlett-Packard in Fort Collins.
Jeff McWhirter (Ph.D., 1995) is at Lucent Technology after a one-year stint at Worcester Polytechnic Institute in Massachusetts.
Curt Stevens is now a Research Scientist at Apple Advanced Technology.
Jonathan Ostwald and Gerry Stahl both hold Research Associate positions in the Center for Lifelong Learning and Design at UC-Boulder.
Patrick Juola is doing a postdoc in the Department of Experimental Psychology at Oxford University.
Tamara Sumner is an Assistant Professor at Open University, London, England.
Kumiyo Nakakoji holds an appointment as an Assistant Professor at the Nara Institute of Science and Technology, Japan.
Brent Reeves is with Software Research Associates, splitting his time between Boulder and Tokyo.
Frank Shipman is a Research Professor at Texas A&M University.
Andreas Girgensohn is at Fuji-Xerox Research Laboratory in Palo Alto, California.
James Sullivan is an Associate Professor at West Point University in New York.
Mark Timares has been a consultant at Andersen Consulting in San Francisco and Denver since graduating from CU.
Tom Rebman is an engineer with Qualcomm Incorporated in Boulder.
I have done UNIX Systems Administration/support and/or programming for many folks; to name a few I have worked for NCAR, Tandem Computers, AMD (Advanced Micro Devices) and I am currently consulting for U S West.
I am most proud of working for myself though; yep I am taking on the American Dream and I have started my own business, Majordomo's Net Cafe. My "mothership" store is in Denver and I am currently working on other Majordomo's Net Cafes around the world.
I have utilized my Computer Science skills by designing the network, physically pulling over 2 miles of networking cables myself, specifying, purchasing and configuring my clients and servers and much more. The cafe has networked, and all working somewhat harmoniously together, Windows NT, Windows 95, UNIX (OSF on a DEC Alpha no less!) and Macs - what a fun technical challenge this has been!
I am very proud of my Computer Science background and I am afraid of losing my technical edge with all of the business demands of owning and operating my own business. Some good news about Majordomo's, we were just voted Readers Pick in Peak Computing Magazine for "Best Internet Cafe 1996", the article said we were technical and eclectic!! What an honor!
I have found that my degree and the computer science skills that I gained by attending CU Boulder have allowed me to excel in my field of Computer Science. I wouldn't change my education and background for one minute. I thank Evi, Fosdick, Ehrenfeucht and the whole Computer Science Department for being so demanding on us as students. I swear I could recite the DOD Functional Specs in my sleep and I have lived, breathed and slept the software lifecycle thanks to the Senior Project. Thanks to all of you! Please do continue to keep send me your Computer Science Newsletter, I really enjoyed reading this and am proud to be a CU Computer Science Alumni!
Sherry Comes
President/Owner
Majordomo's Net Cafe
Satinder Singh joined the faculty as an Assistant Professor in
August, 1996.
His research area is machine learning, especially using neural net approaches.
He earned his Ph.D degree at the University of Massachusetts in 1993, spent
a few years as a postdoctoral researcher at M.I.T., another year at
Harlequin, Inc. in Cambridge before joining us. Satinder is married
and has a daughter that is a Colorado native (she is still less than
a year old).
Assistant Professor Andreas Weigend left our faculty to join
the faculty of the College of Business at New York University.
Professor Weigend will continue his time series analysis research
in the heart of the nation's financial area -- Wall Street
(Andreas' research has often been applied to
analyzing and predicting stock market trends.)
Good luck, Andreas!
The Department continues to grow in the Undergraduate program: In the Fall of 1995, 71 Freshmen, 57 Sophomores, 64 Juniors, 69 Seniors, and 37 Fifth year Seniors enrolled in the program for a total of 298 students. Our Master's program has had a significant increase in enrollment with 91 MS/ME students and 69 students were enrolled in the PhD program in the Fall; this is a total of 160 graduate students.
At the campus level, the total enrollment was 24,622 students;
19,845 were undergraduates and 4,777 graduates. 68.6\% of the
students are residents of Colorado.
We are fortunate to have an unusual number of excellent teachers in the department, and the FCQs results reflect their skill. As a small exercise for you alums: how would you rate individual faculty now that you have been out of school for a while?
Name Course Enroll Course Instructor Spring, 1996 Martin 3203 30 3.18 3.50 Sanders 4318 54 3.59 3.69 Jessup 4676 2 3.50 4.00 Grunwald 4753 12 3.09 3.45 Bradley 4830 17 3.83 3.92 Eisenberg 4830 9 3.71 3.71 McBryan 5229 30 3.29 3.47 King 5817 48 3.50 3.61 Weigend 6622 13 3.27 3.45 Lewis 6838 19 3.47 3.71 Eisenberg 7000 10 3.70 4.00 Johnson 7111 5 3.40 3.60 Wolf 7818 7 3.57 3.71 Fall, 1996 Main 2270 58 3.56 3.78 Main 2270 58 3.56 3.77 Lewis 2830 46 2.32 3.47 Jessup 2830 8 3.00 3.50 Sanders 4308 56 3.28 3.49 Zorn 5535 24 3.84 3.89 Schnabel 5606 25 3.26 3.68 Gabow 5654 7 3.29 3.71 Byrd 6676 3 3.67 3.67 Eisenberg 7000 13 3.38 3.63 Zorn 7135 13 3.55 3.91 Grunwald 7143 6 3.67 3.80
Michael Main (left) just had his new book, coauthored
with Walter Savitch, published by Addison Wesley. It is called
Data Structures and Other Objects Using C++.
Liz Jessup (left), Lloyd Fosdick (right),
Carolyn Schauble, and Gitta Domik also
had their book,
An Introduction to High-Performance Scientific Computing,
published by The MIT Press.
Evi Nemeth (left), Scott Seebass, Garth Snyder,
and Trent Hein's second
edition of the systems administration book has been published, and
continues to do well.
Finally, Gary Nutt (right) has just had a book on
Operating Systems: A Modern Perspective
published by Addison Wesley.
Clive Baillie, Gregory Hill, John Wilson, Oliver McBryan
Following the success of MPI in standardizing low-level message passing for distributed memory massively parallel processors (MPPs), we have proposed and implemented a standard for a higher-level library for regular grid applications: RGL. There are several reasons why this is worthwhile:
In developing MPI-RGL we have been minimalist in functionality because we want the library to be used by application specialists coding their problems for MPPs. In fact there are only seven main functions in MPI-RGL:
INIT and FINALIZE simply start and stop the program on the MPP. DECOMP_CREATE domain decomposes the global grid in up to three dimensions, and DECLARE declares arrays for the local piece of the grid in each processor. LOOP_INDICES_GET calculates the local start and end indices for loops. EXCHANGE does all the inter-processor communication necessary when boundaries are exchanged, and ALLREDUCE performs of global reductions.
We have striven to make MPI-RGL as general and portable as possible, while adhering strictly to the MPI naming conventions and error handling. It is written in C, works with C++, and has wrappers for both Fortran and Fortran 90. We have verified that it works on all of the common workstations: DEC, SUN, SGI, HP and IBM, and on the Intel Paragon and IBM SP2 MPPs. It is currently being ported to Cray C90/T90 and Cray T3D/T3E.
The latest version of MPI-RGL (0.4) has profiling, based on the MPICH
visualization tool upshot, and a debugging interface which uses the MPI
Pcontrol idea. In the future we are planning to add parallel I/O,
based on the MPI-IO proposal which should become part of MPI-2,
and graphical user interfaces to profiling and debugging.
E.R. Jessup
To turn students into effective users of supercomputers, it is essential to introduce them to the machines through real application problems and not just toy problems or simple numerical examples. The students must learn which architectures are appropriate for which problems and how best to map the problems onto those machines. They must also learn how to determine the performance of their programs, including how to interpret what the compiler has done and how to use the clock properly. Finally, the students must learn to use the color, perspective, and animation capabilities of suitable visualization tools to display and interpret the large amounts of data typically generated by supercomputer programs.
A two-semester course sequence for undergraduates taught in our CS Department since 1991 introduces students to the use of high-performance computing systems in scientific and engineering applications in a way that exposes them to all of these aspects of high-performance scientific computing (HPSC). The course and the instructional materials on which it is based were developed by Lloyd Fosdick, Elizabeth Jessup, and Carolyn Schauble, all of CU, and Gitta Domik, now of the University of Paderborn. Its development was supported by the National Science Foundation under a CISE Educational Infrastructure grant awarded in 1990. The CISE EI program funds efforts to bring research results in computer and information sciences into the undergraduate curriculum. The CU undergraduate course was the first funded project in the area of advanced scientific computing.
The CU HPSC course begins with introductions to programming and performance measurement techniques for several different supercomputers. Students also study the computational and visualization tools Matlab and AVS. The concepts and tools learned in the early chapters are then applied to solution of numerical problems in molecular dynamics, advection, and tomography. The machines chosen for this course are representative of MIMD (multiple-instruction, multiple-data) and SIMD (single-instruction, multiple-data) distributed-memory multiprocessors and vector computers. The HPSC students presently make use of DEC, HP, and SGI workstations, Sun workstations linked as a distributed-memory MIMD multiprocessor via MPI, and a Cray J916 vector computer. Past offerings have included the now outdated iPSC/2 hypercube, Cray Y-MP, TMC CM-2, and MasPar MP-1 computers. Most of the supercomputers are accessed from sites like NCAR, NCSA, and the MasPar Corporation via the Internet. We expect the machines used to continue to change in response to technological advances.
While the primary goal of the courses was to bring undergraduate students into the real life world of high-performance computing, another goal was to encourage scientists researching that area to get involved in undergraduate education. That goal has been realized with researchers serving both as advisors to the HPSC course development project and as guest lecturers in the course. The first semester course also includes a field trip to NCAR where students are treated to an in-depth tour of the machine room and to research presentations by some of NCAR's scientists.
The interdisciplinary nature of the HPSC courses fits the model of teaching used in the College's new Integrated Teaching and Learning Laboratory. Indeed, the HPSC courses are considered to be the archetypical ITLL courses. While the HPSC courses are presently taught in the Lloyd D. Fosdick High-Performance Computing Laboratory in the CS Department, we expect future offerings of the courses to make use of the Simulation Laboratory--the ITLL's high-performance computing facility.
The course materials
include a series of single-topic tutorials, a laboratory manual and
accompanying code, short reference guides to subjects such as IEEE
arithmetic and some Unix tools, and manuals for the machines and
computational tools.
The tutorials, short references, and tool manuals have been published as
the textbook L. Fosdick, E. Jessup, C. Schauble, and G. Domik, An
Introduction to High-Performance Scientific Computing, MIT Press,
1996. All course materials, including the syllabi and some course assignments,
are available via anonymous ftp from the directory /pub/cs/HPSC
on ftp.cs.colorado.edu or via the
WWW.
These materials are being used in HPSC and other computer science courses
at many colleges and universities in several countries.
Alex Wolf and Dennis Heimbigner
When you look across the world, what you see are more and more companies competing in the high technology market. These companies include both the traditional industry giants as well as dynamic new startups. What do all these companies have in common? The critical need for better engineered software systems. Software has become the driving force behind most new technologies. Electro-mechanical devices, such as automobiles, now include multiple micro-processors for controlling the engine and the brakes. Software is also critical to the evolution of the Internet; electronic commerce, Java, and multimedia, are all products of software.
But the engineering of software is becoming increasingly complicated. A software designer must balance a variety of competing factors. Performance, time to market, safety, and usability are just a few of these factors. Additionally, the size of software systems that we build is growing rapidly. Twenty years ago, a 1 million line program was considered the upper limit on system size. Today, industry and military efforts routinely produce systems of that size and larger. As a result, software engineering has become more important than ever, and provides a rich and challenging domain for research.
The Department of Computer Science's Software Engineering Research Laboratory (SERL), led by Prof. Alexander Wolf and Dr. Dennis Heimbigner, is pursuing the discovery of principles and the development of technologies for supporting the engineering of large, complex software systems. The challenging target for their work is to support organizations and software systems operating in the wide-area, heterogeneous, distributed, and decentralized context of the Internet. Broadly speaking, there are four themes that underlie their research.
For software engineering research to be effective, it has to be relevant. Alex and Dennis are
constantly on the look out for opportunities to work with partners in industry, both to test out
their ideas and to gain new insights into the problems faced by practitioners. Please feel free
to get in touch with either Alex or Dennis for further information.
The department's research funding continues to grow at a phenomenal rate. Last year, Computer Science earned the sixth largest amount of any unit on the Boulder campus --- over $6 million in grants. We would especially like to recognize Dennis Heimbigner, Roger King, and Alex Wolf for their DARPA award for continuing Arcadia work; Bobby Schnabel, Oliver McBryan, Dirk Grunwald, and Mike Schwartz for the NSF Research Infrastructure grant; and Gerhard Fischer and the staff of the LifeLong Learning and Design Center for their numerous awards.
Here is a table of the contracts and grants awarded to Computer Science during 1996
PI NAME Agency Project Title Amt Awarded Duration of Award Elizabeth Bradley ONR Automatic Construction of $161,665 Accurate Models of Physical 4/96-3/99 (Yr 2 of 3) Systems Elizabeth Bradley NSF Natl. Young Investigator Award $62,500 4/96-1/98 (Yr 3 of 5) Elizabeth Bradley Packard Foundation Research Fellowship $100,000 11/96-10/97 (Yr 2 of 5) Xiao-Chuan Cai NSF Natl. Young Investigator Award $25,000 5/96-8/97 (Yr 3 of 5) Xiao-Chuan Cai Old Dominion Univ. A Numerical Laboratory for $166,517 Multi-Model Multi-Domain 11/96-9/97 (Yr 2 of 3) Computational Methods in Aerodynamics and Acoustics Andrzej Ehrenfeucht ONR Developing a Multi-Media Patricia Baggett $113,244 Browsing System Based on 5/96-5/97 (Yr 2 of 2) Cohesion Michael Eisenberg NSF Natl. Young Investigator Award $62,500 7/96-1/98 (Yr 5 of 5) Michael Eisenberg NPCS Nishioka Fellowship $12,500 8/96-5/97 (Yr 1 of 1) Clarence Ellis NSF Architectures for Workflow Gary Nutt $150,000 Systems 5/96-9/97 (Yr 3 of 3) Gerhard Fischer DARPA Designing Useful and Usable Michael Eisenberg $500,000 Computational Environments 1/97-1/98 (Yr 3 of 3) Gerhard Fischer NSF Shared Interaction in Support Ernie Arias $61,300 of Design, Learning and Hal Eden 2/96-1/97 (Yr 1 of 1) Planning Gerhard Fischer NSF Making Learning a Part of Life: Ernie Arias $50,000 Theories, Technologies, Lawrence Carlson 9/96-9/97 Practices, and Assessment in Mark Dubin Support of Lifelong Learning Mark Gross Fischer NSF Bringing Learning Activities to Harold Eden $619,617 Life Michael Eisenberg 9/96-8/97 (Yr 1 of 3) Alexander Repenning Gerhard Fischer Apple East/West Consortium: Next $150,000 Generation Authoring Tools and 11/96-9/97 (Yr 1 of 1.5) Instruction Applications Dirk Grunwald ARO Open Architecture for $163,080 Distributed Computing, Part B (5/96-5/99) (Yr 1 of 3) Dirk Grunwald Indiana Univ. Programming Environments, William Waite $228,015 Compiler Technology and Runtime 5/96-5/97 (Yr 3 of 3) Systems for Object Oriented Parallel Processing Dirk Grunwald CASI Predicting Program Behavior to James Martin $30,000 Support Instruction Level William Waite 7/96-6/97 (Yr 1 of 1) Parallelism Benjamin Zorn Dirk Grunwald Hewlett Packard Predicting Program Behavior to James Martin $30,000 Support Instruction Level William Waite 7/96-6/97 (Yr 1 of 1) Parallelism Benjamin Zorn Dennis Heimbigner DARPA University of Colorado Arcadia Roger King $1,834,748 Research: Software Environments Alexander Wolf 3/96-7/97 (Yr 3 of 3) in Support of Wide-Area Development Richard Hull USWest Support for Telecommunications $62,819 Information Processing 1/96-12/96 (Yr 3 of 3) Using Hypotheticals and Activeness Elizabeth Jessup NSF Natl. Young Investigator Award $62,500 5/96-1/98 (Yr 4 of 5) Elizabeth Jessup NPSC Mather Fellowship $12,500 8/96-5/97 (Yr 1 of 1) Roger King USAF Technology Transition From the $269,072 CU Database Systems to 2/96-8/96 (Yr 1 of 1) Unidata Inc. Roger King NASA A Toolkit for Active Object- $123,480 Oriented Databases with 2/96-8/96 (Yr 3 of 3) Application to Interoperability Roger King AF Sybil: Providing Life Cycle $349,051 Support for Persistent 5/96-12/99 (Yr 1 of 5) Applications Via an Intelligent Database Evolution Environment Roger King NSF Diplomat: A System for Building Michael Novak $146,059 and Maintaining Heterogeneous Richard Hull 7/96-7/97 (Yr 1 of 3) Database Alliances Clayton Lewis NSF Enhancing Children's $385,565 Understanding of Science 6/96-5/96 (Yr 2 of 3) through Collaborative Creation of Animated Pictorial Models Oliver McBryan NSF Acquisition of a Grand $800,000 Challenge Data Laboratory 8/96-8/99 (Yr 1 of 5) Oliver McBryan NSF Integrating HPCC into Physical $112,500 Sciences Research 8/96-6/98 (Yr 1 of 5) Oliver McBryan NSF High-Performance Computational $286,813 Methods for Coupled Fields 9/96-9/98 (Yr 1 of 2) Oliver McBryan Univ. of Illinois Acquisition of a Grand Charbel Farhat $210,216 Challenge Data Laboratory 11/96-8/97 (Yr 1 of 1) James Martin NSF A Knowledge-Based Approach to Sergei Rodionov $100,000 Climate Analysis and Forecasting 5/96-4/97 (Yr 2 of 3) Robert Schnabel AFOSR Large-Scale Optimization Methods $224,160 for Molecular Chemistry Problems 2/96-12/96 (Yr 3 of 3) Robert Schnabel NSF Symbiotic Parallel Language and $164,144 Application Development for 2/96-7/97 (Yr 3 of 3) Massively Parallel Scientific Computation Robert Schnabel NSF High Performance Infrastructure Dirk Grunwald $286,203 for Computational Science Oliver McBryan 7/96-7/97 (Yr 2 of 5) Michael Schwartz Robert Schnabel SCEEE Nix Fellowship $14,004 9/96-2/97 (Yr 1 of 1) Robert Schnabel ARO Developing and Understanding Richard Byrd $35,000 Methods for Large-Scale 12/96-6/97 (Yr 3 of 3) Nonlinear Optimization Andreas Weigend AF Clearning Phase Array Radar Data $68,210 1/96-12/96 (Yr 1 of 3) Alexander Wolf NSF International Cooperative $6,756 Research on Software Architec- 5/96-4/98 (Yr 1 of 1) ture Formal Specification Alexander Wolf NSF Design and Evaluation of $104,516 Algorithms for Storage Recla- 7/96-8/97 (Yr 1 of 3) mation in Object Databases Alexander Wolf University of Texas Escrow: Educational Software $187,500 Configuration and Reconfigura- 1/96-8/96 (Yr 1 of 1) tion on the Web for the Univ. of Colorado Project Benjamin Zorn NSF Improving the Performance of $62,819 Dynamic Storage Allocation 4/96-8/97 (Yr 3 of 3) Using Behavior Prediction