• Gold M - Skip to Main Content.
  • University of Minnesota
  • Search U of M
  • CSE Home
  • IT Home
  • Directories
  • One Stop
  • myU
Computer Science & Engineering
Prospective Students
Current Students
Alumni
Industry

Computer Science & Engineering

  • Department Info
    • About Us
    • Contact Info
    • Department News
    • Giving
  •  
  • Admissions
    • Undergraduate
    • Graduate
  •  
  • Academics
    • Undergraduate
    • Graduate
  •  
  • People
    • Faculty
    • Graduate Students
  •  
  • Research
    • Research Areas
    • Tech Reports
    • Related Centers
  •  
  • Resources
    • Forms
    • Systems Help
    • Faculty Portal locked external link
    • Computing Facilities
    • Department Wiki locked external link
    • Employment
  •  
  • Site Map
  •  
  •  
Institute of Technology Logo
Home > Academics > Undergraduate > Required Courses > CSci 4011

4011 Formal Language and Automata Theory

Overall Course Description

4011 is a required class that CSci majors should take in their junior year. In the class students learn theoretical foundations of computer languages and computability. Students will encounter the finite state machine, pushdown automaton, and Turing machine models of computation, and will also learn about language classes such as the regular and context-free languages classes. The issues of decidability, undecidability, and the limits of computability will be studied, and the techniques of reductions and diagonalization as a means for establishing such properties for given languages will be explored. Further topics include time and space complexity, and the notion of NP-completeness.

Catalog Description

Logical and mathematical foundations of computer science. Formal languages and their correspondence to machine models. Relevance to practical issues such as lexical analysis, string matching and parsing. Decidability, undecidability, and the limits of computability. Computational complexity.

Course Outline

Weeks Topics
1 - 3 Finite State Machines and regular languages.
4 - 5 Context-free languages and pushdown automata.
6 - 7 Turing machines and the definition of computability.
8 - 10 Decidability, undecidability, and the limits of computation; using reducibility and diagonalization arguments.
11 - 14 Time complexity and NP-completeness.

Optional or additional topics include the Recursion Theorem, the undecidability of number theory, and rudimentary descriptive complexity (Chapter 6); and space complexity (Chapter 8).

Why This Class is Important and its Role in the Curriculum

For most students this is their only look at computability, which is a fundamental and important concept in computer science. Also, many of the concepts used extensively in 4011, such as Turing machines, finite automata, or context-free grammars, occur heavily in the design and implementation of programming languages, as well as in other areas of computer science.

Most students will take 4011 in their junior year.

Prerequisites and Rationale

CSci 1902 (Structure of computer programming II) and CSci 2011 (Discrete Structures of Computer Science). From 1902 students will need some exposure to structured programming, elementary data structures, and recursion before studying computability and language foundations. From 2011 students need experience with proofs involving mathematical concepts they will use in computability.

Classes Having 4011 as a Prerequisite and Rationale

4011 is a prerequisite for 5106 (Programming Languages). A good number of topics in 5106 rely on concepts from 4011.

Class Format

3 hours of lecture + 1 hour of recitation per week.

Probable Textbook

Michael Sipser “Introduction to the Theory of Computation” 2nd Edition Thomson Publishing, 2006.

Outcomes

Upon successful completion of the class, students should be able to:

  1. Design NFA and DFA, and provide regular expressions for particular languages;
  2. Provide context-free grammars and argue their correctness;
  3. Show that given languages are decidable, undecidable, or non-computable by using reductions or diagonalization arguments;
  4. Show that given problems are in P, NP, or are NP-complete.

Related Links

  • CSE Undergraduate Portal
  • Undergraduate Advising Office Hours
  • UMN Academics Page
  • CS Undergraduate Catalog

Advising Related Sites

  • CLA Lower Division advising
  • IT Lower Division advising
  • CLA Upper Division Application Requirements
  • IT Upper Division Application Requirements
  • Transferring credit
  • CLA Career and Community Learning Center
  • IT Career Services
  • Job Resource Center (AfterCollege)
  • University Counseling and Consulting Services
  • CSE Graduate Admissions

Other Programs

  • Info. Technology Infrastructure BAS
  • IT Minor
  • CS Minor
  • CCE Networking Courses

Other Opportunities

  • Student Organizations
  • The UROP program
  • Research Opportunities
  • Learning Abroad Center
  • Other IT Student Groups

Other Sites of Interest

  • Transfer Course Equivalencies
  • IT Labs Home Page
  • Open Your IT Labs Account
  • Computing Degrees and Careers
  • Free Computer Books

 

  • ©2006 - 2009 Regents of the University of Minnesota. All rights reserved.
  • Privacy
  • Contact U of M
  • Contact CSE
  • CSE Employment
  • Site Map
  • The University of Minnesota is an equal opportunity educator and employer.
  • Last modified on August 15, 2008