Prior to admission, students must demonstrate basic computer science knowledge in each of the four categories below. Students with a B.S. in Computer Science, a B.S. in Computer Engineering, a B.S. in Software Engineering, or that have completed Michigan Tech's minor in computer science are expected to meet this requirement.
A student who partially meets or does not meet each of the following requirements may receive provisional admission. Your admission letter will identify the courses that must be successfully completed to provide the required background.
Programming Knowledge
Students must know a high-level language and be able to use it as a problem-solving tool, including design, coding, documentation, debugging, and testing of programs. Required knowledge includes data abstraction, list, stack, queue, and tree data structures, complexity-based algorithm and data structure choices, and recursion. Completion of CS 1131 Accelerated Introduction to Programming or CS 1142 Programming at the Hardware Software Interface meets this requirement.
Data Structures
Students must know fundamental concepts in data structures, including abstract data types (priority queues, dictionaries, and graphs) and their implementations (algorithm analysis, sorting, and text processing). Completion of CS 2321 Discrete Structures meets this requirement.
Discrete Mathematics
Students must know fundamental concepts in discrete structures that are used in computer science, including sets, trees, graphs, functions, relations, recurrences, proof techniques, logic, combinatorics, and probability. Completion of CS 2311 Discrete Mathematics meets this requirement.
Basic Calculus and Linear Algebra
Students are expected to know single-variable calculus and its application and linear algebra concepts such as systems of equations, vectors, matrices, orthogonality, subspaces, and the eigenvalue problem. Completion of MA1160/MA1161 Calculus I and MA2330 Introduction to Linear Algebra meet this requirement.