CSCI 340
Computational Models
Coordinator: nazli hardy
Credits: 4.0
Description
Introduction to theory of computation. Topics include finite state automata, regular languages and grammars, pushdown automata, context-free languages and grammars, Turing machines, limits on algorithmic computation. Offered in spring.
Prerequisites
C- or higher in CSCI 140 and CSCI 162.
Sample Textbooks
Course Outcomes
At the end of the course, a successful student will be able to
- Demonstrate an understanding of various proof techniques. In particular, be able to demonstrate the ability to carry out proofs by induction for simple problems.
- Define, interpret, and construct deterministic finite-state automata and non-deterministic finite-state automata; define, interpret, and construct regular expressions; apply these formalisms to practical programming problems.
- Define, interpret, and construct deterministic pushdown automata and non-deterministic pushdown automata; apply these formalisms to practical programming problems.
- Understand the concept of Turing machines and their applications to computability.
- Explain the concepts of computable functions, the Universal Machine, the decision problem, and the difference between decidable and undecidable problems.
Major Topics Covered
- Formal Languages
- Alphabets and strings
- Operations on strings
- Languages
- Operations on languages
- Formal Grammars
- Phrase structure grammars
- Types of grammars and languages
- Regular
- Context-free
- Non-context-free
- Relationship between grammar and language types
- Finite State Automata (FSA)
- Deterministic Finite State Automata (DFSA)
- Nondeterministic Finite State Automata (NFSA)
- Equivalent automata
- Equivalence of NFSA and DFSA
- Finite State Languages (FSL)
- Equivalence of FSL and regular languages
- Applications
- Properties of Regular Languages
- Regular expressions (RE)
- Equivalence of RE and FSA
- Determining whether or not languages are regular
- Applications
- Pushdown Automata (PDA)
- Deterministic Pushdown Automata (DPDA)
- Nondeterministic Pushdown Automata (NPDA)
- Non-equivalence of NPDA and DPDA
- Equivalence of NPDA and context-free languages
- Applications
- Context-Free Languages (CFL)
- Relationship of CFL to regular languages
- Relationship of nondeterministic CFL to deterministic CFL
- Determining whether or not languages are context-free
- Applications
- Parsing
- Top-Down Parsing
- Bottom-Up Parsing
- Applications
- Turing Machines (TM)
- Deterministic Turing Machine (DTM)
- Nondeterministic Turing Machine (NTM)
- Equivalence of DTM and NTM
- TM to recognize languages
- TM to evaluate functions
- I. Non-computability
- Church's Thesis
- The Halting Problem
- Unsolvable Problems About Turing Machines
- Unsolvable Problems About Grammars
- Computational Complexity
- Time Complexity
- Space Complexity
- The Classes P and NP
Sample Laboratory Projects
Lab1:
http://www.cs.millersville.edu/~chaudhary/cs340/labs/2010lab1/index.htm
Lab2:
http://www.cs.millersville.edu/~chaudhary/cs340/labs/2010lab2/index.htm
Lab3:
http://www.cs.millersville.edu/~chaudhary/cs340/labs/2010lab3/index.htm
Lab4:
http://www.cs.millersville.edu/~chaudhary/cs340/labs/2010lab4/index.htm
Lab5:
http://www.cs.millersville.edu/~chaudhary/cs340/labs/2010lab5/index.htm
Lab6:
http://www.cs.millersville.edu/~chaudhary/cs340/labs/2010lab6/index.htm
Lab7:(SQL)
http://www.cs.millersville.edu/~chaudhary/cs340/labs/2010lab7/index.htm