Graduate Study in Computer Science

September 2002


Faculty

Chair and Professor

Gruia-Catalin Roman (1976)
Ph.D., University of Pennsylvania, 1976
Distributed and concurrent systems, software engineering, mobile computing,visualization
Assistant Chair and Professor
Sally A. Goldman  (1990)
Ph.D., Massachusetts Institute of Technology, 1990
Computational learning theory, machine learning, algorithm design and analysis
Hugo F. and Ina Champ Urbauer Professor of Engineering
Mark A. Franklin (1970)
(Electrical Engineering)
Ph.D., Carnegie Mellon University, 1970
Computer architecture, systems analysis and parallel processing, VLSI design
Henry Edwin Sever Professor of Engineering
Jonathan S. Turner (1983)
Ph.D., Northwestern University, 1982
Networking and communications, algorithms and complexity, VLSI applications
Associate Professors
Michael R. Brent (1999)
Ph.D., Massachusetts Institute of Technology, 1991
Probabilistic modeling applied to language, speech and genomics,
empirical study of native language learning by humans

Ron K. Cytron (1993)
Ph.D., University of Illinois, 1984
Programming language optimization, parallel computations

Kenneth J. Goldman  (1990)
Ph.D., Massachusetts Institute of Technology, 1990
Distributed programming environments, distributed applications,
distributed algorithms

Ronald P. Loui (1988)
Ph.D., University of Rochester, 1988
Artificial intelligence, legal reasoning, philosophy of computing,
web agents

Weixiong Zhang (2000)
Ph.D., University of California-Los Angeles, 1994
Solving computation-intensive problems in computer science,
operations research and molecular biology

Assistant Professors

Jeremy Buhler  (2001)
Ph.D., University of Washington, 2001.
Computational Biology, genomics, algorithms for comparing and
annotating large biosequences

Jason E. Fritts  (2000)
Ph.D., Princeton University, 2000.
Media processors, computer architecture, optimizing compilers,
parallel processing, multimedia signal processing

Christopher D. Gill  (2001)
D.Sc., Washington University, 2002.
Distributed object computing, real-time systems, middleware
for ubiquitous and robotics systems

Cindy M. Grimm  (2000)
Ph.D., Brown University, 1996.
Surface modeling, image-based rendering, user-interfaces
texture generation

John W. Lockwood  (2001)
Ph.D., University of Illinois, 1995.
Reprogrammable hardware, high speed networks

Robert Pless  (2000)
Ph.D., University of Maryland, 2000.
Computational video geometry (geometry, statistics and
computation for constructing video representations
of a geometric nature)

William D. Smart  (2001)
Ph.D., Brown University, 2001.
Reinforcement learning for real world problems,
robotics: robot-human interfaces

Lihao Xu  (1999)
Ph.D., California Institute of Technology, 1999.
Distributed computing and storage systems, reliable and
high performance computing, error control codes

Senior Professors Harold B. and Adelaide G. Welge Professor of Computer Science

Jerome R. Cox, Jr. (1955)
Sc.D., Massachusetts Institute of Technology, 1954
Computer visualization, digital communication, biomedical computing

Richard A. Dammkoehler (1960)
M.S., Washington University, 1959
Computer programming theory, information retrieval, computer systems
architecture

Takayuki D. Kimura  (1978)
Ph.D., University of Pennsylvania, 1971
Communication and computation, visual programming languages,
multimedia, user interfaces

In certain cases research and teaching for the department are carried out by other professionals at Washington University. They are affiliated with the Department of Computer Science and are classified as either affiliate faculty or research associates.

Affiliate Professors

Robert J. Benson (1965)
J.D., Washington University, 1968
Information systems, systems analysis, database design

G. James Blaine III (1974)
(Electrical Engineering, Mallinckrodt Institute of Radiology)
D.Sc., Washington University, 1974
Biomedical computing, digital communications, Picture Archive and
Communications Systems (PACS)

I. Norman Katz (1967)
(Systems Science and Mathematics)
Ph.D., Massachusetts Institute of Technology, 1959
Numerical analysis, finite element methods, locational equilibrium problems,
algorithms for parallel computation

Affiliate Associate Professors

Keith Bennett (1993)
M.S., Washington University, 1985
System/software engineering, virtual reality and visualization, space
applications

