Skip to content Skip to navigation

Overview of the Department's Research and Teaching

5.1 Areas of Research within the Department


Algorithms, optimization and theoretical computer science


  1. Combinatorics: theory and algorithms. ( Farach-Colton, Fredman, Grigoriadis, Kalantari, Muthukrishnan, Saks, Steiger, Szegedy, Szemerédi)
  2. Computational geometry: (Kalantari,  Steiger, Szemerédi)
  3. Complexity theory: (Allender, Fredman, Kilian, Saks, Szegedy, Szemerédi)
  4. Design and analysis of data structures and algorithms: ( Farach-Colton, Fredman, Gerasoulis, Grigoriadis, Kalantari, Muthukrishnan, Steiger, Szemerédi)
  5. Mathematical programming, discrete optimization: algorithms and complexity. (Grigoriadis, Kalantari,  Steiger)
  6. Parallel computation: (Allender, Farach-Colton, Gerasoulis, Steiger, Szemerédi)
  7. Computational molecular biology: (Farach-Colton. Muthukrishnan)
  8. Computational learning theory and theory of neural networks: (Hirsh, Sontag)
  9. Cryptography (Kilian)
  10. Quantum Computing (Szegedy)


Artificial intelligence


  1. Problem solving and problem representations; coordination of qualitative and quantitative reasoning. ( Kulikowski, Smith,  Steinberg)
  2. Cognitive models in AI, natural language processing, knowledge representation and reasoning, models of common-sense reasoning. (Borgida, Kulikowski, McCarty, Shan, Stone)
  3. Methods of machine learning, self-improvement in problem solving, automatic theory formation, knowledge acquisition, knowledge compilation. ( Hirsh, Kulikowski, Littman, Pavlovic, Steinberg)
  4. Applications of AI: medicine ( Kulikowski, Metaxas, Pai), psychology, legal reasoning (McCarty), design (  Steinberg), laboratory instrumentation (Kulikowski, Metaxas), linguistics (Shan, Stone), vision (Elgammel), molecular biology (Kulikowski, Metaxas), robotics for the disabled .
  5. Computer vision, image processing, robot navigation, object modeling, iconic reasoning (Elgammel, DeCarlo, Kulikowski, Littman, Metaxas, Pai, Pavlovic)

Numerical Computing, Modeling and Simulation

  1. Search Engines, sparse matrices, Parallel algorithms. (Gerasoulis)

Computer and Software Systems

  1. Computer networking, network analysis and synthesis, networks. ( Muthu)
  2. Distributed Computing (Badrinath, Bianchini, Iftode, Imielinski, Minsky, Nguyen)
  3. Parallel processing (Bianchini, Gerasoulis, Iftode, Kremer, Nguyen)
  4. Wireless Computing (Badrinath, Iftode, Imielinski)
  5. Software Engineering (Borgida, Minsky)
  6. Compilers and program optimization (Kremer).
  7. Information storage and retrieval: data mining (Farach-Colton, Imielinski), digital libraries and information retrieval (Marian), bio-informatics (Farach-Colton, Kulikowski), content-based image retrieval.



5.2 Research Laboratories and Groups


  • The VILLAGE (vision, interaction, language, logic and graphics environment) carries out research in the eponymous subjects under the broad aim of developing interactive testbeds in which computer systems are given a more active role in interpreting the environment around them and the actions and intentions of their users.
  • The DISCO group is exploring systems issues in distributed and parallel computing. Our current focus is to make PC clustering technology easier to use for the development of parallel programs and scalable servers.
  • Mobile Wireless Computing at Rutgers (The DATAMAN group) Project investigates protocols, services, and other issues involved in being wireless-ly "on-line". The DATAMAN group recently received grants from NSF and ARPA.
  • Hypercomputing and design attempts to build on advances in massively parallel computing and in computer science and to develop a new generation of engineering automation technology that can bring about dramatic gains in productivity of the national industrial base.
  • PROLANGS (Programming Languages) works on code transformation and optimization, compile-time analysis and performance modeling, especially for object-oriented programming languages.
  • The Audioweb project seeks to create a common telephone interface to the World Wide Web.
  • The Learning group studies the development and analysis of algorithms for machine learning, especially in the application areas of bioinformatics, computational design, human-computer interaction, and intelligent information access.


5.3 Grant-Supported Research Projects

For the most up-to-date list, consult


5.4 Curriculum

The Department of Computer Science offers a comprehensive program of graduate study. There are basic courses in all areas of computer science and advanced courses in most. The areas can be divided roughly into these categories: artificial intelligence and its applications; computer systems and software systems; algorithms, optimization and theoretical computer science; numerical computing, modeling and simulation.


The graduate courses given in the department are listed below under all the specializations with which they are closely related. The 400 level undergraduate courses, which are available to graduate students for graduate credit, are also listed. All these courses are listed in Section 6.1 with descriptions of content, prerequisites and expected work.


Students who plan to study for a Ph.D. should consult Section 5 for a guide to current faculty research. With the guidance and approval of an academic advisor the student should plan a course of study that will prepare for doing research in the area that most interests her. The information in Section 2 may help the student in choosing an advisor, both for this preparation and for selecting and working on a research problem.

Algorithms, Optimization and Theoretical Computer Science

452 Formal Languages and Automata
509 Introduction to the Foundations of Computer Science
513 Design and Analysis of Data Structures and Algorithms I
514 Design and Analysis of Data Structures and Algorithms II
521 Linear Programming
522 Network and Combinatorial Optimization Algorithms
524 Nonlinear Programming Algorithms
529 Computational Geometry
538 Complexity of Computation
539 Theory of Computation
540 Combinatorial Methods in Complexity Theory
556 Parallel Computation: Algorithms and Complexity
580 Topics in Computers and Biomedicine 596 Topics in the Foundations of Computer Science

Artificial Intelligence and its Applications

520 Introduction to Artificial Intelligence
530 Knowledge-Based Systems
531 Artificial Intelligence Software: Techniques and Languages
532 Logical Foundations of Knowledge Representation
533 Natural Language Processing
534 Image Understanding
535 Pattern Recognition: Theory and Application
536 Machine Learning
580 Topics in Computers in Biomedicine
598 Topics in Problem Solving Methods

Computer and Software Systems

415 Language Software
416 Operating Systems
431 Software Engineering
505 Computer Structures
507 Advanced Computer Architecture
515 Programming Languages and Compilers I
516 Programming Languages and Compilers II
519 Operating Systems Theory
523 Computer Graphics
528 Parallel Numerical Computing
541 Database Systems
583 Topics in Software Design

Numerical Computing, Modeling and Simulation

424 Modeling and Simulation of Continuous Systems
425 Computer Methods in Statistics
510 Numerical Analysis
521 Computational Methods for Optimization Problems
522 Network and Discrete Optimization Algorithms
525 Advanced Numerical Analysis, I
526 Advanced Numerical Analysis, II
527 Computer Methods for Partial Differential Equations
528 Parallel Numerical Computing
607 Problems in Numerical Methods, I
608 Problems in Numerical Methods, II


In addition, the following courses provide opportunities for work in substantial computer projects, flexible introduction of new topics in the program and critical review of current research in the field:

198:60x (for x betwen 1 and 6) Selected Problems in Computer Science
198:67y (for y between 1 and 5) Seminar in Computer Science

In general, the main themes in these courses change from year to year. 198:60x also provides for a student (or students) and a professor to study any topic of their choice without the necessity of designating the topic before the beginning of the semester. Whenever a student takes a 60x or 67y course, she must fill out the appropriate form indicating the professor and the subject studied. These forms are available in room Hill 302.