Uploaded by Amna Faisal

ATOC-Course-Outline-14112022-023436pm

advertisement
COURSE TITLE: Advanced Theory of Computation
CREDITS:
3
Course Objective
To gain an understanding of the mathematics which underlies the theory of computation. At
the end of the course, the student should be able to formalize mathematical models of
computations; use these formalisms to explore the inherent limitations of computations; and
describe some major current approaches to investigating feasible computation.
Rationale
The theory of computation is concerned with the theoretical limits of computability. Several
mathematical models of computation have been formulated independently and under any
such computational model, the existence of well-defined but unsolvable problems can be
formally shown. These topics form part of the core of the mathematical foundations of
computer science that will provide students and researchers with a sound theoretical view
of the most fundamental concepts of computation. Specifically, this course provides a
rigorous introduction to the theoretical foundations of computer science. It deals with a
number of interconnected topics and tries to answer the basic questions, "What is a
computer?", "What is an algorithm?", and "What is computable?". This course examines
important theorems and proofs, establishes a number of interesting assertions in order to
expose the techniques used in the area of theory of computation. Note that although this is
not a "mathematics" course, it does make significant use of mathematical structures,
abstractions, definitions, theorems, proofs, lemmas, corollaries, logical reasoning, inductive
proofs, and the like. If such concepts are difficult for you, you will find this course very
difficult but rewarding. I invite you to accept the challenge.
Course Outline
Automata theory, formal languages, Turing machines, computability theory and
reducibility, computational complexity, determinism, nondeterminism, time hierarchy,
space hierarchy, NP completeness, selected advanced topics.
STUDENT LEARNING OUTCOMES: Upon successful completion of this course students will
be able to





Define and describe formal models of computation, such as finite automata, pushdown
automata, and Turing machines;
Give examples of languages and computational problems appropriate for different models
of computation;
Create proofs for statements regarding formal models of computation;
Describe class-based resource usage models, including time and space complexity;
Apply NP-completeness concepts to create proofs regarding the computational complexity
of novel problems;

Use basic concepts and explain implications of modern complexity theoretic approaches to
advanced topics such as randomization, proof complexity, and quantum computing.
Books:
1. Michael Sipser, Introduction to the Theory of Computation, PWS Publishing,
Boston, 2012. 3rd Ed.
2. Mikhail J. Atallah and Mariana Blanton (Eds.), Algorithms and Theory of
Computation Handbook: General Concepts and Techniques, CRC Press, New York,
2009 (2nd Edition).
Other Supplementary:
1. Thomas Cormen, Charles Leiserson, Ronald Rivest, and Cliff Stein, Introduction
to Algorithms, McGraw Hill Publishing Company and MIT Press, 2009 (3rd
Edition).
2. Christos Papadimitriou, Computational Complexity, 1994, Addison-Wesley.
3. John Hopcroft and Jeffery Ullman, Introduction to Automata Theory, Languages,
and Computation, 1979, Addison-Wesley.
4. Tao Jiang, Ming Li, and Bala Ravikumar, Formal models and Computability, in
Handbook of Computer Science, CRC Press, 19
Week
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Lecture Plan
Class Introduction and Overview
Math Review
Finite Automata and Regular Languages
Context-Free Languages and Pushdown Automata
Turing Machines and the Church-Turing Thesis
Decidability
Catch-up and review
Reducibility
Time complexity, P, and NP
NP-completeness
Catch-up and review
Space complexity
Randomization
Interactive Proofs
Parallel Complexity
Quantum Computing
Reference
Chapter 0
Chapter 1
Chapter 2
Chapter 3
Chapter 4
Chapter 5
Sections 7.1-7.3
Sections 7.4-7.5
Chapter 8
Section 10.2
Section 10.4
Section 10.5
Handout
Download