| • Prerequisite |
| |
Grade of C- or better in CSC 226 Discrete Mathematics.
|
| • Course Objectives |
| |
Upon successful completion of this course, a student will be able to...
- Automata Theory:
- Develop skill at stating and proving mathematical statements about formal models of computation.
- Define formal languages and explain how they can be generated by different automata.
- Synthesize finite and pushdown automata with specific properties.
- Convert among multiple representations of finite and pushdown automata.
- Prove particular problems cannot be solved by finite or pushdown automata using the Pumping Lemma or the closure properties of regular and/or context-free languages.
- Computability Theory:
- Define Turing machines and their variants as models of computation.
- Define computable problems in terms of Turing machines.
- Use the relationship between recognizability and decidability to determine decidability properties of problems.
- Prove undecidability using diagonalization and reducibility methods.
- Computational Complexity Theory:
- Define, and explain the significance of, the "P = NP?" question and NP-completeness.
- Define deterministic and nondeterministic computation time and space, and explain the relationships among them.
- Describe concrete examples of NP-complete problems from different fields.
|
| • Course Requirements |
| |
Weekly homework problem sets worth 30% of the grade, two midterm exams worth 20% each, final exam worth 20-25% (to be decided), remainder of grade based on in-class excercises.
|
| • Textbook |
| |
Author: Sipser, Title: Introduction to the Theory of Computation, 2nd edition, copyright 2006, Thompson. ISBN: 978-0-534-95097-2
|
| • Computer and Internet Requirements |
| |
NCSU and Engineering Online have recommended minimum specifications for computers. For details, click here.
|
| • Instructor |
| |
Arpan Charkraborty
Computer Science
Engineering Building II(Eb2)
NCSU Campus
Raleigh, NC 27695
|
Email: achakra@ncsu.edu
|
| |
|