Faculty Recruiting Support CICS

Core Requirements and Additional Computer Science Courses

Core Courses

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. 

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

CICS course offering plan can be found here https://www.cics.umass.edu/content/course-offering-plan

Note:  Not all core courses are currently available online; new online courses are being added each semester. 

Theory cores

The following courses can be used to complete the Theory core requirement.

  • Formal Language Theory (COMPSCI 501)
  • Logic in Computer Science (COMPSCI 513)
  • Combinatorics (Math 513)*
  • Algorithms for Data Science (COMPSCI 514)
  • Combinatorics and Graph Theory (COMPSCI 575)
  • Quantum Cryptography and Communication (COMPSCI 590AB)
  • Quantum Information Systems (COMPSCI 590Q)
  • Algorithmic Fairness and Strategic Behavior (COMPSCI 515)
  • Computation theory (COMPSCI 601)
  • Advanced Algorithms (COMPSCI 611)
  • Logic (COMPSCI 613, or 513, but not both)
  • Randomized Algorithms (COMPSCI 614)
  • Computational Geometry (COMPSCI 617)
  • Quantum Information Systems (COMPSCI 648, or 590Q, but not both)
  • Optimization for Computer Science (COMPSCI 651)
  • Approximation Algorithms (COMPSCI 690AA)
  • Foundations Applied Cryptography (COMPSCI 690C)
  • Advanced Cryptography (COMPSCI 690J)
  • Machine Learning Theory (COMPSCI 690M)*
  • Coding Theory and Applications (COMPSCI 690T)

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

    Systems cores

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

    • Embedded Computing Systems (COMPSCI 503)
    • Theory & Practice Software Engineering (COMPSCI 520)
    • Introduction to Affective Computing (COMPSCI 527)
    • Mobile and Ubiquitous Computing (COMPSCI 528)
    • Software Engineering Project Management (COMPSCI 529)
    • Systems for Data Science (COMPSCI 532)
    • Computer Architecture (COMPSCI 535)
    • Introduction to Simulation (COMPSCI 550)
    • Introduction to Computer and Network Security (COMPSCI 560)
    • Systems Defense and Test (COMPSCI 561)
    • Cyber Effects (COMPSCI 564)
    • Advanced Digital Forensics (COMPSCI 565)
    • Operating Systems (COMPSCI 577)
    • Cloud Computing (COMPSCI 578)
    • Mobile and Wireless Networks (COMPSCI 590AE)
    • Detecting Interference in Networks (COMPSCI 590B** or 690B, but not both)
    • Human Computer Interaction (COMPSCI 590C)
    • Digital Forensics (COMPSCI 590F)
    • Compiler Techniques (COMPSCI 610)
    • Advanced Software Engineering: Synthesis and Development (COMPSCI 520** or 620, but not both)
    • Advanced Software Engineering: Analysis and Evaluation (COMPSCI 521** or 621, but not both)
    • Advanced Methods in HCI (COMPSCI 625)
    • Systems (COMPSCI 630)
    • Programming Languages (COMPSCI 631)
    • Modern Computer Architecture (COMPSCI 535** or 635, but not both)
    • Database Design and Implementation (COMPSCI 645)
    • Advanced Computer Networking (COMPSCI 653)
    • Advance Wireless Networking & Sensing; IoT (COMPSCI 654)
    • Performance Evaluation (COMPSCI 655)
    • Advanced Information Assurance (COMPSCI 660)
    • Secure Distributed Systems (COMPSCI 661)
    • Distributed and Operating Systems (COMPSCI 677)
    • Systems for Deep Learning (COMPSCI 690AB)
    • Detecting Interference (COMPSCI 690B)
    • Security for Large-Scale Systems (COMPSCI 690G)

      These courses may be used to complete one or two 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.

      *Math 513 is cross-listed with COMPSCI 575 and qualifies as a theory core

      Artificial Intelligence Cores

      Any of the following may be used to satisfy the AI core requirement:

      • Health Informatics and Data Science (COMPSCI 524) 
      • Applied Information Retrieval (COMPSCI 546)
      • Introduction to Natural Language Processing (COMPSCI 585)
      • Data Visualization and Exploration (COMPSCI 571)
      • Machine Learning (COMPSCI 589** or COMPSCI 689)
      • Intelligent Visual Computing (COMPSCI 574 or 674, but not both)
      • Game Programming (COMPSCI 576)
      • Educational Data Mining and Learner Analytics (COMPSCI 590ED)
      • Making Predictions (COMPSCI 590L)
      • Applied Numerical Optimization (COMPSCI 590OP)
      • Robotics (COMPSCI 603)
      • Information Retrieval (COMPSCI 646)
      • Applied Information Theory (COMPSCI 650)
      • Optimization for Computer Science (COMPSCI 651)*
      • Computer Vision (COMPSCI 670)
      • Intelligent Visual Computing (COMPSCI 674)
      • Neural Networks: Modern Inro (COMPSCI 682)
      • Artificial Intelligence (COMPSCI 683)
      • Advanced Natural Language Processing (COMPSCI 685)
      • Reinforcement Learning (COMPSCI 687)
      • Probabalistic Graphical Models (COMPSCI 688)
      • Machine learning (COMPSCI 689)
      • Deep Learning/Natural Language Processing (COMPSCI 690D)
      • Machine Learning Theory (COMPSCI 690M)*
      • Deep Generative Models (COMPSCI 690L)
      • Computing for Human Movement Analysis (COMPSCI 690R)
      • Computational Biology and Bioinformatics (COMPSCI 690U)
      • Visual Analytics (COMPSCI 690V)

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

      * This course may only satisfy one area/core requirement.

      500-level courses do not count toward MS/PhD core requirements. Students who potentially could apply to the UMass PhD program should follow the MS/PhD core/course requirements. 

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

      If you believe you should pass out of a core requirement, please download the Waiver of Core Requirements Form and contact the appropriate professor. The instructor will notify the Master's Program Director 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 Master's Program Director will then determine whether or not to accept that recommendation. (Such recommendations are rarely declined.)

      Note that passing out of a core course 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.

      Additional Courses in Computer Science 

      The following courses may be applied toward the MS degree as non-cores.

      • Ethical Considerations in Computing (COMPSCI 508)
      • Fixing Social Media (COMPSCI 697M)