Master's Prerequisites

2nd BS vs MS

If you have no computer science and/or limited math background, you might want to consider a 2nd BS in Computer Science instead of a MS.

Prerequisite Overview

Students entering the MS Program must have a Bachelors degree from an accredited college or university.

In addition, an applicant should have a strong background in programming (C++ or Java), Data Structures, Computer Organization, Operating Systems and Theoretical Computer Science. Because many of the Computer Science courses involve the use of mathematics, applicants are also expected to have a good background in Calculus, Linear Algebra, Discrete Mathematics and Probability & Statistics.

Students who have deficiencies in these areas can enter the program as provisional students and make up their deficiencies by completing undergraduate courses as prerequisites. Note that students who are have not completed their undergraduate prerequisites may not be eligible for some graduate assistantships.

The full list of suggested prerequisites is below (course descriptions):

  • CS 151 - Introduction to Programming with Java
  • CS 170 - Introduction to Computer Architecture I
  • CS 251 - Programming with Java
    • CS 252 - Introduction to Unix for Programmers (CS 252 course materials) - not required, but suggested if no prior Unix experience
  • CS 270 - Introduction to Computer Architecture II
  • CS 350 - Introduction to Software Engineering - only for students in the ICT concentration
  • CS 361 - Data Structures & Algorithms (CS 361 course materials)
  • CS 381 - Introduction to Discrete Structures
  • CS 471 - Operating Systems - only for students in the general CS program (not ICT)

In addition, if you do not have a background in Math, you may need the following Math courses:

  • MATH 211 Calculus I
  • MATH 212 Calculus II
  • MATH 316 Linear Algebra
  • STAT 330 Probability and Statistics

See the Mathematical Sciences section of the Undergraduate Catalog for more information on those courses.

Satisfying Prerequisites

Students admitted provisionally must satisfy all the prerequisite requirements. There are a number of ways to satisfy prerequisites:

  • Submit a request for a waiver (because of previous training)
  • Take the course and make at least a 'B'
  • Challenge the course - talk to the instructor of the course for requirements, must do at least 'B' level work. The instructor must email the GPD with the results of the challenge.

Special cases:

  • CS 361 and CS 381 can be satisfied by taking CS 500.
  • CS 471 can be satisfied by taking CS 571.

Prerequisite Chains

Note that you may receive a test/prerequisite error when trying to register for some undergraduate courses. In this case, email the GPD with your UIN, the CRN of the courses you're trying to register for, and the exact error that you received.

  • CS 500 (Foundations of Computing): CS 250, Math 211
    • not hard prerequisites, but it would be good to review the materials in these courses before taking CS 500:
      • CS 361 Data Structures & Algorithms
      • CS 381 Introduction to Discrete Structures
      • CS 390 Introduction to Theoretical Computer Science
  • CS 600 (Algorithms): CS 361, CS 381 / or CS 500
  • CS 665 (Architecture): CS 270


Many undergraduate CS courses must be taken in a specific order and may have additional prerequisites of their own. See the CS undergraduate requirements for more information.