Title Page Previous Next Contents | COMPUTER SCIENCE DEPARTMENT

COMPUTER SCIENCE DEPARTMENT

This was a record-breaking year for the Computer Science Department. On June 8, we celebrated the graduation of 26 senior majors, our largest class yet. With the addition of our newest colleague, Steve Freund, this past academic year also saw us reach a record size of eight full-time faculty. Our computing facilities continue to expand, with our facilities manager, Mary Bailey, deploying an ever-increasing array of workstations and software tools in her tireless efforts to meet the diverse curricular and research needs of our students and faculty. And, of course, Lorraine Robinson, our administrative assistant, continues daily to provide invaluable support to all.
Professors Bruce, Danyluk and Murtagh, continued their work on developing new materials for the innovative introductory course developed and taught at Williams over the last several years. This work is supported by a $287,892 grant from the NSF CCLI program. This new approach uses Java as the programming language, and places a heavy emphasis on event-driven programming and concurrency early in the course. The grant supports the writing of a textbook for this course as well as further refinement of the “objectdraw” library and other supporting software for the course. Peter Applegate ‘03 worked with the faculty on software for the course in the summer of 2002, and Ashok Pillai ’05 will continue that work in the summer of 2003. In the summer of 2002, 15 faculty members from other colleges and universities attended a four-day workshop on using these materials, and have been using the materials this year. Professors Bruce, Danyluk and Murtagh have now signed a contract with Prentice-Hall on the book, with the final manuscript due in November.
This year Professor Duane Bailey began using the second edition of his text, Java Structures, a basic text on data structures, written for the Java programmer. He has begun work on revision of the software for the next generation of Java compilers, which he hopes to have available for use in fall of 2003.
Professor Bailey is continuing his investigation of computer science problems relating to the mechanics of genetics and molecular biology. He is also writing software that will support a winter study investigation of the ideas common to biology and computer science. That software should be freely available on the web by the end of the summer. The new course, Life as an Algorithm, will be offered in 2004, and may join the regular offerings of the department a year or two later.
Professor Kim Bruce continued his research on the type theory and semantics of object-oriented languages. The overall goal of his research is to increase the understanding of the key concepts of object-oriented languages in order to promote the design of more secure and expressive object-oriented languages. His research continues to be support by the National Science Foundation. He and Professor Stephen Freund were awarded a 3-year NSF research grant beginning in July 2003.
Research continued on three main projects. The first involved the design and implementation of an extension of Java that supports parametric polymorphism and a “ThisType” construct. Most of the work on that project this year was accomplished with Robert Gonzalez ’03, who worked as a research assistant during the summer of 2002, and also wrote an honors thesis on his further research during the academic year. John “Nate” Foster ’01 also consulted on the project and helped Rob understand the changes to the Java compiler that were part of Nate’s earlier thesis. Rob’s main work was on a modification of Sun’s Java virtual machine to increase the safety of the virtual machine when dealing with the new language features. His work also increased the efficiency of programs run with the virtual machine. Rob will be continuing this work as a research assistant during the summer of 2003.
The second project involved further work on the module system for LOOM, an object-oriented language developed at Williams with the assistance of several students. Diane Bennett worked as a research assistant for this project during the summer of 2002 and continued her work in a research course during the fall term of 2002. Her work resulted in a design for further improvements to LOOM’s module system, originally designed by Professor Bruce and Leaf Petersen ‘96. We hope to make further progress on this in the near future with another student.
The third project involved further work on providing type systems that support concurrent extension of mutually referential systems of interfaces and classes. This work built on research undertaken earlier with Joe Vanderwaart ’88. Increases in the sophistication of the type system has enabled a larger number of programs to be type-checked, and work is continuing on developing more expressive type systems that will guarantee that more relations in the original group of types will be preserved under extensions.
Professor Bruce was a co-organizer of the ECOOP 2002 Sixth Workshop on Pedagogies and Tools for Learning Object-Oriented Concepts in Malaga, Spain, in June 2002, and is co-organizing a similar workshop at ECOOP 2003 in Germany in July 2003. He chaired the meeting of the Liberal Arts Computer Science Consortium at Grinnell College. He also was on the program committee for POPL ’03, held in New Orleans in January 2003.
Professor Bruce was involved in several other activities through the last academic year. He served as outside evaluator in a tenure case this fall. He served on a visiting committee for Computer Science at Pomona College in April 2003. He attended the ECOOP 2002 meeting in Malaga, Spain in June 2002, the POPL ‘03 and FOOL 9 meetings in New Orleans in January 2003, and the ETAPS conferences in Warsaw, Poland in April 2003. He gave a talk at the New England Programming Languages Seminar at Yale University in August 2003, gave a seminar at the University of Turin in Turin, Italy, and gave an invited lecture at the Workshop on Object-Oriented Developments in Warsaw, Poland. Finally, he gave a tutorial on the Foundations of Object-Oriented Languages at ECOOP 2002 in Malaga, Spain.
On campus, he served as chair of the Faculty Steering Committee for 2002-2003, and was elected to serve on the Committee on Appointments and Promotions starting July 2003. He also gave a talk on his research to the Science Bag Lunch in November 2002.
This past year Professor Danyluk enjoyed a year of being on leave. During her leave, she gave an invited technical talk at the Fourth Grace Hopper Celebration of Women in Computing, which was held in Vancouver in October. The work that she presented was also published in the Handbook of Data Mining and Knowledge Discovery, which was published by Oxford University Press in 2002.
In the summer of 2001, Professor Danyluk, together with Professor Carla Brodley of Purdue University, co-chaired the Eighteenth International Conference on Machine Learning. Professors Danyluk and Brodley edited a special issue of the Journal of Machine Learning Research that includes a collection of work that grew out of that conference. The special issue came out in December 2002. This year Professor Danyluk is a member of the Advisory Committee for the Twentieth International Conference on Machine Learning. She has served as a reviewer for the Machine Learning Journal as well as the Doctoral Consortium to be held at the Eighteenth International Joint Conference on Artificial Intelligence in July 2003.
This fall, Professor Danyluk will be a member of the program committee for a Special Track on AI Education, to be held in conjunction with FLAIRS-03, the Florida AI Research Symposium.
Assistant Professor Stephen Freund came to Williams College in the summer of 2002. Since then, he has continued his research on automated tools for improving software reliability. The overall goal of this research is to improve software quality by designing tools to identify certain types of errors in programs before they are deployed to the public. Most recent work has focused on race conditions in concurrent programs. He presented a paper on “Thread-Modular Verification for Shared Memory Programs” at the European Symposium on Programming in Grenoble, France. This was joint work with Cormac Flanagan (HP Labs) and Shaz Qadeer (Microsoft Research)). He also presented a paper at the International Conference on Compiler Construction in Warsaw, Poland.
In the fall, Professor Freund gave talks on his work at Brown University, the New England Programming Languages Seminar (held at Yale), and the Workshop on Lightweight Languages (at MIT). In addition to those workshops and conferences, he attended the Symposium on Principles of Programming Languages in New Orleans in January, the IBM Programming Languages Seminar, and the New England Programming Languages Seminar at WPI in October. Most recently, he visited HP Labs and Microsoft Research to collaborate with colleagues at those institutions on ongoing research projects.
Professor Freund served as an external reviewer for the Symposium on Principles of Programming Languages, Conference on Programming Language Design and Implementation, Symposium on Operating Systems Principles, Journal of Automated Reasoning, Proceedings of the Estonian Academy of Sciences, and Transactions on Programming Languages and Systems.
During the summer of 2003, Professor Freund will be working with Peter Applegate, class of ’03, to build a type inference engine for a tool that checks atomicity specifications in Java programs, and with Professor Bruce and Rob Gonzalez, class of ’03, on module systems for object-oriented languages.
Assistant Professor Barbara Lerner was on leave during 2002-2003. While on leave, she continued her research into the coordination of human and automated agents. The recent focus of her work has been to use software verification tools and consistency checking tools to analyze coordination processes written in the language Little-JIL.
During summer 2002, Professor Lerner worked with Shimon Rura (‘03) using xlinkit, a consistency checking tool, to develop an analyzer for Little-JIL processes that detects semantic errors and programming anomalies. Using xlinkit, semantic rules are described declaratively in first-order logic. This novel approach to specifying language semantics resulted in rules that were well encapsulated and easier to understand than traditional implementations of semantic checkers. The rules defined ranged from simple localized rules, such as ensuring that variables were initialized, to more complex rules, such as detecting cases of infinite recursion.
Shimon also worked with Professor Lerner on an honors thesis studying the refactoring of aspect-oriented software. Aspect-oriented software is a new approach to software development in which features that apply to multiple classes are encapsulated within their own constructs, called aspects, and woven into those classes at execution points defined within the aspects. Refactoring is a software development methodology used to reorganize the code in a piece of software to facilitate its maintenance without changing its behavior. Both aspect-oriented approaches and refactoring are thus aimed at modifying the encapsulation of software to improve its maintainability. Shimon’s thesis involved studying how these techniques can interact. Specifically, he investigated how existing refactorings for object-oriented languages must be changed to work with aspects and also what new refactorings would better support the development of aspect-oriented software.
Professor Bill Lenhart continued to pursue his research interests in graph algorithms and computational geometry. This year he supervised the honors work of Jeremy Redburn ’03. Jeremy’s project focused on the design of efficient algorithms for the exact (that is, free of numerical error) computation of visibility information from certain kinds of 3-dimensional graphics scenes.
The paper “Bichromatic P4 Composition Schemes for Perfectly Orderability”, written with Professor Ryan Hayward of the University of Alberta, was recently accepted for a special issue of the journal Discrete Applied Mathematics dedicated to the conference Brazilian Symposium on Graphs, Algorithms and Combinatorics 2001 in Fortaleza, Brazil.
This summer Professor Lenhart will be attending the 2003 PIMS-MITACS Summer School on Quantum Information Science at the University of Calgary, as well as the ACM SIGGRAPH conference on computer graphics in San Diego.
Professor Lenhart served as chair of the department again this year; he also served as the Division III representative on the Committee on Appointments and Promotions. As of June 30, he will be stepping down from both of these positions to assume the role of Acting Dean of the Faculty until January 2004, at which time he is scheduled to take what he expects will be a much-needed sabbatical.
Professor Murtagh continued to investigate the behavior of the congestion control mechanisms associated with the TCP protocol with the goal of providing better support for short-lived interactions associated with many widely used TCP-based applications. Current implementations of TCP use a feedback mechanism to adjust the rate at which a machine attempts to send new messages in response to detected losses of data. This mechanism has been highly tuned to handle large data transfers efficiently.
Current applications of the Internet, however, involve many small data transfers such as those associated with small email messages and images used as icons within web pages. TCPs current implementation handles such transfers poorly. So little data is sent that the information collected cannot provide a statistically significant prediction of the network’s capacity. In addition, while the overhead required by TCP is small when amortized over a long data transfer, it represents a significant performance penalty in the context of short data transfers.
This year, with the assistance of Teodora Ivanova ‘03, Professor Murtagh began a project designed to evaluate the relative performance of several schemes for handling clusters of short data transfers associated with web page retrieval. They constructed software to simulate the handling of web requests using serial HTTP request, parallel requests, persistent HTTP and TTCP. This summer, the software will be completed and used in continuing work to collect data on the performance of these techniques.
Professor Murtagh discussed this work on congestion control in a series of lectures entitled “Internet Congestion Control” sponsored by the Williams College Sigma Xi Club in the fall. He attended the ACM SIGCOMM conference on Applications, Technologies, Architectures and Protocols for Computer Communications in August, and the Twenty-Second Annual Joint Conference of the IEEE Computer and Communications Societies in April.
Assistant Professor James Teresco continued his research on parallel and distributed computing, specifically in the area of dynamic load balancing for adaptive scientific computation. Parallel computation is a well-established and essential tool for large-scale scientific computing. Adaptive approaches, such as the automatic refinement and coarsening of meshes or the variation of method order, often necessitate linked structures that must be explicitly partitioned into sub-domains that can be distributed among processors, assigning equal work to each while minimizing communication. A balanced workload, achieved by a static partitioner, will cease to remain so under adaptive refinement, and will require redistribution during the solution process using a dynamic load balancing procedure.
Professor Teresco is working with Sandia National Laboratories on the development of Zoltan, a software library that provides a common interface to a number of state-of-the-art partitioning and dynamic load balancing algorithms. He traveled to Albuquerque, New Mexico, to meet with the Zoltan group. Professor Teresco’s work on Zoltan is in collaboration with Paul Campbell (Rensselaer and IBM), Karen Devine (Sandia), Joseph Flaherty (Rensselaer), Jamal Faik (Rensselaer), and Luis Gervasio (Rensselaer). They incorporated into Zoltan an octree load balancing procedure that uses an octree structure to cover a computational domain, dividing the work spatially among “terminal octants” (leaf nodes of the tree). A tree traversal is used to divide the octants among partitions to be distributed on a parallel computer.
Recent work includes the use of space-filling curves to linearize the terminal octants in a way such that the quality of the resulting partitions, and in turn, the efficiency of the computation, is improved.
Modern parallel processing is being performed on everything from the largest tightly coupled supercomputers to clusters of workstations. Any adaptive strategy seeking optimal performance must account for processor, memory, and communications hierarchy and heterogeneity. Hierarchical and heterogeneous systems are increasingly common, and present new challenges for the development of efficient software, particularly influencing dynamic load balancing procedures. Professor Teresco continues to work with Devine, Faik, Flaherty, and Gervasio, to support architecture-aware load balancing in Zoltan. Current work includes the automatic construction of a machine model that represents the computational domain, and on algorithms that use this model to guide load balancing. The machine model is based on one developed by Professor Teresco as part of his Ph.D. dissertation. He and Flaherty were awarded a grant entitled “Hierarchical Dynamic Data Management and Load Balancing for Parallel Adaptive Computation,” to support this research. The work is funded by Sandia National Laboratories.
Professor Teresco worked with Lida Ungar ‘02 during the summer of 2002 to analyze the performance of the dynamic load balancing procedures in Zoltan when applied to a number of problems of interest. Ungar also modified the Zoltan implementation of the recursive coordinate bisection algorithm to provide a “slice” partitioning, designed to minimize the number of neighbors with which each processor must communicate. These results were presented at this conference in Barcelona, Spain, in April 2003.
Professor Teresco supervised the senior honors thesis of Joshua Ain ‘03. Ain developed and tested techniques to optimize cache utilization in the presence of “read once” memory accesses. Such access patterns can occur, for example, during a message passing operation in a scientific computation, or when processing audio or video files. Read once memory accesses do not have temporal locality, but will still use cache lines, likely evicting other data from the cache that does have some temporal locality. Using memory access traces obtained from Brigham Young University, Ain simulated the behavior of caches of various types and sizes in the presence of these read once accesses. His theoretical hardware improvement called “NoTime” provided significant improvement in average memory access times by forcing read once memory accesses to use only a single cache line.
Professor Teresco has installed, configured, and continues to maintain a 25-processor Sun Microsystems compute cluster that supports research in parallel and distributed computing in the Computer Science Department. The cluster consists of nine Enterprise servers, connected by fast Ethernet and by a gigabit interconnect from Dolphin. This year, the cluster was expanded to include four Sun Ultra 10 workstations that have allowed more extensive studies of “system-sensitive” computing. In addition to supporting the research described above, the cluster was also used in CSCI 432, Operating Systems, during fall 2002 for a project to study multithreading, and was used extensively by students in CSCI 338, Parallel Processing, during spring 2003.
Class of 1960 Scholars in Computer Science

