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.

Core requirements depend on whether you're working toward a Masters degree or toward the Portfolio. Check the requirements pages for the appropriate degree to see what is needed. In general, you need to satisfy one or more requirements in each of the three areas. Most cores are satisfied by taking an appropriate class--indicated in parentheses below--and getting a high enough grade (B for the Masters degree and B+ for admission to PhD candidacy).

Theory core Requirement

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 core requirements.

COMPSCI 613 Advanced Logic in Computer Science
COMPSCI 690C Foundations Applied Cryptography
COMPSCI 690J Advanced Cryptography
COMPSCI 690OP Optimization in Computer Science
COMPSCI 690Q Quantum Information Systems
COMPSCI 690R Randomized Algorithms

Systems core requirement

Any one of the following classes may be used to complete the systems core requirement:

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 requirement

    The AI core requirement requires that you take or have waived COMPSCI 683 (Artificial Intelligence) 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 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 685 Advanced Natural Language Processing
    COMPSCI 687 Reinforcement Learning
    COMPSCI 688 Probabilistic Graphical Models
    COMPSCI 689 Machine Learning
    COMPSCI 690A Advanced Methods in HCI
    COMPSCI 690D Deep Learning; NLP
    COMPSCI 690OP Optimization in Computer Science


    Semi-required core requirement

    In addition to the three area requirements above, you must take or have waived three additional courses at the 600 level or above.  These courses must not be 701, 701Y, or courses in the range 691-699, 791-799, 891-899, unless they are specifically designated by the faculty as meeting this requirement.  The faculty may also designate individual courses in acceptable ranges as not meeting the requirement.

    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.)

    waiving a Core Requirement

    In some circumstances it may be possible to waive a core requirement on the basis of equivalent coursework at another institution, more advanced or comprehensive work in the same general area, etc.   Our intention is that you not spend time studying material that you have already mastered.  At the same time, we generally want our students to take at least one course in each area in our program, even if it is not on the area-specific lists above.

    If you believe it makes sense for you to have a core requirement waived, 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. If you received a waiver of a core requirement before Dec. 1, 2010 and you are switching to the newer requirements, you will need to have your waivers re-evaluated by all faculty involved.

    The GPD will then determine whether or not to accept that recommendation. (Such recommendations are rarely declined, though sometimes they are modified.)

    Note that waiving 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 waived one 3-credit core course, you still need to take 18 credits.