COMPUTER
SCIENCE DEPARTMENT
This has been an exciting year for the Computer Science Department. While
we missed the daily presence of Prof. Bill Lenhart, who just completed his first
year as the College’s Provost, we were very happy to welcome two new
faculty – Brent Heeringa and Morgan McGuire. Prof. Heeringa joined our
department after completing his Ph.D. at the University of Massachusetts at
Amherst. His research specialty is approximation algorithms. Prof. McGuire,
who received his Ph.D. from Brown University, does work in the areas of graphics
and computer vision. His research touches on a wide range of applications,
including computer games. The department is excited to welcome another new
faculty member, Jeannie Albrecht, who will join us as of July 1. Prof.
Albrecht’s research area is distributed systems. She completed her Ph.D.
at the University of California, San Diego.
While saying farewell to this year’s graduates, we welcome 18 members
of the class of 2009 as new majors. They join 13 majors from the class of
2008.
Every year many of our students get involved in interesting research
projects. This year, three members of the class of 2007 – Alexandra
Constantin, Michael Gnozzio, and Paul Stansifer – completed honors theses.
In addition, Bartley Tablante '07 did an independent study project with Prof.
McGuire. Inspired by the user interfaces depicted in the science fiction film
Minority Report, Bartley created an algorithm to track a human operator
in a video stream and use that captured motion to interact with a 3-D world.
Other students working with faculty on research included Kristof Redei
‘07, with Prof. Danyluk, M. Catalin Iordan '08, with Prof. Heeringa, and
Kyle Whitson and Sean Barker (both ‘09), with Prof. McGuire. Their work,
and that of others, is described below. Work is just beginning for this
year’s summer research assistants.
Each week, colloquium speakers visit the department and discuss research
with interested students and faculty. Through the generosity of the Class of
1960, the department augments its colloquium series with special programs of
talks and related events that allow students even greater opportunity to
interact with important contributors to computer science. This year Terrence
Masson, founder of Digital Fauxtography, a company that specializes in visual
special effects for film and video games, spoke on the state of computer graphic
production in short film and feature length animation. As part of the Class of
1960 Scholars Program, several students were invited to special events with the
speaker. This year’s scholars were:
Class of 1960 Scholars in Computer Science
Kathleen Creel
|
Daniel Fast
|
Alexandra French
|
Michael Gnozzio
|
Kristof Redei
|
Paul Stansifer
|
Gregory Tobkin
|
Kyle Whitson
|
Several additions to our curriculum were made this year, primarily in the
areas of graphics and games. Prof. McGuire developed a new Winter Study course,
Game Design Studio, in which students explored the art and theory of
professional game development. Prof. McGuire also redesigned the Computer
Graphics elective, CSCI 371.
Prof. Duane Bailey released
Mead, his scheme-based modeling system.
Students of
The Art & Science of Computer Graphics used
Mead
to develop a wide range of models for rendering both realistic and abstract
images and animations. Readers are encouraged to visit his website to check out
the software. On the campus network, class images can be viewed at
http://cswiki.cs.williams.edu/wiki/index.php/Computer_Science_109.
Bailey also worked with Kathryn Lindsey this spring on research that
investigated the development of rules for Conway’s Game of Life when
played on Penrose tilings. This new approach involves modeling these aperiodic
tilings as two-dimensional projections of periodic lattices in 5-space. Their
hope is to show that robust gliding patterns can be defined for Penrose tiles,
the first step toward understanding population dynamics in more amorphously
structured naturally occurring networks.
Photo: Great Horned Sphere - generated by Kathryn Lindsey ‘07, using
Mead
Tutorial students from Modern Computer Architecture worked with
Bailey to develop an experimental 4-core RISC processor chip that is less than
2mm on a side.
Bailey is a reader on the Goldwater science scholarship panel. He
participates in review panels for various NSF programs, and reviews work for
journals and conferences in computer science and mathematics.
Prof. Andrea Danyluk worked with two honors students this year, Michael
Gnozzio ‘07 and Alexandra Constantin ‘07. Both completed theses on
topics in machine learning. Michael developed two new algorithms: TNCA (the
Triple Node Cascade Algorithm) and CAFIE (the Cascade Algorithm For Input
Elimination), which automatically construct neural networks for classification
tasks based on input data. Neural networks are a well-established mechanism for
performing classification tasks and can be “taught” to correctly
classify inputs based upon a set of “training examples.” A
difficulty, however, is that the architecture of a neural network is generally
handcrafted. Michael’s work extends research that aims to eliminate the
need for handcrafting neural network architectures. Alexandra’s research
addressed brain-computer interfaces (BCIs). Specifically, she developed
algorithms for detecting subject-dependent EEG patterns for specific motor
imagery tasks, such as imagined left hand movement and imagined right hand
movement. The identification of such patterns in EEG signals can be used to
automatically control a device (such as a computer mouse) for patients who are
physically unable to do so.
Danyluk also continued to work on the development of algorithms for
automatic identification of individual spotted salamanders from digital
photographs. This project is collaboration with Prof. Hank Art of the Biology
Department. Kristof Redei ‘07 worked with Prof. Danyluk on this project,
continuing the work done by Myron Minn-Thu-Aye ‘07 last summer. This
summer, David Moore '10 will join the project.
Danyluk served as the Tutorials Chair for AAAI-2007 (the National
Conference on Artificial Intelligence) and the Panels and Special Sessions Chair
for SIGCSE 2007 (the annual Symposium on Computer Science Education). She also
taught a 6-week course Artificial Intelligence: Image and Reality for the
Berkshire Institute for Lifetime Learning.
Prof. Stephen Freund continues to study how to verify properties of
programs with lightweight analysis tools. Sigma Xi invited him to present two
lectures on this work at Williams last October. The lectures were entitled
“Squashing the Bugs: Tools for Building Better Software” and
“Atomizer: A Dynamic Bug Finder for Large Systems.” In the talks,
he discussed why it is so hard to create reliable software; various program
checking techniques to find bugs; and a program checker that he designed to
detect atomicity violations (one particularly pernicious type of error in
concurrent programs).
Freund also received a National Science Foundation CAREER Award of $400,000
for his work on “Hybrid Atomicity Checking.” A routine is atomic if
its execution is not affected by and does not interfere with concurrently
executing threads. Both static and dynamic checkers have been designed to
enforce atomicity specifications, but both approaches have inherent limitations
that impact precision, coverage, and usability. Freund will synthesize the best
aspects of such static and dynamic atomicity checking techniques to create
hybrid checkers for validating precise, behavioral atomicity specifications.
Such checkers enable more precise specification of a program’s atomicity
requirements, offer better usability and scalability than existing tools, and
support a modular and less error-prone concurrent programming methodology.
CAREER awards are often considered the most prestigious awards granted by the
NSF, and they are specifically designed to support “teacher-scholars who
most effectively integrate research and education within the context of the
mission of their organization.”
Freund published a number of papers during this past year in collaboration
with Cormac Flanagan (UC Santa Cruz), and with his colleagues.
This past year, Freund also served as the advisor for Paul
Stansifer’s honors thesis, “Alias Annotations to Improve Garbage
Collection.” Alias annotations capture sharing relationships in
pointer-based data structures, such as which objects have unique referring
pointers. Specifying these structural properties has obvious software
engineering benefits, and modular checkers can verify such annotations.
However, garbage collectors can also exploit this information to improve
performance. For example, if a unique reference to an object is set to null,
that object can be freed immediately, without waiting for a collection to occur.
Paul demonstrated that on a variety of small benchmarks, alias annotations
enabled a standard Mark-and-Sweep collector to perform many fewer collections
and reduced run times by as much as 10% to 15%.
Prof. Brent Heeringa, who returned to the Computer Science Department this
past fall after visiting Williams as an instructor during 2003-04, tried several
new pedagogical approaches when teaching the upper level Theory of
Computation and Algorithm Design courses, including the Socratic
method when investigating advanced topics.
Heeringa continued his work on approximation algorithms and lower bounds on
approximation. Approximation algorithms provide provably near-optimal solutions
to computationally intractable optimization problems. As a result, they are a
popular and effective means of coping with difficult real-world phenomena like
scheduling classrooms under myriad constraints, finding optimal snow plow routes
in large cities, or developing effective strategies for a simple game of 20
questions. Finding near-optimal solutions to the latter question continues to
be the primary study of Heeringa’s research. This problem is known as
Decision Tree (DT) and it plays a significant role in areas as diverse as
medical diagnosis and survey design. This summer, Heeringa is working with Son
Ho ‘08 on finding stronger lower bounds to the DT problem. In March,
Heeringa gave an invited talk on this work at the University of Massachusetts,
Amherst.
Heeringa also initiated work on several new problems. Collaborating with
M. Catalin Iordan ‘09, Heeringa investigated approximation algorithms for
finding the minimum reset sequence in self-synchronizing automata.
Self-synchronizing automata naturally model many workflow tasks in factory-like
settings. Heeringa is continuing the work this summer with Austin Stanley
‘10. In particular, they are developing new algorithms to find
counter-examples to a 40-year-old open conjecture in self-synchronizing
automata.
Heeringa continues to consult for the search engine marketing firm
Adverplex Inc. He helped Prof. Micah Adler (University of Massachusetts,
Amherst) launch the company in 2005.
Heeringa attended the 2006 Foundations of Computer Science Conference, the
2007 Symposium on Discrete Algorithms, and the 2007 Symposium on Theory of
Computing (STOC) where he organized the first-annual Association for Computing
Machinery STOC Student Research Competition (SRC). This is an international
effort to encourage undergraduate research in theoretical computer science.
Heeringa chaired the paper selection committee, judged the final poster and oral
presentations, and handled publicity for the event. Heeringa also received a
travel grant from the Special Interest Group on Algorithms and Computation
Theory (SIGACT) in recognition of his work on the STOC SRC. Heeringa reviewed
papers for the 2007 Consortium on Computing Sciences in Colleges
conference.
Photo: Eric Muller '09 presents a design review of his final project to the
Computer Graphics class.
Prof. Morgan McGuire chaired the Animation Session at the ACM SIGGRAPH
Symposium on Interactive 3D Graphics and Games in Seattle, WA this May and acted
as publicity chair for the conference. On campus, he hosted a monthly
colloquium series explaining the computer science behind films and games and
exploring how that technology impacts society.
This year, the Computer Science Department added a new graphics lab to
support work on computer graphics and vision. New results from the lab include
processing video 100x faster than conventional methods (with Kyle Whitson
‘09), leveraging computers to conserve – instead of consume! –
energy (with Kathleen Creel ‘10), and combining captured human animation
with real-time physics (with Bartley Tablante ‘07, as described
above).
Next year, Prof. McGuire’s Game Design Studio Winter Study
course will be expanded into the introductory computer science and studio art
course, Strategy and Interaction CSCI 107. This class will teach
computer science, economics, and art through analysis and synthesis of board and
video games.
Over the last few years, Prof. Tom Murtagh has pioneered a new approach to
teaching introductory computer science courses. He has worked to design an
alternative to traditional introductory courses that focus narrowly on teaching
programming skills. This year, with support from the NSF’s CCLI program,
he has continued to develop materials for a new version of our introductory
course that combines instruction in programming with an introduction to
networking technology. This course uses the exploration of networking
technology as a vehicle to motivate and focus the presentation of the techniques
and principles underlying all work in computer science. Students in the course
explore data representation techniques such as Huffman coding, apply basic
techniques from probability theory to analyze Ethernet performance and the
reliability of error detecting codes, study techniques for image compression,
and learn quite a bit about Java programming in the process.
Murtagh presented two papers on his
curricular work at the 38th ACM SIGCSE technical Symposium on Computer Science
Education in March. One paper discussed the unique approach taken by our new
course, the other described a software library developed to support the
laboratory component of the course. Murtagh also presented this work at a
Mellon Foundation sponsored workshop on techniques for teaching introductory
computer science courses held at Denison University in June.
Prof. James Teresco continued his research on parallel and distributed
computing, specifically in the area of dynamic load balancing for adaptive
scientific computation in heterogeneous, hierarchical, and non-dedicated
parallel computers. In particular, his interest is in supporting
high-performance parallel computation in the types of computer systems that are
found at smaller institutions such as Williams: networks of workstations and
small clusters.
Modern parallel processing is being performed on everything from the
largest tightly coupled supercomputers to clusters of workstations in the
transient and dynamic environments found in Internet, or “Grid”
computing environments. Hierarchical and heterogeneous systems are increasingly
common and present new challenges for the development of efficient software,
particularly influencing dynamic load balancing procedures. Teresco continued a
collaboration with Dr. Karen Devine (Sandia National Laboratories) to develop
support for architecture-aware load balancing in the Zoltan Toolkit (
http://www.cs.sandia.gov/Zoltan/). Zoltan is a software
library developed at Sandia that provides a common interface to a number of
state-of-the-art partitioning and dynamic load balancing algorithms.
Teresco’s team is developing the Dynamic Resource Utilization Model
(DRUM,
http://www.cs.williams.edu/drum/) to address partitioning and
dynamic load balancing on clusters with heterogeneous and hierarchical hardware
resources. DRUM includes a model that encapsulates hardware resources and their
interconnection topology, and provides monitoring facilities for dynamic
evaluation of communication, memory, and processing capabilities. This work has
been funded in part by Sandia National Laboratories. DRUM’s capability to
support computation in heterogeneous environments was the focus of
Teresco’s talk presented at Mount Holyoke College and Union College in
February.
Recent efforts in the DRUM project focus on the efficient use of the
“hyperthreaded” and multi-core processors that are now being used to
construct computational clusters. This work was the focus of his talk at the
SIAM Conference on Computational Science and Engineering in Costa Mesa,
California.
Teresco is also investigating the efficient execution of parallel adaptive
software in dynamic environments, in collaboration with Prof. Boleslaw
Szymanski, Prof. Carlos Varela, and Prof. Joseph Flaherty (all of RPI), and
Rensselaer Ph.D. candidates Kaoutar El Maghraoui and Travis Desell. As part of
this project, the team is developing MPI/IOS, a middleware system that allows
existing applications, written using the popular Message Passing Interface
(MPI), to take advantage of transient and or unreliable computing resources with
minimal modification. The work is described in a chapter entitled
“Towards a Middleware Framework for Dynamically Reconfigurable Scientific
Computing” in the volume Grid Computing: New Frontiers of High
Performance Computing. Teresco served as a Ph.D. committee member for El
Maghraoui, who completed her thesis in April.
Teresco and his former thesis student, Travis Vachon ‘06, traveled to
Innsbruck, Austria, to present the paper “Automated Dynamic Redistribution
of Virtual Operating Systems under the Xen Virtual Machine Monitor,” at
the IASTED International Conference on Parallel and Distributed Computing and
Networks (PDCN 2007) in February.
Teresco, Prof. Ali Erkan (Ithaca College), and Prof. James Heliotis
(R.I.T.) served as co-chairs for papers at the Twelfth Annual Consortium for
Computing Sciences in Colleges Northeastern Conference (CCSCNE 2007), held at
R.I.T. in April. See
http://www.ccscne.org/2007/.
On the teaching side, Teresco led an enthusiastic group of students in the
Winter Study class LEGO Robot Engineering. Students spent the first few
weeks of the month building and programming robots in an increasingly complex
series of exercises. Then, each group proposed a design for a robot to carry
out a task of their choosing. Robots were designed to play “tag,”
to fire projectiles (marbles), and to sense a gap in the surface and deploy a
bridge to continue across. The term culminated in a robotics exposition where
the final robots were demonstrated to classmates, friends, faculty, and a group
of local middle school students.
Teresco is leaving Williams at the end of the
2006-07 academic year. He will be joining the faculty at Mount Holyoke College
in South Hadley, MA.
COMPUTER SCIENCE COLLOQUIA
Terrence Masson, Digital Fauxtography and VFX, Class of 1960 Scholars
Speaker
“CG101: A Computer Graphics Industry
Reference”
“SIGGRAPH Film Festival Screenings”
Prof. Tom
Ellman, Vassar College
“Synthesis of Hybrid Automata from Temporal Logic Specifications with
Applications in Computer Animation”
Prof. Emery Berger, University of
Massachusetts at Amherst
“Automatically Tolerating and Correcting Memory Errors”
Rob
Gallerani and Jan-Erik Steel, Vicarious Visions
“A Brief Look into Video-Game Development”
Computer Science
Faculty, Williams College
“Life after Williams: Graduate School Opportunities”
Prof.
Srinivas Akella, Rensselaer Polytechnic Institute
“Coordinating Multiple Moving Objects: From Robots to
Microdroplets”
Al Reed, Founder, Demiurge Studio
“Individualized Educational Systems”
Robert A. Hearn, Ph.D.,
Dartmouth College
“Games, Puzzles, and Computation”
Prof. Tim Huang,
Middlebury College
“Beyond Deep Blue: Advances in Computer Go”
Charles Sutton,
University of Massachusetts at Amherst
“Natural Language Processing and the Scientific
Literature”
Prof. Craig S. Kaplan, University of Waterloo
“Complexity and Aesthetics in Computer-Generated
Mazes”
Computer Science Faculty, Williams College
“Ongoing Research in Computer Science”
Max Ross,
Google
“Where Were You on the Night of June 3rd? Preserving
Standard Hibernate
Programming Paradigms with a Bitemporal
Schema”
Prof. Drew Endy, Massachusetts Institute of Technology
“Structure and Uncertainty in Robotic Motion Planning”
Prof.
Morgan McGuire, Williams College
“New Library Challenges from Games Research”
“Visual
Culture: Non-Photorealistic Rendering”
“Real-Time Cartoon
Rendering of Smoke and Clouds”
“Music Video
Games”
“Odd Couples: 3D Film Screenings”
“Art and
Science of Board Games”
“Holiday Gaming Guide”
COMPUTER SCIENCE STUDENT COLLOQUIA
Students discussed their summer research or work experiences
“What I Did This Summer: Part I”
“What I Did This
Summer: Part II”
Paul Stansifer '07
“Using Alias Annotations to Improve Garbage
Collection”
Michael Gnozzio '07
“The Cascade Algorithm for Input Elimination”
Alexandra
Constantin '07
“A Brain-Computer Interface for the Classification of Motor
Imagery”
OFF-CAMPUS COLLOQUIA
Andrea Danyluk
“Tutorials in the Sciences: Tradeoffs”
Conference on
Tutorial Education, Lawrence University
Brent Heeringa
“A Log-Factor Approximation for Decision Trees”
Theory
Seminar, University of Massachusetts at Amherst
Morgan McGuire
“Single-Pass Shadow Volumes for Arbitrary Meshes”
ACM
SIGGRAPH Posters Session, San Diego, CA
“Open Source Toolchains”
ACM SIGGRAPH Symposium on Video
Games Panel Discussion, San Diego, CA
“Innovative Computer Input Devices”
Bennington College
“Non-Photorealistic Rendering of Smoke and Clouds”
Union
College
“Real-Time Cartoon Rendering of Smoke and Clouds”
ACM
Symposium on Non-photorealistic Animation and Rendering, Annecy, France
“Real-Time Triangulation Matting Using Passive
Polarization”
ACM SIGGRAPH Sketch, Boston, MA
“World Space Torques for Character Animation under
Simulation”
ACM SIGGRAPH Sketch, Boston, MA
“Mechanism Design for Fun and Profit”
Stanford
University
“Efficient Content Creation”
Vicarious Visions, Albany,
NY
Thomas P. Murtagh
“Breadth with Depth in a CS1 Course”
Dennison University
CS1 Workshop for Computer Science Faculty, Granville, Ohio
James
Teresco
“Resource-Aware Parallel Computation for Modern
Clusters”
Union College, Mount Holyoke College
“Automated Dynamic Redistribution of Virtual Operating Systems under
the Xen Virtual Machine Monitor”
IASTED International Conference on
Parallel and Distributed Computing and Networks (PDCN 2007)
“Dynamic Load Balancing for Hyperthreaded and Multi-Core Cluster
Nodes”
SIAM Conference on Computational Science & Engineering
“Chip Multiprocessors: Parallel Computation for the
Desktop”
Mount Holyoke College
POSTGRADUATE PLANS OF COMPUTER SCIENCE MAJORS
Stephen A. Abbott
|
Cornerstone Research, economic consulting firm
|
Aashish N. Adhikari
|
Graduate school in chemistry
|
Mitchell S. Brooks
|
Project Analyst, Cannondale Associates, Wilton, CT
|
Jessica M. Chung
|
Undecided, New York, NY
|
Alexandra E. Constantin
|
Graduate school in computer science, University of California,
Berkeley
|
Michael J. Gnozzio
|
Adverplex, Inc., Wakefield, MA
|
Ian M. Jessen
|
Graduate school in music, University of Massachusetts, Amherst
|
Reid M. Lynch
|
Undecided
|
Myron Minn-Thu-Aye
|
Graduate school in mathematics, Louisiana State University
|
Kristof Redei
|
Graduate school in computer science, Tufts University
|
Owen C. Simpson
|
Graduate school in physics, Princeton University
|
Paul N. Stansifer
|
Endeca, Boston, MA
|
Bartolome W. Tablante
|
Actuarial Analyst, The Hartford, Hartford, CT
|
Mark M. van Mechelen
|
Career in music industry
|
Jan M. Zankowski
|
Google, New York, NY
|
Bo Zhao
|
Undecided
|