Josh Ain
Nora Au
Diane Bennett
Phillipa Charters
Robert Gonzalez
Teodora Ivanova

Ji-Yong Kim
Jeremy Redburn
Shimon Rura
Mithandra Stockley
Brent Yorgey
Thomas White
COMPUTER SCIENCE COLLOQUIA
Professor James Teresco, Williams College Department of Computer Science
“Dynamic Load Balancing for Adaptive Scientific Computation”
Ben Schumacher, Theoretical Physicist, Kenyon College
(Joint Physics, Astronomy and Computer Science Colloquium)
“Entropy, Randomness and the Physics of Computation”
Thomas Murtagh, Computer Science Department, Williams College, Sigma Xi Lectures
Part I: “Internet Architecture”
Part II: “Traffic Jams on the Information Superhighway”
Williams College Computer Science Faculty
“Discussion on Graduate Schools”
Professor Duane Bailey, Williams College, Department of Computer Science
“Earning Cache”
Joseph Vanderwaart ‘99, Carnegie Mellon University
“Type Theories for Certified Code (and Other Goodies from CMU’s ConCert Project)”
Brendan Burns ‘98, University of Massachusetts at Amherst
Department of Computer Science, Experimental Knowledge Systems Laboratory (EKSL)
“Improving Probabilistic Roadmap Methods for Robot Path Planning”
Computer Science Faculty
“Faculty Research in Computer Science at Williams”
Todd Lowe, PhD., UCSC, Host: Marsha Altschuler, Co-sponsored with Department of Biology
“Decoding Archae Genomes: Using Computational Analysis and DNA Microarrays to Understand Life in the Extreme”
Allan Fisher, PhD., President and CEO, iCarnegie, Inc., Class of 1960 Scholars Program
“iCarnegie: Collaborative Education of Software Developers”
Allan Fisher, PhD., President and CEO, iCarnegie, Inc., Class of 1960 Scholars Program
“Unlocking the Clubhouse: Women in Computing”
Monty Brown ‘03
“An Introduction to Neural Network Architectures”
Professor Matt Dwyer, Kansas State University
“Analyzing Event-Driven Component-Based Designs”
Professor Richard Kline, Pace University, New York, NY
“Music Information Retrieval Using Vocal Input or Humming to Your Computer”
Andrew Zimmer, Closure Informatics Team Leader, Whitehead Institute/MIT Center for Genome Research
“Bioinformatics for the Human Genome Project”
Professor G. Michael Schneider, Computer Science Department
“New Internet Routing Strategies”
COMPUTER SCIENCE STUDENT COLLOQUIA
Josh Ain ‘03, Rob Gonzalez ‘03, Chris Cyll ‘04, Jeremy Redburn ‘03, Shimon Rura ‘03,
Diane Bennett ‘03, Christopher Kelley ‘03, Krishna Kannan ‘03, Cormac Flanagan
“Computer Science Majors Talk about Their Summer Work Experiences”
Rob Gonzalez ‘03
“In the World of Type Checking, Smarter Is Faster”
Josh Ain ‘03
“Optimizing Hardware Cache to Read-Once Memory Accesses”
Jeremy Redburn ‘03
“Robust Computation of the Non-obstructed Line Segments Tangent to Four
amongst n Triangles”
Shimon Rura ‘03
“Refactoring Aspect-Oriented Software”
OFF-CAMPUS COLLOQUIA
Kim B. Bruce
“Foundations of Object-Oriented Languages: Types and Language Design”
Tutorial presented at ECOOP 2002, Malaga, Spain, 6/2002
“Statically Type-Safe Virtual Types in Object-Oriented Languages”
NEPLS, Yale University, New Haven, CT, 8/2002
Colloquium, University of Turin, Turin, Italy, 4/2003
“Challenging Typing Issues in Object-Oriented Languages”
WOOD workshop, Warsaw, Poland, 4/2003
Andrea Danyluk
“Machine Learning Meets the Real World: Successes and New Research Directions”
Fourth Grace Hopper Celebration of Women in Computing, Vancouver, October 2002
Stephen N. Freund
“Safe Asynchronous Exceptions for Python”
Second Workshop on Lightweight Languages, Boston, MA, October 2002
HP Labs, Palo Alto, CA, May 2003
“Better Abstraction via Race Freedom”
New England Programming Languages Seminar, Yale, CT, August 2002
“Detecting Race Conditions in Large Programs”
Brown University, Providence, RI, June 2002
Barbara Lerner with Shimon Rura
Flexible Static Semantic Checking Using First-Order Logic
Poster at the International Conference on Software Engineering, Portland, Oregon, May 2003.
James D. Teresco
“A Comparison of Zoltan Dynamic Load Balancers for Adaptive Computation”
VII International Conference on Computational Plasticity (COMPLAS 2003), Barcelona, Spain, April 8, 2003.
POSTGRADUATE PLANS OF DEPARTMENT MAJORS
Josh Ain
Kronos, a software company north of Boston
Nora Au
Undecided
Diane C. Bennett
Undecided
Mihnea A. Bobes
Undecided
Montague D. Brown
Undecided
Philippa L. Charters
Graduate school at University of Texas at Austin, TX
Parth P. Doshi
Cambridge Computer Service, Boston, MA
Robert N. Gonzalez
Travel
Neal C. Hannan
Cross Country coaching position, law school
Evan F. Hiller
Undecided
Cheng Hu
Microsoft, Seattle, WA
Teodora Ivanova
Consultant, Boston, MA
Krishna J. Kannan
Internet Software Development, Boston, MA
Christopher R. Kelley
Undecided
Ji-Yong Kim
Undecided
Richard T. Lammert
Undecided
Edvard Major
J.P. Morgan Chase, New York, NY; graduate school in the future
Daniel P. Mevorach
Law School, St. John’s University, New York, NY
Israel Mirksy
Undecided
Rudolph M. Montgelas
Undecided
Jeremy A. Redburn
IBM Advanced Internet Technologies Division, Cambridge, MA
Shimon Rura
Undecided
William J. Sacks
NASA Goddard Space Flight Center, graduate school in the future
Anthony D. Saucedo
Undecided
Mithandra J. Stockley
Undecided
Thomas W. Williams III
Undecided