The Department offers graduate programs leading to the M.S. and Ph.D. degrees in Information and Computer Science. Enrollments in the M.S. program are being limited to those students with an undergraduate degree in computer science or a closely related field.
Both M.S. and Ph.D. students may work toward a basic degree, or complete one of the following concentrations: Artificial Intelligence (AI); Computer Systems and Networks (CSN); Computer Systems Design (CSD); Computing, Organizations, Policy, and Society (CORPS); Software (SW); Algorithms and Data Structures (Theory).
Two additional concentrations are available to M.S. students--Embedded Systems and Knowledge Discovery in Data. In addition, the Department is actively developing a program in the area of computational biology.
A minimum of 48 units is required for the M.S. degree. Course requirements for the M.S. and the Ph.D. degrees are identical and are determined by the concentration research track. Detailed course requirements are listed in the following pages under each concentration area. M.S. concentrations are available in the same areas as the Ph.D. concentrations.
In addition, M.S. students may select a general degree, a concentration in Embedded Systems, or a concentration in Knowledge Discovery in Data. Students may select one of two options: Thesis Plan or Comprehensive Examination Plan. The normative time for completion of the M.S. program is two years. All study must be completed within four calendar years from the date of admission.
Plan I: Thesis Plan. The thesis option is available for graduate students who may wish to continue on to a Ph.D. program or those who wish to concentrate on a specific problem. The student completes 48-52 units of course work (as specified under the concentration area) with a grade of B or better and writes a research or project thesis. A committee of three full-time faculty members is appointed to guide development and final approval of the thesis. Seminar courses such as 229, 239, 249, 259, 269, and 279 cannot be applied to the required units.
Plan II: Comprehensive Examination Plan. The student completes 48-52 units (as specified under the concentration area). Each course must be passed with a grade of B or better. Seminar courses such as 229, 239, 249, 259, 269, and 279 cannot be applied to the required units.
The ICS general M.S. degree program is designed for students who do not wish to specialize in any specific area. Students can explore many of the advanced fields in computer science. These areas include: embedded systems, high-level design, networking, databases, computational geometry, neural networks, data mining, machine learning, graph algorithms, VLSI, social analysis, parallel architectures, user interfaces, software processes, environments, and measurement.
Required Courses
The following courses must be passed with a grade of B or better. Five courses, including at least one from each of the following three categories: Theory: Fundamentals of the Design and Analysis of Algorithms (ICS 260), Data Structures (ICS 261), Analysis of Algorithms (ICS 263); Architecture/CAD/Hardware: Embedded Systems Concepts (ICS 212), Computer Systems Architectures and Languages (ICS 241), Computer Networks (ICS 243), Introduction to Computer Design (ICS 252); Software and Systems: Human- Computer Interaction (ICS 205), Advanced Compiler Construction (ICS 211), Databases (ICS 214), Software Engineering (ICS 221), Distributed Computer Systems (ICS 247).
Seven additional courses which are either ICS graduate courses or ICS undergraduate project courses. At most two undergraduate courses can count toward this requirement. (A course taken as an undergraduate student cannot count toward this requirement.) The undergraduate project courses are: Project in Human-Computer Interaction (ICS 105), Project in System Design (ICS 125), Comprehensive Project in Software System Evolution (ICS 126A-B), Advanced Project in Software Engineering (ICS 127), Project in the Social and Organizational Impacts of Computing (ICS 135), Language Processor Construction (ICS 145A), Project in Operating System Organization (ICS 145B), Logic Design Laboratory (ICS 155A), Computer Design Laboratory (ICS 155B), Advanced Computer Networks (ICS 156), Project in Algorithms and Data Structures (ICS 165), Project in Artificial Intelligence (ICS 175A), Introduction to Expert Systems (ICS 175B).
Comprehensive Examination
Each student must pass a general written Comprehensive Examination administered and evaluated by a committee assembled by the Associate Chair for Graduate Studies.
The goal of the M.S. concentration in Embedded Systems is to prepare ICS students for the challenges in exploiting technologies that are driving computing-based systems into new and emerging application domains. The ever-increasing integration of communications, multimedia, computing and relentless digitization of data continues to expand the scope and the complexity of embedded systems. To appreciate these advances, and to productively contribute to future advances of these systems, a critical appreciation of the underlying scientific principles is a must. The goal of this program is to develop a comprehensive understanding of the hardware and software technologies used in embedded systems. Students will develop an understanding of the technology capabilities and limitations and the methods to evaluate design trade-offs between different technology choices.
Required Courses
The following courses must be passed with a grade of B or better: Compilation and Compiler Design (ICS 211), Embedded System Concepts (ICS 212), Software for Embedded Systems (ICS 213), Validation and Testing of Embedded Systems (ICS 216), Design Automation and Prototyping of Embedded Systems (ICS 217), Advanced System Software (Engineering ECE231).
Six courses from: Software Engineering (ICS 221), User Interfaces and Software Engineering (ICS 227), Computer Systems Architecture (ICS 241), Parallel Computer Architecture and Languages (ICS 242), Computer Networks (ICS 243), Parallel Computing (ICS 244), High-Performance Architectures and Their Compilers (ICS 245), Distributed Computer Systems (ICS 247), Fault-Tolerant Computing (ICS 250), Digital System Verification and Testing (ICS 251), Introduction to Computer Design (ICS 252), VLSI System Design (ICS 254), Design Synthesis (ICS 256), System Tools (ICS 257), Combinatorial Algorithm for Design Synthesis (ICS 258), Graph Algorithms (ICS 265), Real-Time Computer Systems (Engineering ECE253). M.S. students who do not have an undergraduate degree in computer science must also take ICS 260.
Suggested Electives. Students may focus their studies in specific domains within embedded systems by completing groups of electives as shown below.
Embedded System Architectures Focus: ICS 241, 242, 252, 253.
Embedded Software Focus: ICS 221, 227, 242, 245.
Distributed and Networked Embedded Systems Focus: Choose four out of the following five courses: ICS 241, 242, 243, 244, 247.
Micro-Electronic Embedded Systems Focus: ICS 251, 254, 256, 257.
System Reliability and Fault Tolerance Focus: ICS 241, 250, 251, 253.
Theoretical Foundations of Embedded Systems Focus: ICS 243, 247, 258, 265.
Comprehensive Examination
Each student must pass a written Comprehensive Examination administered and evaluated by the Embedded Systems faculty.
The goal of the M.S. concentration in Knowledge Discovery and Data is to educate students in both the fundamental principles of computational methods for modeling data, as well as to provide a broad foundation in emerging methods for knowledge discovery and data mining. Technological advances in digital data collection, memory capacity, and computational power, have revolutionized our view of data analysis in the past 10 years. The volumes of data being collected in science, business, medicine, and government are truly vast in nature. Across all of these areas, there is a rapidly increasing demand for better theories and tools to provide users with improved understanding of their data and to leverage their data for decision support.
Knowledge discovery in databases (KDD) is an emerging discipline within computer science, focused on the principles of how patterns and structure can be inferred from large data sets. It is an area of significant academic interest and research opportunity. For example, a Special Interest Group in Knowledge Discovery in Databases (SIGKDD) was recently started by the Association for Computing Machinery (ACM) to promote both research and professional activities in this area; a new journal called Data Mining and Knowledge Discovery was started in 1997; and the field sponsors an annual international conference with over 500 attendees. In addition, the National Science Foundation has recently begun a large interdisciplinary research program in Knowledge and Distributed Intelligence (KDI), based in part on recent research and interest in KDD. Industry participation is also very active with broad demand for graduates in this area, across a wide variety of companies engaged in leveraging scientific and business data for strategic purposes.
Required Courses
The following courses must be passed with a grade of B or better: Databases (ICS 214), Machine Learning (ICS 273), Probabilistic Learning (ICS 274), Data Mining (ICS 278), Descriptive Multivariate Statistics I (ICS 238A).
Two courses from: Project in Artificial Intelligence (ICS 175A), Information Retrieval, Filtering, and Classification (ICS 207), Introduction to Artificial Intelligence (ICS 270), Network-Based Reasoning/Constraint Networks (ICS 275A), Network-Based Reasoning/Belief Networks (ICS 275B), Neural Networks (ICS 276A), Representations and Algorithms for Molecular Biology (ICS 277).
Two courses from: Descriptive Multivariate Statistics II (ICS 238B), Discrete Mathematics and Probability (Psychology 203A), Introduction to Mathematical Statistics (Psychology 203B), Experimental Design (Psychology 203C), Theory of Mathematical Statistics (Mathematics 201A), Probability (Mathematics 270 A-B-C).
Two courses from: Project in System Design (ICS 125), Human Computer Interaction (ICS 205), Software Engineering (ICS 221), Software Analysis and Testing (ICS 224A), User Interfaces and Software Engineering (ICS 227), Foundations of Computer Science (260), Data Structures (ICS 261), Analysis of Algorithms (ICS 263), Graph Algorithms (ICS 265), Computational Geometry (ICS 266).
One elective: any ICS graduate course may be selected; a non-ICS course can only be taken with approval from one of the KDD faculty.
Comprehensive Examination
Each student must pass a written Comprehensive Examination administered and evaluated by the KDD faculty.
The Ph.D. program leads to a concentration in one of six areas: Artificial Intelligence (AI); Computer Systems and Networks (CSN); Computer Systems Design (CSD); Computing, Organizations, Policy, and Society (CORPS); Software (SW); Algorithms and Data Structure (Theory). Additionally, an area of specialization other than one of these concentrations may be chosen with the approval of the graduate advisor.
The program is research oriented and encourages students to work together with faculty to solve advanced problems in computer science. The program is designed for full-time study and can be completed in five to six years, depending upon the focus of research. Students enrolled in the Ph.D. program must maintain satisfactory academic progress.
Applicants will be evaluated on the basis of their prior academic record. Applicants for the M.S. degree are expected to have a bachelor's degree in computer science or a related field. Those who do not have an undergraduate degree in computer science may take the Computer Science Advanced GRE test and must score in the top 80 percent to demonstrate sufficient background in the field. Ph.D. applicants will be evaluated in their potential for creative research and teaching in Information and Computer Science.
Applicants are expected to have (1) skills in computer programming at least equivalent to those obtained in college-level courses in programming and language development; (2) skills in mathematics equivalent to those obtained in complete college-level courses in logic and set theory, analysis, linear algebra and modern algebra, or probability and statistics; (3) data structures, analysis of algorithms, automata theory or formal languages; and (4) computer architectures.
All applicants are evaluated on the materials submitted: letters of recommendation, official GRE test scores, official college transcripts, and personal statement. For more information, contact the ICS graduate counselor at (949) 824-2277 or send e-mail to gcounsel@ics.uci.edu.
Financial Assistance
Financial assistance is available to Ph.D. graduate students in the form of scholarships, teaching assistantships, and research assistantships. Although assistance varies, it is the Department's goal to support all entering Ph.D. students, subject to availability of funds. International students who apply for teaching assistantships must take the Test of Spoken English (TSE) and earn a minimum score of 50 to be considered for an award.
Financial assistance may be available through teaching assistantships and corporate internships for ICS M.S. students.
Course Requirements
Course requirements for each concentration area are listed on the following pages. In addition, every Ph.D. student must complete the following core course requirements with a grade of B or better.
One course in Theory selected from: Foundations of Theoretical Computer Science (ICS 260), Data Structure (ICS 261), or Analysis of Algorithms (ICS 263); one course in Architecture/CAD/ Hardware selected from: Embedded Systems Concepts (ICS 212), Computer Systems Architectures and Languages (ICS 241), Computer Networks (ICS 243), or Introduction to Computer Design (ICS 252); and one course in Software and Systems selected from: Human-Computer Interaction (ICS 205), Compiler Construction (ICS 211), Databases (ICS 214), Software Engineering (ICS 221), or Distributed Computer Systems (ICS 247).
Students with a Previously Earned Master's Degree
Credit for one or all required courses may be given at the time of admission to those students who have completed a master's degree in computer science or a closely related field. Course equivalency will be determined by the graduate admissions committee following a written recommendation from a sponsoring research advisor. Research advisors can require that a student take additional courses when this is appropriate.
Course Substitutions
A student who has taken relevant graduate courses at UCI or another university may petition to have a specific course certified as equivalent to one which satisfies ICS requirements. The petition should describe the two courses and can be approved either by a committee composed of the student's faculty advisor, the ICS Associate Chair for Graduate Studies, and a faculty member who is in the concentration area in which the course is taught, or by the ICS Graduate Policy Committee. Only two courses can be substituted.
Teaching Requirements for the Ph.D. Program
All ICS doctoral students are required to participate in teaching activities before being advanced to candidacy. Teaching activities in summer or night school or service at other universities may be accepted in fulfillment of this requirement.
Examinations and Dissertation for the Ph.D. Program
Each doctoral student must present a research talk to a group of faculty and graduate students and pass a comprehensive examination which will be evaluated by the faculty. The comprehensive examination and all course requirements must be satisfied prior to the student's application for advancement to candidacy. Information on the selection of committees, advancement to candidacy, development of a doctoral dissertation, and final examination on the dissertation is available from the ICS Associate Chair for Graduate Studies.
Research in Artificial Intelligence (AI) is aimed at understanding the computational mechanisms that underlie intelligent behavior, and at designing computational systems that exhibit it. The AI group at ICS is involved in research on machine learning and knowledge discovery; deductive and probabilistic reasoning; constraint satisfaction techniques; neural networks and cognitive architectures; sophisticated image and signal processing; scientific reasoning in domains such as molecular biology, medicine, and space science; intelligent web-based agents; and the psychological investigation of human learners. The group is interested in basic research into the fundamental principles of intelligence; the methods by which knowledge is acquired, summarized, organized, and utilized to solve complex problems; the construction of computational artifacts that support algorithmically, cognitively, or conceptually challenging tasks and embody behavior associated with intelligent systems; and applications that confront intelligent systems with real-world tasks. Within the general field of AI, ICS faculty specialize in machine learning, knowledge discovery and data mining, automated reasoning and constraint-based reasoning, brain modeling, and computational biology and medical informatics.
Required Courses
The following courses must be passed with a grade of B or better: Seminar in Research in ICS (ICS 200); two courses in Special Topics in Information and Computer Science (ICS 280), one taught by AI area faculty; Introduction to Artificial Intelligence (ICS 270A); three courses selected from: Machine Learning (ICS 273), Probabilistic Learning (ICS 274), Network-Based Reasoning/Belief Networks (ICS 275B), Neural Networks (ICS 276A), or Representations and Algorithms for Molecular Biology (ICS 277); two additional courses from: Information Retrieval, Filtering, and Classification (ICS 207), Advanced Artificial Intelligence Programming (ICS 270B), Network-based Reasoning/Constraint Networks (ICS 275A), Seminar in Models of the Brain (ICS 276B), Cognitive and Computational Neuroscience (ICS 276C), or Data Mining (ICS 278); and five graduate courses outside of Artificial Intelligence, at least three of which must be within the ICS Department.
Paper Requirement for the Ph.D. Degree
Each student must write two research papers of publishable quality.
This area of research and study is concerned primarily with the development of systems software, that is, the software infrastructure that makes the development and use of applications possible. This includes compilers, operating systems, networking software, performance tools, and software development environments, which are studied from both theoretical and practical points of view.
The CSN research group is particularly interested in systems software in the context of parallel or decentralized systems, that is, systems having multiple CPUs, including computer networks and both shared- and distributed-memory multiprocessor architectures, which offer great new opportunities in distributed computing and communication as well as performance-oriented scientific computing, but also pose major technological challenges to researchers and developers of parallel/distributed computer systems. The specific topics studied by the faculty members of this concentration area include: design and study of paralleling compilers; design and analysis of high-speed multimedia networks; object-oriented frameworks for distributed systems; approaches to portable and mobile programs; development of coordination paradigms for distributed applications; support for distributed simulations; design and study of extensible and run-time adaptable operating systems and software environments; system support for high-performance scientific computing; and distributed algorithms.
Applicants with a focus on engineering may also refer to the concentrations in Computer Networks and Distributed Computing, and Computer Systems and Software, offered by the Department of Electrical and Computer Engineering.
Required Courses
The following courses must be passed with a grade of B or better: Seminar in Research in ICS (200); Advanced Compiler Construction (ICS 211); Computer Systems Architecture (ICS 241); Computer Networks (ICS 243); Software Engineering (ICS 221); Data Structures (261).
Three from the following list: Parallel Computing (ICS 244); High-Performance Architectures and Their Compilers (ICS 245); Computer Systems Modeling and Performance Evaluation (ICS 246); Distributed Computer Systems (ICS 247); Queuing Theory (ICS 248); Fault-Tolerant Computing (ICS 250); Analysis of Algorithms (ICS 263).
Two other ICS courses: these must be regular graduate courses, including those listed above which were not already taken, and excluding 229, 239, 249, 259, 269, 279, 280, 290. One of these courses may be substituted by an Electrical and Computer Engineering course selected from the following list: Advanced System Software (ECE231); Distributed Computer Systems (ECE252); Real-Time Computer Systems (ECE253); Parallel Database Systems Engineering (ECE257).
Paper Requirement for the Ph.D. Degree
Each student must write two research papers of publishable quality.
New application areas are placing increasingly challenging demands on existing computer systems. At the same time, advanced technologies are being developed that make the design and manufacturing of computer systems faster and cheaper. The current trend in computerization is toward application-targeted systems that solve specific problems well. The development of such systems requires an understanding of the complex interactions between applications, software, and hardware.
The Computer Systems Design area addresses the various aspects of bridging the gap between the demands of new applications and available technology. It is designed to produce computer scientists with an increased awareness of the demands imposed on computers by the application domains which have traditionally been viewed as extrinsic to computer science. This application sensitivity will give students a unique advantage in the increasingly important area of integrated software/hardware computer and information systems and will prepare them to meet the challenges of real-world problems. Within the general area of computer systems, ICS faculty specialize in hardware/software codesign for embedded systems; CAD tools for VLSI, systems-on-silicon, and novel architectures; broadband, networked, and portable systems; retargetable optimizing compilers; and system-specification and performance-analysis techniques.
Required Courses
The following courses must be passed with a grade of B or better: Seminar in Research in ICS (ICS 200); at least three quarters of Seminar in Design Science (ICS 249 or 259); Computer Systems Architecture and Languages (ICS 241); five graduate courses outside of Computer Systems Design but within ICS, no more than three of which may be in one area; and four core courses selected from the following: Introduction to Embedded Computing Systems (ICS 212), Software for Embedded Systems (ICS 213), Fault-Tolerant Computing (ICS 250), Digital System Verification and Testing (ICS 251), Introduction to Computer Design (ICS 252), Design Description and Modeling (ICS 253), VLSI System Design (ICS 254 or Engineering ECE251), Physical Design Automation (ICS 255 or Engineering ECE238), Design Synthesis (ICS 256), System Tools (ICS 257), Combinatorial Algorithms for Design Synthesis (ICS 258).
Paper Requirement for the Ph.D. Degree
Each student must write two research papers of publishable quality.
UCI is an internationally recognized center for research on the social and managerial dimensions of computerization. One stream of this research examines the impacts and policy issues that surround computerization. A second stream, which is longitudinal and organizational in emphasis, examines the ways in which users develop computing technologies, including workplace negotiations and coalitions. CORPS researchers study these topics in various public and private settings including government agencies, large and small commercial enterprises, and universities.
CORPS has recently added a research focus on computer-supported cooperative work and human-computer interaction. Examples of specific interests are social and behavioral factors affecting the design and adoption of groupware; use of virtual communities, the Internet, and digital libraries; and technical support for organizational learning and memory. Work in these areas consists of both empirical research and the building of prototype systems.
CORPS researchers focus on understanding the "reality" of computerization, in contrast with utopian promises and anti-utopian fears. A large fraction of the research is empirical, and is conducted in vivo--in organizations or other social settings where computer-based systems are developed and used routinely. The empirical studies of work organization and organizational control patterns also have an important theoretical dimension. Other theoretical studies conducted by CORPS researchers build upon a broad body of empirical studies of the social dimensions of information technologies.
Required Courses
The following courses must be passed with a grade of B or better: Seminar in Research in ICS (ICS 200); Social Analysis of Computing (ICS 230); at least three quarters of Seminar in Research on Social Analysis and Information Systems (ICS 239); four courses chosen from: Human-Computer Interaction (ICS 205), Computer Supported Cooperative Work (ICS 233), Computerization, Work, and Organizations (ICS 234A), Theories of Computerization and Information Systems (ICS 234B), Computing and Cyberspace (ICS 234C), Qualitative Research Methods in Information Systems (ICS 235A) or Social Ecology 217 or Management 290, Quantitative Research Methods in Information Systems (ICS 235B) or Descriptive Multivariate Statistics I and II (ICS 238A and 238B) or Social Science 201A-B; and five or six graduate courses outside of CORPS, only one of which may be ICS 280.
The five or six courses are chosen as follows. A student who does not elect to take an optional minor outside of ICS must take five graduate courses within ICS in at least two areas other than CORPS. A student who elects to take a minor outside of ICS must take three graduate courses within ICS in at least two areas other than CORPS, in addition to three graduate courses outside of ICS. The minor outside of ICS consists of three graduate courses which form a coherent area of study.
Paper Requirement for the Ph.D. Degree
Each student must write a survey paper and a research paper of publishable quality.
Software has transformed society in dramatic and powerful ways. From the World Wide Web to pilotless vehicles to spreadsheets, software systems inform, control, and enhance daily activities. Software research at UCI is aimed at creating new software technology and solutions, furthering the information revolution. Perspectives of engineering, science, mathematics, and human-computer interaction guide the work. The central goal of all the research is improvement in software development, evolution, deployment, quality, and cost-effectiveness.
Specific research emphases of the five faculty members in the concentration include: analysis and testing, software understanding, empirically-guided analysis, environments, software architectures, hypermedia, workflow, user interface software, process, formal methods, specification languages, extensible component-based software systems, distributed event-based systems, and programming languages and their implementation. Research projects undertaken by the faculty and graduate students receive financial support from the Defense Advanced Research Projects Agency (DARPA), the National Science Foundation (NSF), the Air Force Office of Scientific Research (AFOSR), and the State of California, among others. A valuable and unusual feature of the concentration is the opportunity to work with the Software group's industrial partners. These companies provide opportunities for internships, support research projects, and provide a test-bed for evaluation of new ideas. Graduates of the program have taken careers in research universities, industrial research laboratories, colleges, and industry.
Background: Students must have basic competency in the following computer science topics: programming language concepts, data structures, analysis of algorithms, automata theory or formal languages, artificial intelligence, computer architecture, and operating systems. The software faculty will evaluate, upon entry to the Ph.D. program, whether a student has satisfied these requirements through courses taken previously (e.g., at the undergraduate level) or through equivalent experience. Satisfaction of any unfulfilled requirements may be achieved through either graduate or undergraduate classes in an individualized program worked out with a software area graduate advisor.
Required Courses
The following courses must be passed with a grade of B or better: Seminar in Research in ICS (ICS 200); Software Engineering (ICS 221); Formal Methods in Software Engineering (ICS 222); at least three quarters of Seminar in Software (ICS 229); two courses from: Software Analysis and Testing (ICS 224), Software Processes (ICS 225), Software Measurement (ICS 226), User Interfaces and Software Engineering (ICS 227), Software Environments (ICS 228); two other courses from the Software area (ICS 220-228, including ICS 280s taught by Software area faculty); and four graduate courses outside of Software, drawn from a list maintained by the faculty.
Paper Requirement for the Ph.D. Degree
Each student must write a survey paper with an extensive bibliography and a research paper of publishable quality.
The goal of research in theoretical computer science is to produce results, supported by rigorous proof, about problems dealing with computers and their applications. The questions to be investigated are often motivated by practical problems, but the goal of understanding the underlying combinatorial properties of the problem is often as important as producing a solution of immediate applicability. The actual problems to be solved are often very complicated, so researchers seek some abstraction that can be rigorously studied. In particular, they often seek to investigate the fundamental combinatorial structure of a problem abstracted away from the original physical setting. For example, the problem of placing a set of files onto as few floppy disks as possible without exceeding their storage capacity is fundamentally the same as the problem of loading a set of items onto as few trucks as possible without exceeding their weight limit. Many problems, from a variety of application areas, fall into the category of efficient algorithm design.
A key property of work in this area is its emphasis on the amount of resources required by a given algorithm; this is called the complexity of the algorithm. The resource most commonly considered is time, but other resources often considered are the amount of memory required and, in the case of parallel computation, the number of processors required. For many problems, an efficient solution has been obtained only after deep insights into the nature of the problem. For many problems, the efficiency of the best solution possible remains unknown.
Research in algorithms and data structures grapples with such questions. It is a young science with an inherently interdisciplinary flavor. Problems to be investigated have come from a variety of sources, such as computer vision, scheduling, resource allocation, scientific computing, image processing, genetics, transportation, and artificial intelligence. Solution methods are brought to bear from areas such as discrete applied mathematics, probability theory, and a rich body of insights developed within theoretical computer science. The goal of the research, as in mathematics, is to produce results supported by rigorous proof; the emphasis on complexity gives this area its unique flavor. Results that first might appear to be only of theoretical value are sometimes of profound relevance to practical problems.
Required Courses
The following courses must be passed with a grade of B or better: Seminar in Research in ICS (ICS 200); Data Structures (ICS 261); Computational Complexity (ICS 262); Analysis of Algorithms (ICS 263); two courses from: Graph Algorithms (ICS 265), Computational Geometry (ICS 266), Special Topics in ICS (ICS 280) taught by Theory faculty; at least three quarters of Seminar in Theory (ICS 269); and five graduate courses outside of Theory, at least three of which must be within ICS; if the student has an optional minor, at least two of these courses must be outside the minor.
Paper Requirement for the Ph.D. Degree
Each student must write a survey paper and a research paper of publishable quality.