Academic Prerequisites


The graduate courses assume a solid general background in all areas of computer science and in mathematics and the student must obtain this background before taking classes towards graduate credit. Many students will be missing some of this background and it is expected that they will make up any deficiencies in their first semester in the program.

This background knowledge is characterized below in terms of the courses offered by the department. This does not imply that this background must be acquired through these courses taken either at UNM or elsewhere; a student may fulfill the prerequisites through self-study, industrial experience, or by auditing the recommended courses.

The department does not enforce strict prerequisites (with the exception of four senior-level classes, for which see below), but makes it the student's own responsibility to be prepared for graduate classes. Each student should consult with the department's graduate advisor to assess potential weaknesses and establish a program of study. The required background is essentially equivalent to the core undergraduate curriculum and encompasses the material taught in the following computer science and mathematics classes: CS 152, CS 261, CS 251, CS 257, CS 341, CS 351, CS 361, CS 451, CS 460, CS 481, Math 162, Math 163, Math 314, and Math 345.

CS 451 and CS 481 are explicitly required; that is, a student must either have satisfactorily completed equivalent courses at another institution (equivalence to be established by the graduate advisor) or obtain credit with a grade of B or better in these courses at UNM (by taking the classes). In exceptional cases, where there is evidence that the material was learned in a non-academic setting, one or more of these courses may be waived by the graduate advisor.

CS 451, CS 460, and 481 are not eligible for graduate credit within the master's degree program.

CS 460 is also required. The same rules apply to this course as apply to CS 451, CS 461, and CS 481, except that the material of this course is frequently obtained in a non-academic setting, mostly on-the-job experience.

Additionally, the student must have experience with large-scale imperative programming, comparable to the material in CS 351. Students without equivalent experience will be required to meet this requirement as part of their master's degree program, either through a master's thesis (CS599) with a significant programming component, through courses where the student personally writes a large amount of code, or through a project associated with a research assistantship or outside employment.

Lastly, the student must have sufficient mathematical maturity to handle the mathematical abstraction of the common core course in theory (CS 500). This background can be obtained in a number of ways—many students will have this maturity from mathematics courses they will have taken previously. The department offers a senior-level course, CS 401, that develops the student's abstract reasoning skills. Students without background preparation in abstract reasoning are encouraged (or often required) to take this course. CS 401 is not eligible for graduate credit.