CS 512 Advanced Theory of Computation
Department of Computer Science, IIU

Spring 2011

 

 

The fundamental beliefs underlying the Honor Code of my classroom are that my student has the right to live in an academic environment that is free from the injustices caused by any form of intellectual dishonesty, and that the honesty and integrity of all members of my classroom contribute to its pursuit for Truth.

 

 

Course Structure

Lectures = 1 [HEC Recommended 3]        Labs = 0        Credit hours = 3

 

Prerequisites

Graduate Standing and Consent of instructor. Previous coursework involving proofs and some programming experience are needed.

 

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.

 

Class Time

Mondays, 4:30 PM - 7:30 PM

 

Texts

Our Primary Source

Michael Sipser, Introduction to the Theory of Computation, PWS Publishing, Boston, 1997.

Our Secondary Source

John E. Hopcroft and Jeffrey D. Ullman, Introduction to Automata Theory, Languages, and Computation, Addison-Wesley, 1979.

John E. Hopcroft, Rajeev Motwani, and Jeffrey D. Ullman, Introduction to Automata Theory, Languages, and Computation, Addison-Wesley, 2006.

Mikhail J. Atallah and Mariana Blanton (Eds.), Algorithms and Theory of Computation Handbook: General Concepts and Techniques, CRC Press, New York, 2009 (2nd Edition).

Thomas Cormen,  Charles Leiserson,  Ronald Rivest, and  Cliff Stein,  Introduction to Algorithms, McGraw Hill Publishing Company and MIT Press, 2009 (3rd Edition).

HEC Recommended Text Books/Reference Books

Michael Sipser, Introduction to the Theory of Computation, PWS Publishing, Boston, 1997.

Christos Papadimitriou, Computational Complexity, 1994, Addison-Wesley.

John Hopcroft and Jeffery Ullman, Introduction to Automata Theory, Languages, and Computation,  1979, Addison-Wesley.

Tao Jiang, Ming Li, and Bala Ravikumar, Formal models and Computability, in Handbook of Computer Science, CRC Press, 1996.

T. H. Cormen, et al., Introduction to Algorithms, MIT Press and McGraw-Hill Book Co., 1990.

Peter Linz, An Introduction to Formal Languages and Automata, Jones and Bartlett Publishers, 2006.

 

Ethics

The Honor Code will be strictly enforced in the classroom. It is a violation to represent joint work as your own or to let others use your work; always acknowledge any assistance you received in preparing work that bears your name. You are expected to work independently unless explicitly permitted to collaborate on a particular assignment. It is not a violation to discuss approaches to problems with others; however, it is a violation to use wording or expressions in your assignments that have been written by others without acknowledging the source.

 

Instructions/Lectures

 

Exams

Midterm April 4, 2011 4:30 PM
Final June 6, 2001 Evening Session

 

Points Distribution

Quizzes

15%
Midterm 25%
Final 60%

 

Grades

 

A+ 3
A 2
B+ 1
B 1
C+ 3
C 2
D+ 1
D 0
F 4

 

CS 512 Advanced Theory of Computation Spring 2011

 

You can do it if you try!

If you wish to succeed in this course
If you wish to do better
If you wish to fail in this course

 


 
Back