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 ():
- 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 () - 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 381 - Introduction to Discrete Structures
- or CS 390 - Introduction to Theoretical Computer Science ()
- 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 section of the Undergraduate Catalog for more information on those courses.
Students with a significant number of prerequisites may opt to defer their acceptance to the MS program and first complete some of the required courses at a local community college or university. US students can consult 泭to determine which courses would be counted as equivalent.
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 251, 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
- not hard prerequisites, but it would be good to review the materials in these courses before taking CS 500:
- 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.