======Theory of Computing, Spring 2013====== The goal of this course is to acquaint the students with the basic concepts in computation theory and to cultivate the students' ability in analyzing the complexity of computational problems. =====Announcements===== * 06/30: grade report available; please send inquiries, if any, to the instructor by 2PM July 02. * 06/14: slides from TA sessions: {{courses:theory2013:hw5slides.pptx|HW#5}}, {{courses:theory2013:hw6slides.pptx|HW#6}}, {{courses:theory2013:hw7slides.pptx|HW#7}}, {{courses:theory2013:hw8slides.pptx|HW#8}}, {{courses:theory2013:hw9slides.pptx|HW#9}}, {{courses:theory2013:hw10slides.pptx|HW#10}}. * 06/06: the TA session rescheduled on 06/10 will be held in the same classroom. (There might be other students in the room waiting for the class starting from 2:20PM, but we have officially booked the room for 1:20-2:10PM.) * 06/06: check out revised Slide 56 of Time Complexity and NP-Completeness. * 05/29: reminder: there will be a TA session on 06/05. * 05/22: {{courses:theory2013:hw10.pdf|HW#10}} due on 05/29. * 05/22: notes/slides for Time Complexity and NP-Completeness available. * 05/16: reminder: there will be a TA session on 05/22. * 05/15: {{courses:theory2013:hw9.pdf|HW#9}} due on 05/22. * 05/15: notes/slides for Reducibility available. * 05/13: {{courses:theory2013:theory2013mid_s.pdf|Suggested Solutions to Midterm Problems}} available. * 05/07: {{courses:theory2013:hw8.pdf|HW#8}} due on 05/15. * 05/01: notes/slides for Decidability and Undecidability available. * 04/24: {{courses:theory2013:hw7.pdf|HW#7}} due on 05/01. * 04/24: notes/slides for Turing Machines available. * 04/11: old exams: {{courses:theory:old_exams.zip|2000-2006}}. * 04/10: slides from TA sessions: {{courses:theory2013:hw1slides.pptx|HW#1}}, {{courses:theory2013:hw2slides.pptx|HW#2}}, {{courses:theory2013:hw3slides.pptx|HW#3}}, {{courses:theory2013:hw4slides.pptx|HW#4}}. * 04/10: {{courses:theory2013:hw6.pdf|HW#6}} due on 04/17. * 04/01: {{courses:theory2013:hw5.pdf|HW#5}} due on 04/10. * 03/27: reminder: there will be a TA session on 04/10. * 03/26: notes/slides for Context-Free Languages available. * 03/20: {{courses:theory2013:hw4.pdf|HW#4}} due on 03/27. * 03/19: reminder: there will be a TA session on 03/20, starting at 1:20PM. * 03/18: HW#3 revised; please read the additional note for this revision. * 03/13: {{courses:theory2013:hw3.pdf|HW#3}} due on 03/20. * 03/06: {{courses:theory2013:hw2.pdf|HW#2}} due on 03/13. * 03/05: notes/slides for Regular Languages available. * 02/27: {{courses:theory2013:hw1.pdf|HW#1}} due on 03/06. * 02/20: notes/slides for Introduction and Mathematical Preliminaries available. =====Instructor===== [[http://im.ntu.edu.tw/~tsay/|Yih-Kuen Tsay (蔡益坤)]], NTU IM Dept., 3366-1189, ''Xtsay@im.ntu.edu.twX'' (between the enclosing pair of X's). =====Lectures===== Wednesday 2:20~5:20PM, Room B01, Management I. \\ TA sessions will be scheduled prior to some of the class meetings between 1:20 and 2:10PM. =====Office Hours===== Tuesday 1:30~2:00PM, Wednesday 1:30~2:00PM, or by appointment, Room 1108, Management II. =====TA===== Jui-Shun Lai (賴瑞舜), 3366-1205, ''Xnarration.lai@gmail.comX'' (between the enclosing pair of X's). \\ Wei-Hsien Chang (張暐獻), 3366-1205, ''Xb96705043@ntu.edu.twX'' (between the enclosing pair of X's). =====Textbook===== *//[[http://www.amazon.com/Introduction-Theory-Computation-Michael-Sipser/dp/0534950973/ref=sr_1_3?s=books&ie=UTF8&qid=1361175802&sr=1-3&keywords=Introduction+to+the+Theory+of+Computation%2C+2nd+Edition|Introduction to the Theory of Computation, 2nd, International Edition]]//, Michael Sipser, Thomson Course Technology, 2006. (新月圖書代理) *//[[http://www.amazon.com/Introduction-Theory-Computation-Michael-Sipser/dp/113318779X|Introduction to the Theory of Computation, 3rd Edition]]//, Michael Sipser, Cengage Learning, 2012. (歐亞圖書代理) Note: according to the local distributor, the 3rd edition has not arrived in Taiwan. Its main difference from the 2nd edition is a new section on deterministic pushdown automata in Chapter 2. We will follow mainly the 2nd edition, but it should be safe for you to use the 3rd edition (if you manage to get one). =====Syllabus/Schedule (with links to notes/slides)===== This is an introductory course to the theory of computation. It covers various mathematical models, including automata and Turing machines, for physical computing machineries along with their computational capabilities/limitations. In terms of specific topics and the order of their exposition, the course will follow closely the book by Sipser. (Note: a TA session will precede a class meeting whose date is marked with an *. There are four TA sessions on 3/20, 4/10, 5/22, and 6/5, making up one skipped class meeting.) *Introduction and Mathematical Preliminaries (2 weeks: 2/20, 2/27) [{{courses:theory2013:ch0_notes.pdf|notes}}, {{courses:theory2013:ch0_slides.pdf|slides}}] *Finite Automata and Regular Languages (3 weeks: 3/6, 3/13, 3/20*) [{{courses:theory2013:ch1_notes.pdf|notes}}, {{courses:theory2013:ch1_slides.pdf|slides}}] *Context-Free Languages and Pushdown Automata (2 weeks: 3/27, 4/10*) [{{courses:theory2013:ch2_notes.pdf|notes}},{{courses:theory2013:ch2_slides.pdf|slides}}] * **Midterm** (**2013/04/17**) *Turing Machines (1.5 weeks: 4/24, 5/1a) [{{courses:theory2013:ch3_notes.pdf|notes}}, {{courses:theory2013:ch3_slides.pdf|slides}}] *Decidability and Undecidability (2 weeks: 5/1b, 5/8, 5/15a) [{{courses:theory2013:ch4_notes.pdf|notes}}, {{courses:theory2013:ch4_slides.pdf|slides}}] *Reducibility (1.5 weeks: 5/15b, 5/22*) [{{courses:theory2013:ch5_notes.pdf|notes}}, {{courses:theory2013:ch5_slides.pdf|slides}}] *Time Complexity and NP-Completeness (2 weeks: 5/29, 6/5*) [{{courses:theory2013:ch7_notes.pdf|notes}}, {{courses:theory2013:ch7_slides.pdf|slides}}] * **Final** (**2013/06/19**) =====References===== *MIT OpenCourseWare: [[http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-045j-automata-computability-and-complexity-spring-2011/index.htm|Automata, Computability, and Complexity]] *Stanford Coursera: [[https://www.coursera.org/course/automata|Automata]] * [[http://dl.acm.org/citation.cfm?id=2093549&CFID=70582427&CFTOKEN=84470362|What is an Algorithm?]] (M.Y. Vardi, Communications of the ACM, Volume 55 Issue 3, March 2012) *//[[http://www.amazon.com/Introduction-Automata-Languages-Computation-Addison-Wesley/dp/020102988X/ref=sr_1_11?s=books&ie=UTF8&qid=1361114620&sr=1-11&keywords=Introduction+to+Automata+Theory%2C+Languages%2C+and+Computation|Introduction to Automata Theory, Languages, and Computation]]//, John E. Hopcroft and Jeffrey D. Ullman, Addison-Wesley, 1979. *//[[http://www.amazon.com/Introduction-Automata-Theory-Languages-Computation/dp/0321455371/ref=sr_1_2?s=books&ie=UTF8&qid=1361114620&sr=1-2&keywords=Introduction+to+Automata+Theory%2C+Languages%2C+and+Computation|Introduction to Automata Theory, Languages, and Computation, 3rd Edition]]//, John E. Hopcroft, Rajeev Motwani, and Jeffrey D. Ullman, Addison-Wesley, 2006. *//[[http://www.amazon.com/Elements-Theory-Computation-2nd-Edition/dp/0132624788|Elements of the Theory of Computation, 2nd Edition]]//, Harry R. Lewis and Christos H. Papadimitriou, Prentice-Hall, 1998. *[[http://www.fi.edu/learn/sci-tech/automaton/automaton.php?cts=instrumentation|Maillardet's Automaton]] at the Franklin Institute. *Free Tool: [[http://www.jflap.org/|JFLAP]] *Free Tool: [[http://goal.im.ntu.edu.tw/|GOAL]] =====Grading===== Homework 20%, Participation 10%, Midterm 30%, Final 40%.