The Department of Computer Science

The Department of Computer Science is dedicated to advancing and improving the knowledge, understanding, and practice of computer science through basic research and education.

Research

We construe the field of computer science broadly, to include the complementary concepts of computation, information, and communication. We employ modes of inquiry and creation from pure mathematics to experiment and observation to design and engineering. We investigate computation, information, and communication, as inherently interesting phenomena; we also investigate the many ways in which computational concepts engage other topics: artificial computational tools for science and scholarship, computational infrastructure for society.

Our current research may be classified into theoretical computer science, artificial intelligence, the theory, technology, and practice of programming, databases and data mining, networks and distributed systems, scientific computing, computational mathematics. We also have growing efforts in other applied computing research, such as bioinformatics, medical informatics,scientific data management, and mathematical and computational models of sound.

  • Theoretical computer science. We investigate the fundamental descriptive and algorithmic concepts underlying the computational process and the intrinsic limitations to efficient computation. Our faculty specialize in complexity theory, computational geometry, algorithms, discrete random processes, distributed computing, combinatorics, computability theory, and programming language semantics. It should be emphasized that all other areas of computer science,listed below, have strong theoretical components represented among our faculty.
  • Artificial intelligence. We use language, vision, and learning as the organizing themes driving work in artificial intelligence.
  • Programming systems. Our faculty emphasizes the formal definition, design, and implementation of programming languages, formal methods for software design, concurrency, and applications of scripting languages in scientific computing.
  • Databases, data mining, visualization.
  • Networks and distributed systems. Our faculty advance the principles, practice, and applications of large-scale distributed and collaborative systems, particularly through leadership roles in the global computing grid and the study of peer to peer networks. Research areas include the design, implemention, and evaluation of systems, protocols, and applications.
  • Computational mathematics, scientific computing; mathematical, algorithmic, language and systems aspects of numerical computing; parallel and high performance computing.
  • Interdisciplinary research. We collaborate with faculty in many other disciplines, including mathematics, statistics, economics, linguistics, psychology, biological sciences, high energy physics, astrophysics, geophysics, as well as with the Division of Mathematics and Computer Science at Argonne National Laboratory (ANL). ANL is operated by the University of Chicago for the US Department of Energy.

Graduate Programs

We offer two graduate curricula in computer science.

* A graduate professional curriculum leading to the Master of Science (S.M.) degree, for students who wish to enter or advance themselves in computer science practice.
* A graduate research curriculum leading to the Ph.D. degree and preparing students to perform advanced basic research in computer science either in industry or academia. Substantial college teaching experience is available for students preparing for academic careers.

Acquire further information about our Professional Programs by writing to our CSPP Admissions, Department of Computer Science, University of Chicago, 1100 East 58th Street, Chicago, IL 60637, by telephoning 773-834-3388, or through our website http://masters.cs.uchicago.edu/. You may email any questions to our questions@cs.uchicago.edu email address.

Acquire further information about our educational programs by writing to Admissions, Department of Computer Science, University of Chicago, 1100 East 58th Street, Chicago, IL 60637, by telephoning (773) 702-6011, or through the Web at http://www.cs.uchicago.edu/.

The Ph.D. program

The department offers two Ph.D. tracks: a "standard track" and a "computational mathematics" track.
The detailed requirements for the Ph.D. degree and for the S.M. degree within the Ph.D. program can be found by visiting the Department's web page at http://www.cs.uchicago.edu/. Here is a brief summary.

Our research curriculum does not offer an S.M. program; students admitted to the Ph.D. program receive their S.M. degrees along the way toward their Ph.D.

To obtain an S.M. degree, students in the Ph.D. program must fulfill the following requirements:

(a) Complete a sequence of five core courses and four electives. The core courses are

CS 31000 - Foundations of Computer Science
CS 32200 - Computer Architecture
CS 33000 - Operating Systems
CS 35000 - Introduction to Artificial Intelligence
CS 37000 - Algorithms

