click here to return to the home page, logo image
NCSC-3001 Theory of Computation (CM 310)

Contributing Scholar - Carl Sturtivant, University of Minnesota

 

3 Semester Credit Hours

 

Course Description

 

This course is an introduction to the core logical and mathematical foundations of Computer Science. Different theoretical models of computation (automata) are introduced, along with their relationships with realistic practical computation.

 

Specifically, this course introduces Finite Automata and their relationship with pattern matching and filters, Pushdown Automata and their relationship with grammars and parsing, and Turing Machines and their relationship with algorithms in general. Turing machines are then used to introduce the limitations of computing, specifically undecidability and NP-completeness of problems. The latter is shown of use in practical algorithm design situations.

 

Prerequisites

  • One year of college-level calculus
  • A lower division course in programming and elementary data structures
  • An undergraduate course in Discrete Mathematics covering sets, sequences, functions and relations, undirected and directed graphs, asymptotic notation for the running time of algorithms, (concept of proof, and techniques for constructing proofs (by contradiction, by induction).
  • General prerequisite: Students must have the knowledge resulting from appropriate prerequisite coursework in the curriculum for a BS degree in Computer Science from a regionally-accrediated institution in the United States or the equivalent from a foreign institution; performance level in this coursework should be equivalent to a cumulative undergraduate GPA of 2.9 or better on 4.0 scale.
     

 

Course Objectives

 

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

 

  • Describe the role of finite automata and regular expressions in computer science
  • Transform non-deterministic finite automata, deterministic finite automata and regular expressions into one another
  • Invent finite automata, Turing machines, or regular expressions to solve specific simple recognition problems
  • Use the pumping lemma for regular languages to show that some simple languages are not regular
  • Describe the role of contest-free grammars and pushdown automata in computer science
  • Invent context-free grammars to descibe simple context-free languages
  • Describe in English the language defined by a simple context-free grammar
  • Invent simple Pushdown Automata to solve simple context-free recognsition problems
  • Describe the role of Turing machines in computer science, and the meaning of decidability, undecidability and Turing recognizability
  • Invent simple reductions to show that given problems are undecidable or not Turing recognizable
  • Describe the role of the classes P and NP in computer science, and show that simple problems are in P or are in NP
  • Describe what it means for a problem to be NP-complete, both theoretically and in practice
  • Invent simple reductions to show that given problems are NP-complete

 

Course Topics

 

The following topics will be covered in the order given.

 

  • Introduction and Review of Needed Mathematics
  • Deterministic Finite Automata
  • Non-Deterministic Finite Automata
  • Regular Expressions
  • The Pumping Lemma for Regular Languages
  • Context-free Grammars
  • Pushdown Automata (PDA's)
  • The Pumping Lemma for Context-free Languages
  • Turing Machines
  • Multitape Turing Machines
  • Non-Deterministic Turing Machines
  •  Enumerators
  • Algorithms and Turing Machines
  • Decidability and the Halting Problem
  •  Proving Problems Undecidable (Part I)
  •  Proving Problems Undecidable (Part II)
  • The Post Correspondence Problem
  • Mapping Reducibility
  • The Runtime of an Algorithm and the Class P
  • Easily Verified Problems and the Class NP
  • NP-Completeness and the Cook-Levin Theorem
  • Proving Problems NP-Complete (Part I)
  • Proving Problems NP-Complete (Part II)
  • Proving Problems NP-Complete (Part III)

 

Technical Requirements:

 

There are no additional software or application requirements for this course. You will be required to have Windows Media Player to view the lectures. For the standard technical requirements, please go to the link below: http://www.waldenu.edu/c/Files/DocsGeneral/Getting_Started_Guide.pdf

 

 

Textbook

Required: Introduction to the Theory of Computation, Michael Sipser, 2006, 2nd ed., Thomson Course Technology, ISBN: 0-534-95097-3.

 

 

Disclaimer: The course syllabus may differ slightly from this. Course descriptions will be provided in your online course. Textbook information is provided only to give more information about the course.  Do Not use this information to purchase a textbook.  Up-to-date information will be provided when you register.



Google Custom Search
Walden University is accredited by The Higher Learning Commission and a member of the North Central Association, www.ncahlc.org; 312-263-0456. © Copyright 2007 Walden University; Telephone: 800-925-3368