CS 475 - Computation Theory: Syllabus

Course Title

CS 475 - Computation Theory

Course Description

Introduces computational formalisms including: Automata, Lambda Calculus, Turning Machines, Recursive Functions, and emerging models. Explores the relation of formal languages and computation. Studies theoretical and pragmatic limits on computation including halting, NP-Completeness, P-Space, and Reducibility.

Prerequisite Courses

CS 324 and CS 390

Course Overview

This course focuses on nature of computation with the primary objective of understanding "what it means to be effectively calculable". Various formal models of computation are introduced throughout the course with the objective of understanding the computational capabilities and limitations of each model. The relation among these computational models and formal languages is also examined throughout this course. Finally, the course also examines how computation theory informs computing practice in the "real-world".

Course Outcomes

Upon completion of this course, learners should be able to:

  1. Explain the concept of formal language, as used in theoretical computer science.
  2. Using the Chomsky Hierarchy, compare the following grammars and their resulting languages: regular, context-free, context-sensitive, and recursively enumerable with respect to their definitions, properties, expressiveness, and limitations.
  3. Explain regular expressions and their resulting language by comparing them with the grammars and languages in the Chomsky Hierarchy.
  4. Create and reason with examples that demonstrate the use of regular expressions and regular, context-free, context-sensitive, recursive, and recursively enumerable grammars and languages.
  5. Compare the definitions, properties, expressiveness, and limitations of the abstract machines: finite state automaton, pushdown automaton, linear-bounded automaton, and Turing machine including their deterministic and nondeterministic representations.
  6. Compare the definitions, properties, expressiveness, and limitations of the computation models: Turing Machines, Lambda Calculus, Partial Recursive Functions, and Formal Logic.
  7. Create and reason with examples that demonstrate the use of finite state, pushdown, linear-bounded, Turing Machines, Lambda Calculus, Recursive Functions, and Formal Logic to solve common computational problems.
  8. Define and explain the significance of P, NP, NP-complete complexity classes including the significance of tractability and P-Space
  9. Explain the Church-Turing Thesis, Cook-Levine Theorem, and Rice’s theorem.
  10. Explain the Halting Problem and reducibility to it including decidability.

Course Materials

Required Texts

Sipser, M., (2013). Introduction to the theory of computation (3rd ed.). Boston, MA: Cengage Learning.

CC&IS Faculty developed Faculty Notes (available by Topic in the Regis Worldclass online shell).

Technology Tools

  1. A PC-compatible computer system running a version of the Windows operating system with administrator rights to install new software. (Programming assignments can also be completed on a Mac OS computer.)
  2. NetBeans with Java Integrated Development Environment (8.2).
  3. http://www.regis.edu/Academics/Learning-Management-System/System-Requirements.aspx

Pre-Assignment

Sign on to Regis WorldClass and become familiar with the course shell navigation. The online content for CS475 is use in both classroom and online versions of this course. Complete the Course Overview and Topic 1 Reading Assignments.

Course Assignments and Activities

Specific due dates for classroom sections of this course will be assigned by the faculty, but generally adhere to the following schedule.

Weekly
Format*
Topics Readings** Assessed Assignments***
15 8   R: Online Faculty Notes, S: Sipser  (% course grade)
1 1 1: Foundations
2: Formal Languages
3: Finite State Automata &
    Regular Languages
R: Topic 1, , S: Chpt. 0
S: Sec. 0.2, R: Topic 2 
S: Chpt. 1, R: Topic 3
Topic 1 (assessed exams only)
Topic 2 (assessed exams only)

Participation (0.5%)
2  1  - continued - Topic 3 Assignment (9%)
Participation (0.5%)
3 2 4: Pushdown Automata &
    Context-Free Langauges
S: Chpt. 2 (pp. 101-135), R: Topic 4a Participation (0.5 %)
4 2   Determinisitic PDAs S: Chpt. 2 (pp. 135 - 162), R: Topic 4b Topic 4 Assignment (9%)
Participation (0.5%)
5 3 5: Turing Machines & Recursively
     Enumerable Languages      
S: Chpt. 3, R: Topic 5 Participation (0.5%)
6 3 6: Linear Bounded Automata &
     Context-Sensitive
     Languages
Topic 5 Assignment (9%)
Topic 6 (assessed exams only)
Participation (0.5 % )
7 4 7: Decidability S: Chpt. 4, R: Topic 6 Topic 7 (assessed exams only)
Participation (0.5%)
8 4 8: Reducibility S: Chpt. 5, R: Topic 7 Topic 8 (assessed in exams)
Participation (0.5%)
Midterm Exam (16%)
9 5 9: Recursive Function Theory

R: Topic 9
Participation (0.5%)
10 5      - continued -   Topic 9 Assignment (9%)
Participation (0.5%)
11 6 10: Lambda Calculus R: Topic 10 Participation (0.5%)
12 6     - continued - Topic 10 Assignment (9%)
Participation (0.5%)
13 7 11: Complexity Theory
    - Time Complexity -
S: Chpt. 7, R: Topic 11, Part I Participation (0.5%)
14 7     - continued - Topic 11 Assignment (9%)
Participation (0.5%)
15 8     - Space Complexity - S: Chpt 8, Sect. 9.1-9.2, R: Topic 11, Part II Participation (1.0% course)
Final Exam (22%)

*     Semester 15-Week course sections use column one; Accelerated 8-Week sections use column two
**   Complete reading assignments in the order listed (left-to-right). 
***  Unless your faculty directs otherwise, individual assessed assignments are found in the online course shell in each Topic.

Summary of Assignments and Percentage Weight:

Assignments Weighted Percentage
Topic Assignments 54%
Exams 38%
Participation   8%
TOTAL 100 %

Programming Assignments

All programs must be implemented in Java 8.2 using the NetBeans IDE.  The programming assignments are designed to reinforce the material in the associated Topic and to give you more practice with programming.

Late Assignment Policy

Late assignments will be graded and then 5% will be deducted for each day the assignment is late, up to 5 days late.  Therefore, any assignment turned in more than 5 days late will be given a grade of zero, and no feedback will be given. The exams will not be accepted late.

CCIS Policies

Review the CCIS Policies on the Regis University website.

Department Policies

The Computer Science department and faculty reserves the right to review all assessments in this course, at any time, and revise the assigned grade based on a reassessment of the material, which may include, for example, an oral examination of the student by the faculty or department.

Adding this course during the Drop/Add Period: If you add this course during the drop/add period, you are responsible for immediately notifying the instructor that you joined the course late. None of the course due dates will be extended for you. If a due date has already passed when you add the course, late points will be deducted.

Repeating the course: If you are repeating this course (due to a previous withdraw or low grade), you are responsible for immediately notifying the instructor. If any of the course assignments have not changed since last time you took the course, you may be required to complete alternate assignments.

Plagiarism: Plagiarism includes submitting any work obtained from any other person, publication, or any internet web source without appropriate citations. Any external help you receive or review must be cited and include the reasons you needed this external source and what you learned from it. All work submitted in CS475 must be your own!

OTHER INFORMATION

NOTE TO LEARNERS: On occasion, the course facilitator may, at his or her discretion, alter the Learning Activities shown in this Syllabus. The alteration of Learning Activities may not, in any way, change the Learner Outcomes or the grading scale for this course as contained in this syllabus. Examples of circumstances that could justify alterations in Learning Activities could include number of learners in the course; compelling current events; special facilitator experience or expertise; or unanticipated disruptions to class session schedule.