CS483 - Theory of Computation (Section 01)
Fall-2022
Classes: TR 12:15pm - 1:30pm, Maria Sanford Hall 204
Instructor: Dr. Zdravko Markov, MS 30307, (860)-832-2711,
http://www.cs.ccsu.edu/~markov/,
e-mail: markovz at ccsu dot edu
Office hours: MW 4:30pm - 6pm, TR 2pm - 3pm, in person.
Catalog description:
The concept of algorithm, correctness and efficiency of algorithm,
decidable vs. undecidable problems, recursion, halting problem, formal languages,
context free and context-sensitive grammars, and introduction to automata
and parallel algorithms.
Course Prerequisites: CS253 and (MATH217 or MATH218)
Prerequisites by topic
- Programming Fundamentals and Data Structures
- Sets
- Sequences and tuples
- Functions and relations
- Graphs
- Strings and languages
- Boolean logic
- Proof by construction, contradiction, and induction
Course description: The course covers the
mathematical foundations of computing by discussing the following major topics:
- Automata and Regular Languages
- Context-Free Languages
- The Church-Turing Thesis
- Undecidability and Reductions
- Complexity Theory
Course Learning Outcomes (CLO)
- Gain proficiency with mathematical tools and formal methods
- Understand finite automata and formal languages
- Understand the equivalence of pushdown automata and context-free languages
- Understand Turing Machines and recognizable and decidable languages
- Describe unrecognizable languages and undecidable problems
- Analyze algorithm complexity and undestand the basics of complexity theory
Student Outcomes (SO) supported by the Course Learning Outcomes
- SO-1: Analyze a complex computing problem and to apply principles of computing
and other relevant disciplines to identify solutions (supported by CLO's 2, 3, 4, 5).
- SO-6: Apply computer science theory and software development fundamentals to
produce computing-based solutions (supported by CLO's 1, 6).
Required textbook:
Michael Sipser, Introduction to the Theory of Computation, 3rd edition, Cengage, 2013
Class Participation: Active participation in
class is expected of all students. Regular attendance is also expected. If you
must miss a class, try to inform the instructor of this in advance. In case of
missed classes and work due to plausible reasons (such as illness or accidents)
limitted assistance will be offered. Unexcused absences will result in the
student being totally responsible for the make-up process.
Grading: Grading will be based on six homework assignments
(60%), a midterm test (20%), and a final exam (20%). The assignments and tests are listed
in the tentative schedule of classes below and will be made available and submitted via
Blackboard at https://ccsu.blackboard.com.
The letter grades will be assigned according to the following table:
A |
A- |
B+ |
B |
B- |
C+ |
C |
C- |
D+ |
D |
D- |
F |
95-100 |
90-94 |
87-89 |
84-86 |
80-83 |
77-79 |
74-76 |
70-73 |
67-69 |
64-66 |
60-63 |
0-59 |
Unexcused late submission policy: Submissions
made more than two days after the due date will be graded one letter
grade down. Submissions made more than a week late will receive
two letter grades down. No submissions will be accepted more than two
weeks after the due date.
Honesty policy: The CCSU honor code for
Academic Integrity is in effect in this class. It is expected that all students
will conduct themselves in an honest manner and NEVER claim work which is not
their own. Violating this policy will result in a substantial grade penalty, and
may lead to expulsion from the University. You may find it online at http://web.ccsu.edu/academicintegrity/. Please read it
carefully.
Students with disabilities: Students who
believe they need course accommodations based on the impact of a disability,
medical condition, or emergency should contact me privately to discuss
their specific needs. I will need a copy of the accommodation letter from
Student Disability Services in order to arrange class accommodations. Contact
Student Disability Services, if you are not already
registered with them. Student Disability Services maintains the confidential
documentation of your disability and assists you in coordinating reasonable
accommodations with your faculty.
Schedule of classes and assignments
Note: Links to Lecture Notes and the dates for classes, assignments, and tests are available in Blackboard.
- Introduction: Automata, Computability, and Complexity. Reading: Section 0.1
- Mathematical Notions and Terminology. Reading: Section 0.2
- Definitions, Theorems, and Proofs. Reading: Sections 0.3 - 0.4
- Finite Automata. Reading: Section 1.1
- Assignment 1 due
- Nondeterminism. Reading: Section 1.2
- Regular Expressions. Reading: Section 1.3
- Nonregular Languages and the Pumping Lemma. Reading: Section 1.4
- Assignment 2 due
- Context-Free Grammars. Reading: Section 2.1
- Pushdown Automata. Reading: Section 2.2
- Introduction to Turing Machines. Reading: Section 3.1
- Examples of Turing machines, Recognizable and Decidable Languages. Reading: Section 3.1
- Assignment 3 due
- Variants of Turing Machines. Reading: Section 3.2
- Multi-Tape TM and Non-Deterministic TM Equivalence with TM. Reading: Section 3.2
- Definition of Algorithm. Reading: Section 3.3
- Examples of Decidable Languages. Reading: Section 4.1
- Assignment 4 due
- Midterm Test due
- The diagonalization method. Reading: Sections 4.2
- An undecidable language. Reading: Sections 4.2
- A Turing-unrecognizable language. Reading: Sections 4.2
- Reducibility. Reading: Sections 5.1
- Undecidable Problems from Language Theory. Reading: Sections 5.1
- Assignment 5 due
- Measuring Complexity. Reading: Section 7.1
- The Class P. Reading: Section 7.2
- The Class NP. Reading: Section 7.3
- NP-completeness. Reading: Section 7.4
- Assignment 6 due
- Final Exam due