Computer science background requirement
The primary objective of the background knowledge requirement in the computer science graduate programs is to maintain the expectation of a minimal core body of knowledge with which all computer science graduate students at the University of Minnesota should be familiar. These concepts are considered prerequisites for many graduate-level classes and are mandatory for students to succeed in the program.
Core background concepts
- Machine Architecture and Organization. Covers basic hardware/software components of a computer system, including data representation, machine-level programs, instruction set architecture, processor organization, memory hierarchy, virtual memory, compiling, and linking.
- Theoretical Foundations. Must cover one of the following two bodies of knowledge:
- Algorithms and Data Structures. Analysis, data structures, and algorithms, e.g.: basic algorithm analysis (recurrences, asymptotic notation), basic data structures (lists, stacks, queues, heaps, hash tables, (balanced) binary search trees), basic algorithms (sorting, searching, graph traversal, shortest paths, minimum spanning trees).
- Formal Languages and Automata Theory. Logical/mathematical foundations of computer science. Specific topics include formal languages, their correspondence to machine models, lexical analysis, string matching, parsing, decidability, undecidability, limits of computability, and computational complexity.
- Operating Systems. Topics include processes/threads, process coordination, interprocess communication, asynchronous events, memory management/file systems.
- Programming & Software Development. Topics include: design and analysis of programs, software development tools and methods, debugging, I/0, state machines, exception handling, testing, coding standards, software lifecycle models, requirements analysis
Satisfying the background knowledge requirement
Background requirement courses can be fulfilled in different ways:
- A student may enroll in and pass the final examination for the appropriate UMN class with a grade of B+ or higher. Potential applicants can be admitted to the University of Minnesota as non-degree students in order to take these prerequisite courses.
- The relevant University of Minnesota courses are:
- CSCI 3041 - Introduction to Discrete Structures and Algorithms OR CSCI 4041 - Theoretical Foundations - Algorithms and Data Structures
- CSCI 4011 - Theoretical Foundations - Formal Languages and Automata Theory
- CSCI 3061 Introduction to Computer Systems OR (CSCI 2021 - Machine Architecture and Organization AND CSCI 4061 - Operating Systems)
- CSCI 2081 - Introduction to Software Development OR CSCI 3081 - Programming & Software Development
- The relevant University of Minnesota courses are:
- A student may pass a graduate course with a grade of B or higher for which an appropriate undergraduate course is a clearly defined prerequisite. For example, at the University of Minnesota, CSCI 5421 "Advanced Algorithms and Data Structures" has CSCI 4041 "Algorithms and Data Structures" as a prerequisite. Thus, getting a B in 5421 is evidence that a student has an adequate background in Algorithms and Data Structures. Students must check with the Director of Graduate Studies to verify that a specific graduate course demonstrates knowledge of a particular background area.
- A student may pass an appropriate undergraduate course with a grade of B+ or higher. The appropriate courses at the University of Minnesota are noted below. A student may take these courses anywhere as long as they are listed on the transcript from an accredited university.
- Graduate courses for which background undergraduate courses are substantial prerequisites:
CSCI 2021 or CSCI 3061 | CSCI 2081 or 3081 | CSCI 4011 | CSCI 3041 or 4041 | CSCI 3061 or CSCI 4061 |
---|---|---|---|---|
5204 | 5106 | 5106 | 5403 | 5103 |
5161 | 5161 | 5421 | 5105 | |
5801 | 5461 | 5211 | ||
5471 | ||||
5481 | ||||
5523 |
Questions?
Graduate Program Coordinator
Current students: [email protected]
Prospective students: [email protected]