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.

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 Cores

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

  • Computation theory (COMPSCI 601)
  • Advanced algorithms (COMPSCI 611)

    It is not possible to pass the Theory core without satisfying this part of the core.

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

    • Computation Theory or Advanced Algorithms (COMPSCI 601 or 611)
    • Computational Geometry (COMPSCI 617)
    • Approximation Algorithms (COMPSCI 690AA)
    • Logic (COMPSCI 690LG)
    • Coding Theory and Applications (COMPSCI 690T)
    • Randomized Algorithms (COMPSCI 690RA)

    Systems Cores

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

    • Compiler techniques (COMPSCI 610)
    • Advanced software engineering: synthesis and development (COMPSCI 620)
    • Advanced software engineering: analysis and evaluation (COMPSCI 621)
    • Systems (COMPSCI 630)
    • Programming languages (COMPSCI 631)
    • Modern computer architecture (COMPSCI 635)
    • Database design and implementation (COMPSCI 645)
    • Advanced computer networking (COMPSCI 653)
    • Advanced Information Assurance (COMPSCI 660)
    • Distributed and Operating Systems (COMPSCI 677)
    • Performance Evaluation (COMPSCI 690PE)

      These courses may be used to complete one, two or (for the PhD) three systems core requirements. Other than any co- or prerequisites, there are no restrictions on which classes may be used to satisfy systems core requirements or the order in which they must be taken.

      Artificial Intelligence Cores

      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.

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

      • Robotics (COMPSCI 603)
      • Information retrieval (COMPSCI 646)
      • Applied Information Theory (COMPSCI 650)
      • Computer Vision (COMPSCI 670)
      • Neural Networks: A Modern Introduction (COMPSCI 682)
      • Reinforcement learning (COMPSCI 687)
      • Graphical Models (COMPSCI 688)
      • Intelligent Visual Computing (COMPSCI 690IV)
      • Advanced Natural Language Processing (COMPSCI 690N)
      • Visual Analytics (COMPSCI 690V)
      • (No longer offered) Reasoning and acting under uncertainty (CMPSCI 686, aka 691E)
      • (No longer offered) Multi-Agent Systems (CMPSCI 691V)

        If you choose to take only one AI core toward your degree, it must be either the 683 or 689-based core. If you choose to take more, one of them must be either the 683 or 689-based core and the others can be any of the courses listed above. You do not need to take them in any particular order, unless course prerequisites require that you do.

        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. If you received a waiver of a core requirement before Dec. 1, 2010 and you are switching to the 3, 2, 1 model, 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.)

        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.