Graduate Admissions Prerequisites

Most graduate courses in Computer Science include expectations that those taking them have a technical background in Computer Science similar to what an undergraduate computer science major would have. This background includes the following:

  • Significant experience programming in an object-oriented programming language such as C++ or Java, including the design and implementation of several programs of intermediate length and complexity (several hundred or thousand lines of code and comments), similar to what would be achieved in the following courses:
    • CS 171: Programming I
    • CS 172: Programming II
    • CS 265: Advanced Programming Techniques
    • CS 350: Software Design
  • A working familiarity with algorithms, data structures, and the mathematical foundations of computer science, similar to what would be mastered in the following courses:
    • MATH 221: Discrete Mathematics
    • CS 260: Data Structures
  • A solid mathematics background:
    • Calculus: MATH 121, 122, 123
    • Linear Algebra: MATH 201; or MATH 261
  • A working familiarity with computer architecture and machine language:
    • CS 281: Computer Architecture I
    • CS 283: Systems Programming
  • At least two advanced undergraduate courses in computer science, such as:
    • CS 361: Concurrent Programming
    • CS 380: Introduction to Artificial Intelligence
    • CS 440: Compiler Theory
    • CS 460: Theory of Algorithms
    • CS 461: Database Systems

Prospective students who are missing a substantial part of the expected background should defer applying until they have acquired the appropriate background. Students who meet all but a few of the above expectations may be provisionally admitted and required to take one or both of the following pre-core courses and receive a grade of B or better:

  • CS 520: Computer Science Foundations
  • CS 571: Prog Tools and Environments

These pre-core courses are open only to those students who are required to take them by the Graduate Advisor. They may be counted as some of the 15 courses needed for the MS CS. Each counts as a “category 6” course in the degree requirements. A maximum of three category 6 courses may be counted towards satisfying MS CS degree requirements.