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 (UMN undergraduate course options covering this topic: CSCI 2021 or CSCI 3061) - 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 (UMN undergraduate course options covering this topic: CSCI 3041 or CSCI 4041) -  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 (UMN undergraduate course options covering this topic: CSCI 4011) -  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 (UMN undergraduate course options: CSCI 3061 or CSCI 4061) - Topics include processes/threads, process coordination, interprocess communication, asynchronous events, memory management/file systems.
  • Programming & Software Development (UMN undergraduate course options covering this topic: CSCI 2081 or CSCI 3081W or CSCI 4801) -  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 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 with a letter grade or score (not taken pass/fail).
    • Graduate courses for which background undergraduate courses are substantial prerequisites:

Machine Architecture and Organization

CSCI 2021 or CSCI 3061

Programming & Software Development

CSCI 2081 or 3081 or CSCI 4801

Formal Languages and Automata Theory

CSCI 4011

Algorithms and Data Structures

CSCI 3041 or 4041

Operating Systems

CSCI 3061 or CSCI 4061

52045106510654035103
 5161516154215105
 5801 54615211
   5471 
   5481 
   5523 

Questions?

Goldy Gopher on a gold background

Graduate Program Coordinator

Current students: [email protected]
Prospective students: [email protected]