Roger D. Chamberlain (1989)
(Electrical Engineering)
D.Sc., Washington University, 1989
Computer engineering, parallel computation, computer architecture,
multiprocessor systems

L. Andrew Oldroyd (1981)
(The Boeing Company)
Ph.D., University of Oklahoma, 1977
Image understanding and remote sensing, robotics, programming languages

Paul S. Min (1990)
(Electrical Engineering)
Ph.D., University of Michigan, 1987
Routing and control of telecommunications networks, fault-tolerance and
reliability, software systems, network management

Robert A. Rouse (1977)
(School of Medicine)
Ph.D., Northwestern University, 1968
Corporate strategic technology planning, expert systems/artificial intelligence

Affiliate Assistant Professors

Thomas L. Bugnitz (2000)
M.B.A., Washington University, 1974
Information systems, systems analysis

C. David Butler (2000)
M.B.A., University of Iowa, 1991.
Web design, database systems

Sean R. Eddy (2000)
(Genetics)
Ph.D., University of Colorodo, Boulder, 1991
Probabilistic modeling and formal grammars, genome analysis,
RNA computational molecular archaeology

Senior Research Associates
Fred Kuhns (1997)
M.S., Washington University, 1991
Operating systems, networking, software frameworks,
extensible architectures

Stan C. Kwasny (1987)
Ph.D., Ohio State University, 1980
Natural language processing, connectionism, artificial intelligence,
speech-understanding systems

Kenneth F. Wong (1984)
(Applied Research Laboratory)
D.Sc., Washington University, 1985
Computer communications, networking, software architecture

Professor Emeritus
Seymour V. Pollack (1966)
M.S. Brooklyn Polytechnic Institute, 1960
Intellectual property, information systems.


Research Areas

The rapid growth in digital computer technology continues to accelerate as we approach the start of a new century. Advances in digital microelectronics, computer networks, and distributed information systems are enabling dramatic expansion of computer use for the solution of increasingly complex information processing problems in business, government, education, medicine, and science. This continuing growth engenders a need for engineers and scientists with the advanced training and expertise not only to exploit the newly emerging knowledge, but to play leading roles in its creation and assimilation into the discipline called computer science. Washington University's graduate programs in computer science are designed to prepare such individuals.

 Building on the student's undergraduate background in algorithms and data structures, programming systems, computer architecture, and software engineering, graduate education allows for more intensive studies in specialized areas. Several of these specialties relate directly to department research projects, so that graduate students have excellent opportunities to be significant participants in this important and exciting work. Our department plays an active role in advancing the intellectual frontiers of computer science, creating new computer technology, and applying that technology to meet the needs of today's technological society. We are known for sharing our research ideas with the broader community, not only through scholarly publication, but also by creating systems that can be used by others and can serve as models for commercial development.

Departmental research opportunities focus on the following areas:


Admission to the Graduate Degree Programs

Students entering our graduate program generally either have an undergraduate degree in computer science (or a closely related field) or have some industrial experience and successfully complete CS 514N. For those students who have had little programming experience, CS 504N provides an intermediate step before CS 514N. Some students also choose to take some undergraduate courses in preparation for their graduate work. Students seeking admission to the graduate degree programs must take the Graduate Record Examination (GRE) general exam and thus seeking departmental funding are recomended to take a subject Graduate Record Examination in computer science or a closely related area (such as mathematics or electrical engineering). In order to enroll, a student must have a Bachelor's degree or enroll through the Combined B.S.-M.S. Program, the Combined Bachelor/Master's Program., or the B.S.-D.Sc. Program.

Students whose native language is not English are required to submit their TOEFL results, both the standard portion and the Test of Written English, with minimum scores of 575 and 4.5 respectively required for admission.

Under certain conditions students may be admitted provisionally. Conversion to full admission status, then, is contingent upon completion of specific requirements defined for each individual case. This may entail remedial work at the undergraduate level and/or courses in written and oral English.

Once the appropriate remedial work has been completed satisfactorily, the student's admission status can be changed. Any graduate work taken during this provisional period is automatically credited toward the advanced degree when the student gains full admission.