A modified set of core courses applies to the computational mathematics track (see the web-site). The list of electives is frequently updated; we refer to the web page.

Students must complete the core courses by the end of the Winter quarter of their first year of study and the electives by the end of their second year of study. Students must receive a grade of at least B- in all the nine courses and have a GPA of at least 3.00 in the five core courses.

(b) Write a Master's paper and pass a Master's examination.

To obtain a Ph.D. degree, students must meet enhanced S.M. requirements, including at least B on each of the nine courses and a GPA of at least 3.25 on the five core courses; plus the following:

(c) Pass the Candidacy exam;
(d) Pass the Foreign Language Competency exam (reading a technical paper in an approved foreign language, with the use of a dictionary);
(e) Write and defend a Doctoral Thesis which contains significant original research in computer science.

Financial Aid for students in the Ph.D. program

We expect to support all students who make satisfactory progress toward a doctorate. This support includes full tuition and a monthly stipend during the academic year that is competitive with offers made by other top-ranked schools. To earn their stipends, students will have to perform part-time work for the department as teaching assistants, research assistants, members of the technical staff, etc. The department also encourages prospective students to apply for all externally funded grants and fellowships for which they qualify.

Admission to the Ph.D. program

While most of our graduate students have majored in mathematics or computer science as undergraduates, applicants with other backgrounds have also been successful in our department. Students will succeed in the program if they are motivated to do research and have a strong general intellectual preparation to study in a particular field of computer science.

Students also need a reasonable foundation in mathematics, including calculus and linear algebra.
Applicants who expect to specialize in theoretical computer science or computational mathematics will need a more substantial mathematics background that includes advanced proof-based courses such as analysis, abstract algebra, probability and measure theory, logic, topology.

Applicants who expect to work in artificial intelligence (AI) will also want to have had some background in cognition, such as linguistics, cognitive psychology, or AI. Much of a typical undergraduate curriculum in computer science, such as courses in programming languages, data structures, operating systems and algorithms, is necessary background to specialize in programming languages and systems. Other applicants will also find such courses very useful background.

The department encourages all potential students to take an advanced test of the Graduate Record Examination (GRE). That advanced test does not need to be in computer science or mathematics, although these are generally the most helpful. In certain areas, such as Theory or AI, a mathematics GRE tends to be more helpful than a computer science GRE.

Teaching opportunities for students in the Ph.D. program

The department takes its undergraduate teaching responsibilities very seriously, and offers supervised teaching opportunities, including lecturing, acting as teaching assistants, and working as lab assistants to its best graduate students. The program allows students to develop their teaching abilities and gain significant classroom experience. The department also works with other University departments to make campus-wide teaching seminars available to its students.

Computing Facilities

In addition to general University computing facilities and our Undergraduate Computing Laboratory (which contains about four dozen Macintosh computers and two dozen Linux workstations with extensive peripherals and software), the Ryerson Research Computing Service provides the faculty, students, and postdoctoral associates in computer science with state of the art computing resources. We have the flexibility to adapt quickly to new research needs.

The resources include: 24-hour 7-day interactive computing services on a number of shared Unix/Linux computing servers and workstations interconnected by high speed ethernet; a workstation on each desktop (a total of more than 200 workstations); wireless connections; substantial amounts of personal file storage, backed up nightly for reliability and accessible transparently from all departmental computers; printer service on several PostScript laser printers; web servers and access to the Internet; Linux clusters for research in parallel computing and High Performance Computing. The department also has access to highly parallel machines at ANL.

There are two AccessGrid nodes on campus and the University is a node on the Illinois I-WIRE ultra-high-speed optical fiber grid connecting a number of research facilities, including Northwestern University and ANL. The department also participates in the PlanetLab international networking and distributed computing laboratory.

Courses

For the list of courses offered and the course descriptions, please consult the departmental web page at http://www.cs.uchicago.edu/courses.

Last Updated 9/02/2003