====== 204213: Theory of Computation ======
===== General Information =====
* **Instructor:** [[http://www.cpe.ku.ac.th/~jtf|Jittat Fakcharoenphol]]
* **TA:** (TBA)
* **Sections:**
* 1 (cpe): W 9 - 12, Room 202
* 450 (ske): Tu 9 -12, Room 204
* **TA's office hours:** Fri 13 - 17, Room 806.
* Textbook: [[http://www-math.mit.edu/~sipser/book.html|Sipser, Theory of Computation (2nd Edition), 2006.]]
* Grading scheme: 2 midterm exams (25% each), 1 final exam (35%), homework (15%). 2 big quizes (10% each), small quiz (5%), midterm (25%), final (35%), homework (15%)
===== Announcement =====
* While waiting for the grades, you can watch this [[http://www.youtube.com/watch?v=cYw2ewoO6c4|LEGO Turing machine video at YouTube]].
* **Homework deadline is over. No more homework will be accepted.**
* **Homework 6, 7, and 8 should be submitted to the homework box.**
* **BIG QUIZ is postponed to next week.**
* Homework 6 due date is extended. เลื่อนส่งการบ้าน 6 ไปพร้อมการบ้าน 7 (ที่จะประกาศเร็ว ๆ นี้)
* [[theory of computation/midterm sect 1|คะแนนมิดเทอมหมู่ 1]], [[theory of computation/midterm sect 450|Midterm score section 450]]
* **MAKE-UP**: Section 450, Sunday 18th Jan, 10:00-12:00. Room 507.
* **HOMEWORK SUBMISSION:** You can submit homework 5 with the TA and the lecturer on the following times and places
* Jittat:
* Thursday 13:00 - 15:30 at IUP office at 4th floor building 10 (อาคารชูชาติกำภู)
* Friday 13:00 - 16:00 at room 411 (or as announced on the door of room 411)
* Eig and Champ: Thursday 16:05 - 18:00 at 806
* [[theory_of_computation:homework5|Homework 5]] is out. การบ้าน 5 ออกแล้ว.
* **MIDTERM** will be on December 24th, 2008 from 16:00 to 19:00. It'll be an open-note, open-book exam. For those who have conflict schedule, you will have to take the exam at 12:50 - 15:50; then someone will accompany you to the Law and Ethics examination room.
* **การสอบกลางภาค** จะมีในวันที่ 24 ธันวาคม 2551 เวลา 16:00 - 19:00. สามารถเปิดเอกสารและหนังสือได้. สำหรับนิสิตสาขาวศ.ซอฟต์แวร์และความรู้ที่ตารางชนกับวิชากฎหมายจะสอบเวลา 12:50 - 15:50 ในห้องสอบที่จะประกาศต่อไป จากนั้นจะมีคนพาไปสอบวิชากฎหมายต่อไป
* [[theory of computation/practice1|Practice 1]] for Big Quiz 1 is up.
* **Midterm Announcement** The midterm will be moved to be according to the faculty schedule. There'll be only 1 midterm now. However, to reduce the load on the midterm, on Tuesday 16th and Wednesday 17th of December there'll be a 1-hour **BIG** quiz in class (worth 10%). **Materials include 1.1, 1.2, and 1.3.** (You can think of it as a tiny midterm.)
* **ประกาศเกี่ยวกับการสอบกลางภาค** การสอบกลางภาคเลื่อนไปสอบตามกำหนดเดิมของคณะ เหลือการสอบครั้งเดียว อย่างไรก็ตาม เพื่อลดภาระในการสอบมิดเทอม ในวันที่ 16 และ 17 จะมีการสอบเก็บคะแนนย่อย (คิดคะแนน 10% ใช้เวลา 1 ชั่วโมง) ในห้อง **เนื้อหาคือ 1.1, 1.2, และ 1.3** (สามารถพิจารณาว่านี่เป็นมิดเทอมย่อยก็ได้)
* **Homework Submission:** After homework 4 (starting homework 5), each student has to submit the homework **in person** with the instructor or the TA. There'll be time slots allocated for homework submission and homework discussion. Please wait for announcement. For now, you should submit homework 4 normally.
* **การส่งการบ้าน:** หลังจากการบ้าน 4 (เริ่มการบ้าน 5) นิสิตแต่ละคนต้องส่งการบ้านโดยตรงกับอาจารย์ผู้สอนหรือนิสิตผู้ช่วยสอน สำหรับเวลาที่สามารถส่งได้ และเวลาสำหรับการปรึกษาการบ้านจะประกาศเร็ว ๆ นี้ สำหรับการบ้านปัจจุบัน (การบ้าน 4) ให้ส่งที่ช่องการบ้านตามปกติก่อน
* **LATE HOMEWORK POLICY:** This course allows submission of late homework. However, there's some penalty. You'll get 90% if you make a 1-week-late submission. You'll get 70% for 2-week-late submissions. After that you'll get at most 50% more than 1-week late. At some point, the hard deadline maybe enforced (so that the TAs can do their work).
* **นโยบายเกี่ยวกับการส่งการบ้านล่าช้า** คุณสามารถส่งการบ้านล่าช้าได้ โดยคุณจะโดนหักคะแนนเหลือ 90% ถ้าส่งช้า 1 อาทิตย์ เหลือ 70% ถ้าส่งช้ากว่านั้นแต่ไม่เกิน 2 อาทิตย์ ถ้าช้ากว่านั้นจะได้ 50% นอกจากนี้ อาจมีการระบุเส้นตายสุดท้ายในการรับการส่งการบ้านด้วย เพื่อความสะดวกของผู้ช่วยสอนในการตรวจให้คะแนน
* The due date for homework 1 changed to Friday 14th.
* If you have problems doing homework, go to see your nice TA. The TA's office hours are Friday 13 - 17 in Room 805.
* Homework 1 is up.
* The textbooks have not arrived on time. KU Book will bring a few of them (I don't know how many) that have arrived to the department office on Monday. The other lot of books will be arrived on next Friday (7 Nov).
* No homework for the first week of class. Sorry.
===== Homework =====
//**LATE HOMEWORK POLICY:** This course allows submission of late homework. However, there's some penalty. You'll get 90% if you make a 1-week-late submission. You'll get 70% for 2-week-late submissions. After that you'll get at most 50% more than 1-week late. At some point, the hard deadline maybe enforced (so that the TAs can do their work).//
//**นโยบายเกี่ยวกับการส่งการบ้านล่าช้า** คุณสามารถส่งการบ้านล่าช้าได้ โดยคุณจะโดนหักคะแนนเหลือ 90% ถ้าส่งช้า 1 อาทิตย์ เหลือ 70% ถ้าส่งช้ากว่านั้นแต่ไม่เกิน 2 อาทิตย์ ถ้าช้ากว่านั้นจะได้ 50% นอกจากนี้ อาจมีการระบุเส้นตายสุดท้ายในการรับการส่งการบ้านด้วย เพื่อความสะดวกของผู้ช่วยสอนในการตรวจให้คะแนน//
* Homework 1 (due 14 Nov 08) | [[http://www.cpe.ku.ac.th/~jtf/204213/hw01.pdf|pdf]]
* [[theory of computation/homework2|Homework 2]] (due 21 Nov 08)
* [[theory of computation/homework3|Homework 3]] (due 28 Nov 08)
* [[theory of computation/homework4|Homework 4]] (due 8 Dec 08)
* [[theory of computation/practice1|Practice 1]] (for Big Quiz 1)
* [[theory of computation/homework5|Homework 5]] (due 14 15 Jan 09) (deadline extended!)
* See announcement for how to submit homework.
* [[theory of computation/homework6|Homework 6]] (due 29 Jan 09) extended to Homework 7 due date.
* [[theory of computation/homework7|Homework 7]] (due 17 Feb 09)
* Homework 8. Will be out 15 Feb. Due 20 Feb.
===== Class schedule =====
* Week 1. Introduction, review of mathematical background, introducing finite automata | [[http://www.cpe.ku.ac.th/~jtf/204213/lect01_intro.pdf|slides]] | [[http://www.cpe.ku.ac.th/~jtf/204213/video-oct29.html|video]]
* Download video: [[http://www.cpe.ku.ac.th/~jtf/204213/video/oct29-1.flv|part 1]] | [[http://www.cpe.ku.ac.th/~jtf/204213/video/oct29-2.flv|2]] | [[http://www.cpe.ku.ac.th/~jtf/204213/video/oct29-3.flv|3]] | [[http://www.cpe.ku.ac.th/~jtf/204213/video/oct29-4.flv|4]] | [[http://www.cpe.ku.ac.th/~jtf/204213/video/oct29-5.flv|5]]
* Week 2. Finite automata | [[http://www.cpe.ku.ac.th/~jtf/204213/lect02_dfa.pdf|slides]] | [[http://www.cpe.ku.ac.th/~jtf/204213/video-nov05.html|video]]
* Simulator: [[http://ozark.hendrix.edu/~burch/proj/autosim/index.html|Automaton Simulator]]
* Download video: [[http://www.cpe.ku.ac.th/~jtf/204213/video/nov05-1.flv|part 1]] | [[http://www.cpe.ku.ac.th/~jtf/204213/video/nov05-2.flv|2]]
* Week 3. Nondeterminism, equivalence of NFA and DFA, regular expressions, equivalence between regular expressions and finite automata (1st part) | [[http://www.cpe.ku.ac.th/~jtf/204213/lect03_nfaregex.pdf|slides]] | [[http://www.cpe.ku.ac.th/~jtf/204213/video-nov12.html|video]]
* Download video: [[http://www.cpe.ku.ac.th/~jtf/204213/video/nov12-1.flv|part 1]] | [[http://www.cpe.ku.ac.th/~jtf/204213/video/nov12-2.flv|2]] | [[http://www.cpe.ku.ac.th/~jtf/204213/video/nov12-3.flv|3]] | [[http://www.cpe.ku.ac.th/~jtf/204213/video/nov12-4.flv|4]]
* Week 4. Equivalence between regular expressions and finite automata (2nd part), non-regular languages (pumping lemma), examples of applications | [[http://www.cpe.ku.ac.th/~jtf/204213/lect04_regexeq_pumping.pdf|slides]] | [[http://www.cpe.ku.ac.th/~jtf/204213/video-nov19.html|video]] (with download links)
* Week 5. Context-free grammars, push-down automata. | [[http://www.cpe.ku.ac.th/~jtf/204213/lect05.pdf|slides]] | [[http://www.cpe.ku.ac.th/~jtf/204213/video-nov26.html|video]] (with download links)
* Week 6. Chomsky normal form, equivalence between languages described by CFGs and languages recognized by PDAs, pumping lemma for CFL. | [[http://www.cpe.ku.ac.th/~jtf/204213/lect06.pdf|slides]] | [[http://www.cpe.ku.ac.th/webcast/20081220/204213-3-2551|video]]
* Week 7. Quiz 1. Proof of pumping lemma. Finish equivalence between CFGs and PDAs. Brief intro to Turing machines | [[http://www.cpe.ku.ac.th/~jtf/204213/lect07.pdf|slides]] | [[http://www.cpe.ku.ac.th/webcast/20081217/204213-17-2551|video]]
* Week 8. Intro to Turing machines. Variants of TM. | [[http://www.cpe.ku.ac.th/~jtf/204213/lect08.pdf|slides]] | [[http://www.cpe.ku.ac.th/webcast/20090112/204213-7-52|video]]
* Week 9. Finish Turing machines. Decidability. | [[http://www.cpe.ku.ac.th/~jtf/204213/lect09.pdf|slides]] | [[http://www.cpe.ku.ac.th/webcast/20090120/204213-14-52|video]]
* Week 10. Finish decidability. Reducibility (Part 1). Applications 1 (or, how to do software verification even when the most basic question in software verification is undecidable). Applications 2 (bioinformatics) | [[http://www.cpe.ku.ac.th/~jtf/204213/lect10.pdf|slides]] | [[http://www.cpe.ku.ac.th/webcast/20090124/204213-21-52|video]]
* Week 11. Reducibility (Part 2). Time complexity. **SMALL QUIZ (5%) in class** | [[http://www.cpe.ku.ac.th/~jtf/204213/lect11.pdf|slides]] | [[http://www.cpe.ku.ac.th/webcast/20090129/204213-28-52|video]]
* Week 12. Class P, Class NP. NP-Completeness. | [[http://www.cpe.ku.ac.th/~jtf/204213/lect12.pdf|slides]] | [[http://www.cpe.ku.ac.th/webcast/20090220/204213-11-52|video]]
* Week 13. NP-Completeness (cont.) **BIG QUIZ (10%) in this week** | [[http://www.cpe.ku.ac.th/~jtf/204213/lect13.pdf|slides]] | [[http://www.cpe.ku.ac.th/webcast/20090220/204213-18-52|video]]
===== Links =====
* [[http://www.eecs.berkeley.edu/~sseshia/172/|cs172]]: A similar course at UC Berkeley.
* [[http://chanathip.ee.engr.tu.ac.th/courseware/index.php?action=course&course_id=11&course_page=home|CN314]]: A similar course at TU