Each individual graduate program is arranged by the student with his or her advisor and may address areas of specialization such as: networking and communications, software engineering, distributed computing, algorithm design and analysis, artificial intelligence, parallel processing, computer systems, and biomedical computing. Such programs are designed primarily around the courses offered by the department, but they often draw from other areas of the university, for example, physics, mathematics, philosophy, systems science and mathematics, electrical engineering, biomedical engineering and engineering and policy.


The Status of Student Not Candidate for Degree (SNCD)

Students who are not formally admitted (either fully or provisionally) to the graduate program in computer science may take individual courses under the category Student Not Candidate for Degree (SNCD).

A change in status from SNCD to full graduate admission will be considered when a complete application form has been submitted, including general GRE test scores and letters of recommendations.

Once the admission status has been changed, graduate courses taken for credit during the previous status may be eligible for use toward the graduate degree. A maximum of 12 units of approved graduate work can be applied in this manner.


Guidelines for Potential Computer Science Students With Degrees in Other Areas

Some applicants to graduate study in computer science may have little or no previous academic computer science experience. In order to begin advanced graduate study, such students need to acquire the portion of our undergraduate curriculum upon which our graduate courses depend. Due to variation in training and experience among applicants, a conference with a departmental academic advisor is strongly recommended, so that the appropriate course of action can be planned.

We generally recommend that students without an undergraduate computer science degree enroll in CS 504N (unless you have had significant programming experience) followed CS 514N. These courses cover the initial portion of our undergraduate core curriculum and are intended to help identify those areas in which a student may need further preparation, perhaps by taking an additional course. While CS 504N and CS 514N cannot be credited toward a graduate degree, they provide an efficient alternative to taking a large number of undergraduate courses.
 


The Degree Master of  Science in Computer Science

Thirty units of graduate credit, all of which must be taken for a grade, are required for the Master of Science degree. These may consist entirely of course work or a combination of course work and either a thesis or a project. At least eighteen of the thirty units must be departmental courses at the 500-level or above. (Also, as described in the general information section of the SEAS Graduate Catalog, at most 6 units can be transfered from another university.) Any course taken outside the department requires departmental approval. None of the thirty units may be taken as independent study (i.e., CS 500 or CS 600). Students may count, for graduate credit, up to 9 units of approved 400-level courses taken (with a grade of C- or better) during their graduate studies from among: CS 422S*, 423S*, 427M*, 431S*, 441T*, 453A*, 455S*, 456S*, 462M*. No other 400-level courses or any 400-level course may be counted towards a Computer Science M.S. degree.

 Students electing the thesis option undertake an individual research activity in lieu of six course credits. Acceptance of the resulting thesis and passage of a final oral examination complete the Master of Science degree requirements.

A project option is available. The student may elect to undertake an individual engineering project in lieu of three to six course credits. Acceptance of the resulting project, submitted in writing and presented orally, completes the Master of Science degree requirements under this option. This does not eliminate the specific course requirements listed below.

All students in the course or project options of the Master's Degree program must fulfill the following graduate computer science breadth requirement: one 500-level Theoretical Computer Science (T) course, one 500-level Software Systems (S) course, and at least one 500-level Machine and Architecture (M) or Applications (A) course (with either CS 462M* or CS 453A* with a grade of C- or better counting towards this last requirement).

This computer science breadth requirement does not apply to the thesis option. *These courses count only when they are taken as part of a graduate program and are used disjoint from any other program.


The Combined B.S.-M.S.

This five year program, leading to both bachelor's and master's degrees in computer science, offers the student an excellent opportunity to combine undergraduate and graduate studies in an integrated curriculum. Combination of the two programs extends the flexibility of the undergraduate curriculum to more advanced studies. Students in the BSMS program can exploit the program's flexibility by taking graduate courses toward the graduate degree while still completing the undergraduate degree requirements.

The B.S-M.S. program offers early admission to the graduate program in computer science in the junior or senior year and they allow you to complete the master's degree in only one additional year of study (instead of the usual 3 semesters).  Each master's level computer science course that you take at Washington University that is not counted toward your undergraduate degree can be counted toward the 30 units required for the MS.  Taking advantage of this program can also result in a financial advantage, since the total time to completion is shortened and undergraduate tuition is lower than graduate tuition. Also, if you choose to do a Master's Project or Master's Thesis, this gives you the flexibility to spread the research work over a longer period.

