Faculty Recruiting Support CICS

Core Requirements- MS/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.

MS/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. Both theory and artificial intelligence areas have an option of two courses to meet the core requirement. You may select any course from the list of systems cores to satisfy a systems core. A grade of B+ is required to achieve PhD candidacy.

Theory cores

The Theory core requirement requires that you take or have waived one of the following courses:

COMPSCI 601 Computation Theory 
COMPSCI 611 Advanced Algorithms

Any of the following may be used to satisfy a second or third theory core requirement:

COMPSCI 601 or 611 Computation Theory or Advanced Algorithms
COMPSCI 617 Computational Geometry
COMPSCI 690AA Approximation Algorithms
COMPSCI 613 Logic
COMPSCI 690J Advanced Cryptography
COMPSCI 690OP Optimization for Computer Science
COMPSCI 690Q Quantum Information Systems
COMPSCI 690T Coding Theory and Applications
COMPSCI 690RA Randomized Algorithms

If you choose to take only one theory core toward your degree, it must be either the 601 or 611. 

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 690W Advanced Wireless Network and Sensoring in IoT

    Any of these courses may be used to complete one, two or three systems core requirements. 

    Artificial Intelligence cores

    The AI core requirement requires that you take or have waived one of the following courses:

    COMPSCI 683 Artificial Intelligence 
    COMPSCI 689 Machine Learning


    Any of the following may be used to satisfy a second or third artificial intelligence core requirement:

    COMPSCI 603 Robotics
    COMPSCI 646 Information retrieval
    COMPSCI 650 Applied Information Theory
    COMPSCI 670 Computer Vision
    COMPSCI 674 Intelligent Visual Computing
    COMPSCI 682 Neural Networks:Modern Intro
    COMPSCI 683 Artificial Intelligence
    COMPSCI 687 Reinforcement learning
    COMPSCI 688 Graphical Models
    COMPSCI 689 Machine Learning
    COMPSCI 685 Advanced Natural Language Processing
    COMPSCI 690OP Optimization for Computer Science
    COMPSCI 690V Visual Analytics
    CMPSCI 686, aka 691E (No longer offered) Reasoning and acting under uncertainty
    CMPSCI 691V (No longer offered) Multi-Agent Systems

      If you choose to take only one AI core toward your degree, it must be either the 683 or 689. 

      Scheduling Core Course Toward the Portfolio

      The faculty encourages PhD students to get involved in research as soon as possible, and do not want coursework to delay the start of research. For that reason, it is suggested that you take at most one core course per semester. The  portfolio requirements are designed to reflect this recommendation.

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

      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 computer science.

      If a student wishes to pass out of a core requirement, please download the form and contact the one of the instructors of that course. Once the instructor signs off on the form it will be routed to the GPD for approval. If you are requesting a waiver of more than 1 core course, each instructor must be aware of this and sign off on both waiver requests. The GPD will then determine whether or not to accept that recommendation and the GPM will notify you of the decision.

      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.