{"id":1032,"date":"2023-08-15T15:05:22","date_gmt":"2023-08-15T22:05:22","guid":{"rendered":"https:\/\/labs.wsu.edu\/scads\/?page_id=1032"},"modified":"2025-07-02T12:33:09","modified_gmt":"2025-07-02T19:33:09","slug":"cpts-317-automata-and-formal-languages","status":"publish","type":"page","link":"https:\/\/labs.wsu.edu\/scads\/teaching\/cpts-317-automata-and-formal-languages\/","title":{"rendered":"CptS 317: Automata and Formal Languages"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\" id=\"cpts-317-automata-and-formal-languages-spring-2020-syllabus\">CptS 317: Automata and Formal Languages <\/h1>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-left\" id=\"course-information\">Course Information<\/h2>\n\n\n\n<p><strong>Credit Hours:<\/strong> 3<br><strong>Semester Taught:<\/strong> Fall\/Spring<br><strong>Textbook<\/strong>: Introduction to the Theory of Computation, Third Edition, Michael Sipser. 2013<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-left\" id=\"course-objectives\">Course Objectives<br><\/h2>\n\n\n\n<ul>\n<li>Introduce concepts in automata theory and theory of computation<\/li>\n\n\n\n<li>Identify different formal language classes and their relationships<\/li>\n\n\n\n<li>Design grammars and recognizers for different formal languages<\/li>\n\n\n\n<li>Prove theorems in automata theory and language properties<\/li>\n\n\n\n<li>Determine the decidability and intractability of computational problems<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-left\" id=\"course-information\">Prerequisites<br><\/h2>\n\n\n\n<ul>\n<li><strong>CptS 122\/132<\/strong> &#8211; Data Structures<\/li>\n\n\n\n<li><strong>Math 216<\/strong> &#8211;  Discrete Structures<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-left\" id=\"learning-outcomes\">Learning Outcomes<\/h2>\n\n\n\n<p>At the conclusion of this course students will:<\/p>\n\n\n\n<ul>\n<li>Have acquired a fundamental understanding of the core concepts in automata theory and<br>formal languages<\/li>\n\n\n\n<li>Be able to design grammars and automata (recognizers) for different language classes<\/li>\n\n\n\n<li>Be able to identify formal language classes and prove language membership properties<\/li>\n\n\n\n<li>Be able to prove theorems establishing key properties of formal languages and automata<\/li>\n\n\n\n<li>Have acquired a fundamental understanding of core concepts relating to the theory of computation and computational models including decidability and intractability<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center\" id=\"topics\" style=\"font-size:40px\">Topics<br><\/h2>\n\n\n\n<ol>\n<li>Introduction to automata theory<\/li>\n\n\n\n<li>Finite Automata (DFA and NFA)<\/li>\n\n\n\n<li>Regular expressions and languagues<\/li>\n\n\n\n<li>Properties of regular languages: pumping lemma, closure properties, decision properties, equivalence and minimization of automata<\/li>\n\n\n\n<li>Context-free grammars and languages<\/li>\n\n\n\n<li>Pushdown Automata<\/li>\n\n\n\n<li>Properties of context-free languages<\/li>\n\n\n\n<li>Turing machines and extensions<\/li>\n\n\n\n<li>Undecidability, diagonalization, problem reduction<\/li>\n\n\n\n<li>Intractable problems: P and NP, NP-completeness<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center\">Weekly Schedule<\/h2>\n\n\n\n<p class=\"has-text-align-left\">This is an example of what the week-by-week schedule of topics and assignments would look like. <\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><tbody><tr><th>WEEKS                                                                <\/th><th>TOPICS                                                                                                 <\/th><th class=\"has-text-align-left\" data-align=\"left\">ASSIGNMENTS                                          <\/th><\/tr><tr><td>01 <\/td><td>Intro to course, intro to computation theory<\/td><td class=\"has-text-align-left\" data-align=\"left\">HW0 (survey) out<\/td><\/tr><tr><td>02 <\/td><td>Review of math concepts, proof<br>techniques, finite automata<\/td><td class=\"has-text-align-left\" data-align=\"left\">HW0 in; HW1 out<\/td><\/tr><tr><td>03 <\/td><td>Finite Automata<\/td><td class=\"has-text-align-left\" data-align=\"left\">No class 9\/2; HW1 in, HW2 out<\/td><\/tr><tr><td>04 <\/td><td>Regular Expressions<\/td><td class=\"has-text-align-left\" data-align=\"left\">HW2 in, HW3 out<\/td><\/tr><tr><td>05 <\/td><td>Nonreguar Languages<\/td><td class=\"has-text-align-left\" data-align=\"left\">HW3 in<\/td><\/tr><tr><td>06 <\/td><td>Context-free Languages<\/td><td class=\"has-text-align-left\" data-align=\"left\">Mid-term 1 on 9\/25<\/td><\/tr><tr><td>07  <\/td><td>Context-free Grammars<\/td><td class=\"has-text-align-left\" data-align=\"left\">HW4 out<\/td><\/tr><tr><td>08  <\/td><td>Pushdown Automata<\/td><td class=\"has-text-align-left\" data-align=\"left\">HW4 in, HW5 out<\/td><\/tr><tr><td>09  <\/td><td>CFG and PDA equivalence<\/td><td class=\"has-text-align-left\" data-align=\"left\">HW5 in<\/td><\/tr><tr><td>10  <\/td><td>Minimization of Automata; Deterministic CFL<\/td><td class=\"has-text-align-left\" data-align=\"left\">Review for Mid-term 2<\/td><\/tr><tr><td>11  <\/td><td>Turing Machines I<\/td><td class=\"has-text-align-left\" data-align=\"left\">Mid-term 2 (10\/28); HW 6 Out<\/td><\/tr><tr><td>12  <\/td><td>Turing Machines II<\/td><td class=\"has-text-align-left\" data-align=\"left\">HW6 in<\/td><\/tr><tr><td>13  <\/td><td>Decidability<\/td><td class=\"has-text-align-left\" data-align=\"left\">No class 11\/11; HW 7 out<\/td><\/tr><tr><td>14  <\/td><td>Reducibility<\/td><td class=\"has-text-align-left\" data-align=\"left\">HW 7 in<\/td><\/tr><tr><td>15  <\/td><td><strong>Thanksgiving break<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><\/td><\/tr><tr><td>16  <\/td><td>Time Complexity, Review<\/td><td class=\"has-text-align-left\" data-align=\"left\">Practice<\/td><\/tr><tr><td>17  <\/td><td>Finals Week<\/td><td class=\"has-text-align-left\" data-align=\"left\">Final Exam on Dec 9<\/td><\/tr><\/tbody><\/table><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>CptS 317: Automata and Formal Languages Course Information Credit Hours: 3Semester Taught: Fall\/SpringTextbook: Introduction to the Theory of Computation, Third Edition, Michael Sipser. 2013 Course Objectives Prerequisites Learning Outcomes At the conclusion of this course students will: Topics Weekly Schedule This is an example of what the week-by-week schedule of topics and assignments would look [&hellip;]<\/p>\n","protected":false},"author":12156,"featured_media":0,"parent":1040,"menu_order":1,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"categories":[],"tags":[],"university_category":[],"location":[],"organization":[],"_links":{"self":[{"href":"https:\/\/labs.wsu.edu\/scads\/wp-json\/wp\/v2\/pages\/1032"}],"collection":[{"href":"https:\/\/labs.wsu.edu\/scads\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/labs.wsu.edu\/scads\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/labs.wsu.edu\/scads\/wp-json\/wp\/v2\/users\/12156"}],"replies":[{"embeddable":true,"href":"https:\/\/labs.wsu.edu\/scads\/wp-json\/wp\/v2\/comments?post=1032"}],"version-history":[{"count":11,"href":"https:\/\/labs.wsu.edu\/scads\/wp-json\/wp\/v2\/pages\/1032\/revisions"}],"predecessor-version":[{"id":1701,"href":"https:\/\/labs.wsu.edu\/scads\/wp-json\/wp\/v2\/pages\/1032\/revisions\/1701"}],"up":[{"embeddable":true,"href":"https:\/\/labs.wsu.edu\/scads\/wp-json\/wp\/v2\/pages\/1040"}],"wp:attachment":[{"href":"https:\/\/labs.wsu.edu\/scads\/wp-json\/wp\/v2\/media?parent=1032"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/labs.wsu.edu\/scads\/wp-json\/wp\/v2\/categories?post=1032"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/labs.wsu.edu\/scads\/wp-json\/wp\/v2\/tags?post=1032"},{"taxonomy":"wsuwp_university_category","embeddable":true,"href":"https:\/\/labs.wsu.edu\/scads\/wp-json\/wp\/v2\/university_category?post=1032"},{"taxonomy":"wsuwp_university_location","embeddable":true,"href":"https:\/\/labs.wsu.edu\/scads\/wp-json\/wp\/v2\/location?post=1032"},{"taxonomy":"wsuwp_university_org","embeddable":true,"href":"https:\/\/labs.wsu.edu\/scads\/wp-json\/wp\/v2\/organization?post=1032"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}