If you plan to apply to this program, it is recommended that you complete at least an undergraduate minor in computer science, three additional computer science courses at the 400 level, and one at the 500 level during your first four years. See the sample schedule for the B.S.-M.S. program.


Combined Bachelor/Master's Program

This program is designed to enable students in other Washington University Schools to pursue a coordinated five-year study leading to a bachelor degree outside enginnering and a master's degree in the School of Engineering and Applied Science. The admissions process and the graduation requirements for this program are identical to those for the B.S.-M.S. program described above.

Students in this program usually complete a CS minor to obtain the background needed for their M.S. course work. Ideally students will take CS 101G, CS 102G, CS 201 (or some discrete mathematics course), CS 241, CS 306S and CS 342S as part of the undergraduate program (typically using these courses as free electives).


B.S.-D.Sc. Program

The School of Engineering and Applied Science has established a new combined Bachelor of Science/Doctor of Science program. This program is designed to enable highly motivated students of exceptional talent to embark on an accelerated course of studies and research leading to a Doctor of Science degree within seven years. The degree requirements for B.S.-D.Sc. degree are those associated with the B.S. and D.Sc. degree programs. However, graduate courses at the 500-level or above may be counted toward both degrees subject to departmental approval. Students may be admitted to the program upon entry to Washington University but no later than the junior year. More information about the doctoral program can be found in our Guide to the Doctoral Program and a sample schedule for the B.S.-D.Sc. program.


The Degree Doctor of Science in Computer Science

The Doctor of Science program emphasizes creative research work leading to a doctoral dissertation. Normally a student is expected to have a master's degree and demonstrated research potential (either a master's thesis or a published research paper) before entering the doctoral program. Total credit requirements are 72 units with 36-48 units of course work (including acceptable transfer credit from a master's program) and 24-36 units of research, all of which must be taken for a grade (except for research seminars). As part of this course work, students are required to complete three units of research seminar (CS 67XX). Students are expected to begin seeking a suitable research topic early in their doctoral program. Doctoral students must satisfy all components of our qualifying procedure.

More information about the doctoral program can be found in our Guide to the Doctoral Program.

Computer Science graduate programs at both the master's and doctoral levels provide unique opportunities for independent study and research. The faculty is at the forefront of a variety of areas, both within the department and in conjunction with other University departments and laboratories. Accordingly, students generally participate in such work as a part of their educational experience in addition to thesis or dissertation requirements.


B.S. - M.B.A. Program

The growing importance of computer-based information systems in the business environment has produced a sustained high demand for graduates with master's degrees in business administration and undergraduate majors in computer science and engineering.  A sample curriculum showing a "typical" schedule for a B.S.-M.B.A. student.


Networking and Communications Program

Modern communication networks are stunning examples of the power of sophisticated technology to change the way we live and work. The fiber optic transmission systems and virtual circuit switching systems of the 1980s have engendered a new revolution in communications. The next decade will see the emergence of networks capable of supporting advanced computing, visualization, and collaborative multi-media environments while providing global access to electronic multimedia libraries.

The design of such networks is an inherently interdisciplinary endeavor, requiring specialists in a wide range of areas including optical device technology, distributed computing hardware and software systems, signal processing, and switching system architecture. At the same time, it requires generalists capable of bridging the gaps among specialties and making critical design decisions in the face of complex trade-offs.

The Master's Program in Networking and Communications, jointly administered by the Departments of Computer Science and Electrical Engineering, provides excellent preparation for either career path. Its curriculum of five core courses, three electives, and a practical design project assures broad training in the principles and technology of modern communication systems while offering exceptional opportunities for the pursuit of individual students' interests. Courses are scheduled so that students can complete the program in a single year.

Graduates of the program are awarded an M.S. degree either in computer science or electrical engineering, and a certificate in networking and communications. Entry to the program is through the normal graduate application process for either computer science or electrical engineering. Candidates for the Master's degree in computer science must complete a core of five courses (CS 533M, CS/EE 577M, 592A, EE591, and CS/EE 593A), a six unit project (CS 595, 596) or thesis (CS 599), and nine additional units of graduate level electives in computer science, electrical engineering, or a related field (with approval of the academic advisor). Participants in this program need not fulfill the computer science breadth requirement associated with the Master's in computer science. For further details see the Bulletin section on the Program in Networking and Communications.