University of Massachusetts - Computer Science
 
 

Core Requirements

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 requirement 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

The theory core includes two areas:

  1. Computation theory (CMPSCI 601)
  2. Advanced algorithms (CMPSCI 611)

If you choose to take one theory core (MS Students), you may take either.  If you need to take two (PhD and Ms/PhD Students), you must satisfy them both. You do not need to take them in any particular order, unless course prerequisites require that you do.

Systems core

There are three groups of Systems cores:

Group 1
  • 1a. Compiler techniques (CMPSCI 610)
  • 1b. Modern computer architecture (CMPSCI 635)

Group 2
  • 2a. Database design and implementation (CMPSCI 645)
  • 2b. Advanced computer networking (CMPSCI 653)
  • 2c. Operating systems (CMPSCI 677)

Group 3
  • 3a. Advanced software engineering: synthesis and development (CMPSCI 620)
  • 3b. Advanced software engineering: analysis and evaluation (CMPSCI 621)
  • 3c. Programming languages (CMPSCI 630, aka 691F)

If you are choosing more than one systems core requirement (PhD,Ms/PhD, Ms students), they must be drawn from different groups.

Artificial Intelligence core

The AI core requirement requires that you take or have waived CMPSCI 683 (Artificial Intelligence).  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 AI core requirement:

  1. Robotics (CMPSCI 603)
  2. Information retrieval (CMPSCI 646)
  3. Reasoning and acting under uncertainty (CMPSCI 686, aka 691E)
  4. Reinforcement learning (CMPSCI 687)
  5. Machine learning: pattern classification (CMPSCI 689)

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

For students admitted Fall 2005 or earlier

The core requirements were slightly different prior to Fall 2005.  As a result, students admitted in Fall 2005 or earlier may use either the current requirements or the ones that were in effect at the time they were admitted.  Note that students may not mix and match between the requirements, but must one one or the other.

The primary difference is the selection of systems courses that can satisfy requirements and and how they are grouped. In particular, CMPSCI 646 (Information Retrieval) was then considered a systems core rather than the AI core it is now. Students were still required to take systems courses from 2 or 3 groups, depending on whether they were taking 2 or 3 core courses, though the groups were different.

Systems core requirement groups: 
(group i) Hardware: CMPSCI 635 
(group ii) Software: CMPSCI 610, 620, 621, 630, 645, 646, 653, 677
(group iii) Hardware/Software Links: CMPSCI 610, 677

Theory core requirements (identical to current requirements): CMPSCI 601 and 611

AI core requirements: CMPSCI 683 is a required core in both the M.S. and the Ph.D. curricula. Other AI core courses that can satisfy a core include: CMPSCI 603, 686, 687, and 689 (does not include 646 which is now in the AI core).


Scheduling Core Courses 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 course 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 course, please download the form and contact the appropriate professor. The instructor will notify the GPD of his or her recommendation.

The GPD 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.