Faculty Recruiting Support CICS

Core Requirements- PhD

To demonstrate your breadth of knowledge in computer science, you are required to satisfy a set of core requirements. The cores are drawn from three broad areas of Computer Science: theory, systems, and artificial intelligence.

PhD students must complete 6 cores (18 credits) from courses on this page to satisfy the portfolio requirement. Students need to satisfy one core course in each of the three areas. In both theory and artificial intelligence areas, students must select one of two courses to meet the core requirement in each of those areas. You may select any course from the list of systems cores to satisfy a systems core. The remaining 3 cores may be any combination of core courses. A grade of B+ is required in each core to achieve PhD candidacy.

* At least one of 601 or 611.
* At least one of 682, 683 or 689.
* At least one from a systems short list [13 courses here]
* And three other courses at the 600+ level not including 701, 701Y, or courses in the range 691-699, 791-799, 891-899. This includes, but is not limited to [a long list of courses including courses currently listed under theory and AI groups]

Theory Cores

The Theory core requirement requires that you take or have waived COMPSCI 601 (Computation Theory) or COMPSCI 611 (Advanced Algorithms). It is not possible to pass the Theory core without satisfying this part of the core.

The following Theory core courses may be used to fulfill additional core requirements.

COMPSCI 613 Advanced Logic in Computer Science
COMPSCI 651 Optimization in Computer Science


Foundations Applied Cryptography
COMPSCI 690J Advanced Cryptography
COMPSCI 648 Quantum Information Systems (was 690Q)
COMPSCI 614 Randomized Algorithms (was 690RA)


Systems Cores

The following classes may be used to complete systems core requirements:

COMPSCI 610 Compiler techniques
COMPSCI 620 Advanced software engineering: synthesis and development
COMPSCI 621 Advanced software engineering: analysis and evaluation
COMPSCI 630 Systems
COMPSCI 631 Programming languages
COMPSCI 635 Modern computer architecture
COMPSCI 645 Database design and implementation
COMPSCI 653 Advanced computer networking
COMPSCI 655 Performance Evaluation
COMPSCI 660 Advance Information Assurance
COMPSCI 661 Secure Distributed Systems
COMPSCI 677 Distributed and Operating Systems
COMPSCI 690A Advanced Methods in HCI
COMPSCI 690W Advanced Wireless Network and Sensoring in IoT


Artificial Intelligence Cores

The AI core requirement requires that you take or have waived COMPSCI 683 (Artificial Intelligence), COMPSCI 682 (Neural Networks) or COMPSCI 689 (Machine Learning). It is not possible to pass the AI core without satisfying this part of the core.

The following Artificial Intelligence core courses may be used to fulfill additional core requirements.

COMPSCI 603 Robotics
COMPSCI 646 Information Retrieval 
COMPSCI 670 Computer Vision
COMPSCI 674 Intelligent Visual Computing
COMPSCI 682 Neural Networks: Modern Intro
COMPSCI 683 Intelligence Artificial
COMPSCI 685 Advanced Natural Language Processing
COMPSCI 687 Reinforcement Learning
COMPSCI 688 Probabilistic Graphical Models
COMPSCI 689 Machine Learning
COMPSCI 690D Deep Learning; NLP
COMPSCI 651 Optimization in Computer Science

Scheduling Core Course Toward the Portfolio

The faculty encourages PhD-oriented students to get involved in research as quickly as possible, and does not want coursework to delay you unnecessarily. For that reason, the faculty suggests that you take at most one core course per semester, and has arranged the portfolio requirements to reflect that recommendation.

At the time of your portfolio submission, you must have completed four core requirements, at least one in each area.

Some students may prefer to take more than one core course at a time and should feel free to do so if their advisor agrees it makes sense. However, do not neglect the research aspect of your portfolio in doing so. Consult with other students to find out which core courses can easily be combined with others.

(Please do not lose track of other classes that you need to take to satisfy your course credit requirements. The faculty recommendation is meant to diffuse the generally more difficult core coursework, not to have you delay all coursework.)

Passing Out of a Core Requirement

In some circumstances it may be possible to pass or test out of a core requirement on the basis of equivalent coursework at another institution. It may also be possible to substitute a different advanced course for a core requirement. Such approval will be based on the content of that course as it compares to the content of the parallel course taught in this College.

If you believe you should pass out of a core requirement, please download the form and contact the appropriate professor. The instructor will notify the GPD of his or her recommendation. If you are requesting a waiver of more than 1 core course, each professor must be aware of this and sign off on both waiver requests. The GPD will then determine whether or not to accept that recommendation. (Such recommendations are rarely declined.)

Note that passing out of a core requirement addresses the core requirement only. In particular, it does not absolve you from taking the corresponding credit hours. If you needed to take 18 credits and you passed out of one 3-credit core course, you still need to take 18 credits.