A Newsletter of the Department of Computer Science
University of Colorado at Boulder
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.
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.
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.
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
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.
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.
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.
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.
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
Alexander Repenning (Ph.D., 1993) is part of a startup company (see their web page at http://www.agentsheets.com). 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.
[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
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.
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
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.
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.