├── README.md └── slides ├── .gitkeep ├── Lec01_FiniteAutomata.pdf ├── Lec02_NFA.pdf ├── Lec03_NFA=DFA,operations.pdf ├── Lec04_RegularExpressions.pdf ├── Lec05_PumpingLemma.pdf ├── Lec06_Properties_Regular.pdf ├── Lec07_Grammar+CFL.pdf ├── Lec08_parsetree+ambiguity.pdf ├── Lec09_PushdownAutomata.pdf ├── Lec10_PDAandCFG.pdf ├── Lec11_PropertiesPDA.pdf ├── Lec12_PumpingCFL.pdf ├── Lec13_TuringMachine.pdf ├── Lec14_VariantsOfTM.pdf ├── Lec15_UniversalTM,diagonal.pdf ├── Lec16_(Un)decidability.pdf ├── Lec17_Reducibility,undecidability-I.pdf ├── Lec18_Reducibility,undecidability-II.pdf ├── Lec19_Reducibility,undecidability-III.pdf ├── Lec20_ClassP,NP.pdf ├── Lec21_NP-completeness.pdf ├── Lec22_moreNP-complete.pdf └── Lec23_What_next.pdf /README.md: -------------------------------------------------------------------------------- 1 | Formal Languages and Automata (KAIST CS322), Fall 2024 2 | ==================== 3 | 4 | 5 | NEWS 6 | --------------------- 7 | - 27 Nov: The final exam takes place on 18th Dec (Wednesday) in E11 room 412 from 8h till 12h. The exam is closed-book and no electronic devices are allowed. You can bring your personal notes on course material up to 3 pieces of A4-size paper, which may be two-sided. 8 | - 16 Oct: The mid-term exam will take place on 2nd November, Saturday, from 2pm till 6pm. You can bring something to drink and simple snack that you can consume without crunchy sound. The exam is closed-book and of course no internet is allowed. You can bring your personal notes on course material up to 3 pieces of A4-size paper. 9 | 10 | 11 | 12 | 13 | LOGISTICS 14 | --------------------- 15 | - Lecturer: Eunjung KIM (eunjung.kim@kaist.ac.kr) 16 | 17 | - Teaching Assistans 18 | - Gunwoo Kim (gunwoo.kim@kaist.ac.kr)
 19 | - Jihoon Hyun (qawbecrdtey@kaist.ac.kr) 20 | - Seokbeom Kim (seokbeom@kaist.ac.kr) 21 | - Doheyon Lee (mathloveguy@kaist.ac.kr) 22 | 23 | - Lecture Room: 1220 at Building E3 24 | 25 | - Office hour with the lecturer: after each lecture or upon arrangement. 26 | - Office hour with the TAs: Wednesday 17-18h, Office 3409 at E3-1 27 | 28 | 29 | 30 | - Schedule: 31 | - Lecture Schedule. Monday and Wednesday, 10:30-11:45. 32 | - All lectures will take place on-site except for the week of 9-13 September and on 7th October. 33 | - The midterm exam will take place in the week of 28 Oct-1 November, one week after the offical midterm exam period. 34 | - The final exam will take place during the usual final exam period. 35 | 36 | - Grading: Homeworks, Participation, Quiz 30%, Midterm exam 35%, Final exam 35% 37 | 38 | 39 | - Others: 40 | - The official language in the class is English. 41 | - Homework assignments will be announced on the webpage. Expect an assignment at least every two weeks. Ideally, the solutions to homeworks should be written either in latex / in a text editor, e.g. MS Word / or VERY CLEAN AND IMMEDIATELY READABLE handwriting. People who grade your homework will NOT spend time struggling to decifer your handwriting. No matter how great your solution is, if it's not readable EASILY, it gets exactly that much score. The assignment needs to be submitted before the indicated deadline on [KLMS](https://klms.kaist.ac.kr/course/view.php?id=162187). 42 | - A strict policy against dishonest behaviors will be applied; expect an "F" grade and be reported to the SoC board when you fail to follow the [honor code](https://cs.kaist.ac.kr/content?menu=309). 43 | 44 | 45 | Course Description 46 | ------------------- 47 | We study ‘computer science’ and a computer is a computing machine. In this course, we study various notions and ideas which were developed since 1930’s in response to fundamental questions such as the following. 48 | - What do we mean by computing? 49 | - What is the object that a computing machine computes? Why we call a programming language a ‘language’? 50 | - Both computer scientists and linguists talk about ‘languages’. Are there something in common? How to formalize the link between them. 51 | - Computers ranging from high-performance server, desktop, laptops to mobile phones, from a wide range of manufacturers are all ‘computers’. On which ground, do we treate them as if they are (essentially) equally powerful machines which are all called computers? 52 | - Is there a problem which cannot be ‘computed’? How to tell if a problem is computable or not. 53 | - Is there a problem we’d better give up finding an ‘efficient’ algorithm? How to tell if a problem is efficiently computable or not. 54 | 55 | - Is the computer implemented as your iMac the only form of a computer? 56 | 57 | Recommended Prerequisite: We assume that you have attended Discrete Mathematics (CS204) or have a sufficient background knowledge covered in similar courses. Introduction to Algorithms (CS300) is a plus. 58 | To be successful in this course, you need certain, if not high, level of mathematical maturity. For example, competence in writing a formal proof and digesting abstract concepts in mathematical formalism are needed. 59 | We also assume that you have a moderate experience in programming, even though we do not do coding during the class. 60 | 61 | 62 | Course Materials 63 | ------------------- 64 | - Main Textbooks: any one of them will work! 65 | - John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman, Introduction to Automata Theory, Languages and Computation, 3rd Edition, 2006, Pearson/Addision-Wesley. 66 | - Michael Sipser, Introduction to the Theory of Computation, 2nd Edition (International Edition), 2006, Course Technology.
 67 | - Peter Linz, An Introduction to Formal Languages and Automata, 6th Edition, 2017, Jones & Bartlett Learning. 68 | 69 | - Other useful materials 70 | - Scott Aaronson’s lecture notes on Automata, computability and complexity. [Link](https://ocw.mit.edu/courses/6-045j-automata-computability-and-complexity-spring-2011/pages/lecture-notes/). 71 | 72 | 73 | Course Plan (liable to be adjusted) 74 | ------------ 75 | - Week 1 (2-6 Sep): Introduction. Finite Automata. Nondeterministic FA. 76 | - Week 2 (9-13 Sep): Equivalence of DFA and NFA. Closure under Regular operations. Regular expression. Conversions of between regular expressions and NFAs, Part I. 77 | Online lectures on both days 78 | - Week 3 (16-20 Sep): No Lecture - “Chuseok”, Korean harvest festival. 79 | - Week 4 (23-27 Sep): Conversions of between regular expressions and NFAs, Part II. Pumping lemma for DFA. 80 | A lecture note on Myhill-Nerode Theorem with an application to proving regularity/nonregularity of a language can be found [here](https://santoshv.github.io/2019CS4510/L911_scribed.pdf). 81 | - Week 5 (30 Sep - 4 Oct): Properties of Regular languages and how to prove. Context-free Grammar and Context-free language. 82 | - Week 6 (7-11 Oct): No lecture - “Hangul day” and the lecturer away for workshop. 83 | - Week 7 (14-18 Oct): Parse Trees. Ambiguity. Pushdown automata. 84 | - Week 8 (21-25 Oct): Equivalence of pushdown automata and context-free grammars. Deterministic PDA. Properties of Context-free languages. Lecture on 23th (Wed), 9h-12h. No lecture on 21st (Monday). 85 | - Week 9 (28 Oct - 1 Nov): Mid-term exam on 2nd November, Saturday, from 2pm till 6pm. 86 | - Week 10 (4-8 Nov): Pumping lemma for CFL. CYK algorithm. Turing machines. Examples. 87 | - Week 11 (11-15 Nov): Turing thesis. Turing machine variants. Universal Turing Machine. Diagonal argument and the existence of unrecognizable languages. 88 | - Week 12 (18-22 Nov): Decidable and undecidable languages. (Turing-)reducibility. 89 | - Week 13 (25-29 Nov): Undecidable problem. Mapping/many-one reduction. 90 | - Week 14 (2-6 Dec): Limit of efficient computations. Class P and NP. Polynomial-time reduction and NP-completeness. Cook-Levin Theorem. 91 | - Week 15 (9-13 Dec): Other NP-complete problems. Other models of computations. 92 | - Week 16 (16-20 Dec): Exam schedule 18th Dec (Wednesday), 8h-12h. 93 | 94 | 95 | -------------------------------------------------------------------------------- /slides/.gitkeep: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /slides/Lec01_FiniteAutomata.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssimplexity/CS322_fall2024/5da6c11d71230e593970fea5926ebac412ca8a63/slides/Lec01_FiniteAutomata.pdf -------------------------------------------------------------------------------- /slides/Lec02_NFA.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssimplexity/CS322_fall2024/5da6c11d71230e593970fea5926ebac412ca8a63/slides/Lec02_NFA.pdf -------------------------------------------------------------------------------- /slides/Lec03_NFA=DFA,operations.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssimplexity/CS322_fall2024/5da6c11d71230e593970fea5926ebac412ca8a63/slides/Lec03_NFA=DFA,operations.pdf -------------------------------------------------------------------------------- /slides/Lec04_RegularExpressions.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssimplexity/CS322_fall2024/5da6c11d71230e593970fea5926ebac412ca8a63/slides/Lec04_RegularExpressions.pdf -------------------------------------------------------------------------------- /slides/Lec05_PumpingLemma.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssimplexity/CS322_fall2024/5da6c11d71230e593970fea5926ebac412ca8a63/slides/Lec05_PumpingLemma.pdf -------------------------------------------------------------------------------- /slides/Lec06_Properties_Regular.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssimplexity/CS322_fall2024/5da6c11d71230e593970fea5926ebac412ca8a63/slides/Lec06_Properties_Regular.pdf -------------------------------------------------------------------------------- /slides/Lec07_Grammar+CFL.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssimplexity/CS322_fall2024/5da6c11d71230e593970fea5926ebac412ca8a63/slides/Lec07_Grammar+CFL.pdf -------------------------------------------------------------------------------- /slides/Lec08_parsetree+ambiguity.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssimplexity/CS322_fall2024/5da6c11d71230e593970fea5926ebac412ca8a63/slides/Lec08_parsetree+ambiguity.pdf -------------------------------------------------------------------------------- /slides/Lec09_PushdownAutomata.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssimplexity/CS322_fall2024/5da6c11d71230e593970fea5926ebac412ca8a63/slides/Lec09_PushdownAutomata.pdf -------------------------------------------------------------------------------- /slides/Lec10_PDAandCFG.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssimplexity/CS322_fall2024/5da6c11d71230e593970fea5926ebac412ca8a63/slides/Lec10_PDAandCFG.pdf -------------------------------------------------------------------------------- /slides/Lec11_PropertiesPDA.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssimplexity/CS322_fall2024/5da6c11d71230e593970fea5926ebac412ca8a63/slides/Lec11_PropertiesPDA.pdf -------------------------------------------------------------------------------- /slides/Lec12_PumpingCFL.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssimplexity/CS322_fall2024/5da6c11d71230e593970fea5926ebac412ca8a63/slides/Lec12_PumpingCFL.pdf -------------------------------------------------------------------------------- /slides/Lec13_TuringMachine.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssimplexity/CS322_fall2024/5da6c11d71230e593970fea5926ebac412ca8a63/slides/Lec13_TuringMachine.pdf -------------------------------------------------------------------------------- /slides/Lec14_VariantsOfTM.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssimplexity/CS322_fall2024/5da6c11d71230e593970fea5926ebac412ca8a63/slides/Lec14_VariantsOfTM.pdf -------------------------------------------------------------------------------- /slides/Lec15_UniversalTM,diagonal.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssimplexity/CS322_fall2024/5da6c11d71230e593970fea5926ebac412ca8a63/slides/Lec15_UniversalTM,diagonal.pdf -------------------------------------------------------------------------------- /slides/Lec16_(Un)decidability.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssimplexity/CS322_fall2024/5da6c11d71230e593970fea5926ebac412ca8a63/slides/Lec16_(Un)decidability.pdf -------------------------------------------------------------------------------- /slides/Lec17_Reducibility,undecidability-I.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssimplexity/CS322_fall2024/5da6c11d71230e593970fea5926ebac412ca8a63/slides/Lec17_Reducibility,undecidability-I.pdf -------------------------------------------------------------------------------- /slides/Lec18_Reducibility,undecidability-II.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssimplexity/CS322_fall2024/5da6c11d71230e593970fea5926ebac412ca8a63/slides/Lec18_Reducibility,undecidability-II.pdf -------------------------------------------------------------------------------- /slides/Lec19_Reducibility,undecidability-III.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssimplexity/CS322_fall2024/5da6c11d71230e593970fea5926ebac412ca8a63/slides/Lec19_Reducibility,undecidability-III.pdf -------------------------------------------------------------------------------- /slides/Lec20_ClassP,NP.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssimplexity/CS322_fall2024/5da6c11d71230e593970fea5926ebac412ca8a63/slides/Lec20_ClassP,NP.pdf -------------------------------------------------------------------------------- /slides/Lec21_NP-completeness.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssimplexity/CS322_fall2024/5da6c11d71230e593970fea5926ebac412ca8a63/slides/Lec21_NP-completeness.pdf -------------------------------------------------------------------------------- /slides/Lec22_moreNP-complete.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssimplexity/CS322_fall2024/5da6c11d71230e593970fea5926ebac412ca8a63/slides/Lec22_moreNP-complete.pdf -------------------------------------------------------------------------------- /slides/Lec23_What_next.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssimplexity/CS322_fall2024/5da6c11d71230e593970fea5926ebac412ca8a63/slides/Lec23_What_next.pdf --------------------------------------------------------------------------------