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
- or CS 390 - Introduction to Theoretical Computer Science (CS 390 course materials)
- 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
- 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.