CS154: Automata and Complexity Theory, Winter 2013
[General Info]
[Lectures]
[Homeworks]
[Exams]
Announcements
- 03/13 Last lecture's slides are up. Practice final is coming out very soon. THANK YOU for taking the course! It's been a blast for me, hope you enjoyed it too.
- 03/11 Today's slides are up.
- 03/06 Slides are up, and the last homework is now up! Don't forget to vote for your favorite number of cheat sheets (on piazza) and your favorite course on automata and complexity theory (in your online course evaluations)!
- 03/04 Today's slides are up. There's lots of activity on piazza about this week's homework, if you haven't already checked it out.
- 02/27 Slides are out, new homework is out. (START EARLY!)
- 02/23 The final exam will be in building 320 room 105 on 3/18 from 8:30am to 11:30am. Ryan's office hours are now from 3pm-5pm on Monday. (No one really attended the Friday office hours, anyway...)
- 02/20 No homework this week! (yay) Slide handouts from today are up.
- 02/13 Hope the midterm went well for you. A new homework is now up (due 02/20).
- 02/11 Slides for today are up. Good luck studying for the midterm!
- 02/06 Slides for today are up. Practice midterm will be posted on Piazza shortly.
- 02/04 Slide handouts for today's lecture are up. Note that the midterm will be next Wednesday, so we will not have a new homework this week -- you'll get a practice midterm instead.
- 01/30 Slide handouts for today's lecture are up. Homework 4 is up and due next Wednesday.
- 01/28 Slide handouts introducing Turing machines are up.
- 01/23 Slide handouts for today's lecture are up. Homework 3 is up and is due next Wednesday. Homework 1 is graded and ready for pickup! In the hallway of the Gates 4B wing, there is a file cabinet marked "CS154" where you can find your graded assignments. Let us know if you have problems finding it. Next lecture we will cover the remainder of the slide handout, and start talking about Turing machines. Many of you have already emailed answers to the bonus question -- wow! (I am not saying that they are *correct*, mind you... that will come later.)
- 01/23 Some students have asked if I can make the slide handouts available before lecture. I'll try to do this for some lectures, but for many lectures, the slides are literally being written from one lecture to the next (believe it or not), which makes it difficult to post them early. But I will try. One suggestion: you may want to try re-watching the lecture video, after the slide handouts are put on the web.
NOTE: If you are an SCPD student and worried that you're watching the video too late to participate in the bonus question, do not fret -- just send in your solution when/if you can but indicate that you are an SCPD student.
- 01/16 Slides for the past two lectures are posted. Homework 2 is also up. It is due Wednesday the 23rd. Note that no lecture will be held on Monday, due to MLK Jr Day.
- 01/11 Sorry, Ryan's car broke down and he could not even make 5pm! Please remember to sign up for Piazza to receive up-to-date course announcements
- 01/10 Ryan's office hours for this Friday (the 11th) are moved later today, to 5:00pm-6:00pm
- 01/09 Slides for the past two lectures are posted, as well as Homework 1
- 01/07 Welcome to the class!
General Information
Instructor:
- Ryan Williams, Gates 464, 650 723 6690, rrw at cs dot stanford dot edu
TAs:
- Kevin Lewi, klewi at cs dot stanford dot edu
- Lilian Tran, liliant at stanford dot edu
Class: Monday-Wednesday 12:50-2:05, Huang 018
Office hours:
- Ryan: Monday 3:00-5:00pm, Gates 464
- Kevin: Tuesday 5:00-6:00pm and Thursday 2-3pm, Gates 463
- Lilian: Monday 10:00-11am and Wednesday 10:00-11:00am, Gates B26A
If you cannot make these times, please let us know and we'll try to reschedule them.
You can ask questions using piazza. Please sign up with piazza to help us keep you updated on the course!
Textbook:
- Michael Sipser, Introduction to the Theory of Computation (3rd Edition), Thomson
Note: the 2nd edition of Sipser is also perfectly fine for this course, if you can find it cheaper.
Grading: Midterm is 20%, Final is 30%, Homework is 50%.
Homeworks:
- Homework comes out on Wednesdays and will be due the following Wednesday at the beginning of class. No homework will be assigned for the week before the midterm. Late assignments will not be accepted. To account for this, we will drop the lowest homework grade in computing your final grade. If you are unable to submit your homework because of extenuating circumstances such as a family/medical emergency, please contact Ryan about it (as soon as possible!).
- Policy on collaboration: You may to discuss homework problems with other students and you may work in groups, but we require that you try to solve the problems by yourself before discussing them with others. Just think about all the problems on your own and do your best to find the solution, before launching into a collaboration. If you work in a group, you must include the names of the other people in the group in your written solution. You must write up your own solution to every problem; you may not copy answers from another student or any other source. In general, if you receive a significant idea from someone or somewhere, you must acknowledge that person/book/website in your solution.
- How to submit homework: Write your name, SUID (the 8-digit number), SUNet ID, homework number, and problem number
on top of each page. Feel free to use LaTeX to compose your solutions! The TAs will post on piazza about how to submit your solutions electronically, if you prefer that option. If you decide to write your solutions, please write legibly. Your TAs may mark your solution as incorrect if they cannot read your handwriting. Additionally, if you would like to see your grades online as the course progresses, please sign up for the class on CourseWare.
- Submitting homework: If you are an in-class student, you can (1) hand in your homework in class, (2) drop off
your homework in the CS 154 dropbox in the Gates 1B lobby, or (3) email your homework.
If you are an SCPD student, you can (1) physically mail your homework to your SCPD liason or (2) email your homework to us, cc-ing your SCPD liason.
If you are emailing your homework, prepare your scanned images into a single pdf file consisting of 8.5x11 pages (or write your solution in LaTeX and compile it to pdf). Please name your file FirstnameLastname-HW#.pdf (for example: AlanTuring-HW3.pdf) and email to cs154-win13-submissions@lists.stanford.edu.
- Regrades: If you wish to request a regrade on a problem, you will need to prepare a written justification and drop by during office hours to talk about your solution in person. We require that you submit your request within one week after the homework/exam is returned.
- Piazza: For all homework questions (that do not give away solutions!), please post
to piazza.com/stanford/winter2013/cs154
You can also send private questions (to TAs and instructors only) using Piazza.
so far:
- 01/7. Introduction and summary of the course; intro to finite automata
Readings: Sipser, Chapter 0, 1.1
Slides (in handout form): [pdf]
Students: do you like the format of these slide handouts? Let rrw@cs know if you'd like them in a different way!
- 01/9 Review of finite automata, equivalence of deterministic and non-deterministic automata, regular expressions, equivalence of automata and regular expressions
Readings: Sipser 1.1, 1.2, 1.3
Slides: [pdf]
- 01/14 Equivalence of automata and regular expressions (continued); Pumping lemma and applications
Readings: Sipser 1.4
Slides: [pdf]
- 01/16 State minimization; Myhill-Nerode theorem
Readings: Sipser Problem 1.52 and its solution, Luca Trevisan's notes
Slides: [pdf]
- 01/21 Martin Luther King, Jr., Day (holiday, no classes)
- 01/23 Streaming algorithms
Readings: Luca Trevisan's notes on streaming algorithms
Slides: [pdf]
- 01/28 Turing machines
Readings: Sipser Chapter 3, and Turing's original paper
Slides: [pdf]
- 01/30 Decidability, Recognizability, Enumeration, and Undecidability
Readings: Sipser 4, 5.1, 5.2
Slides: [pdf]
- 02/04 Undecidability, Reductions, and the Post Correspondence Problem
Readings: Sipser 5.3, 6.3
Slides: [pdf]
- 02/06 Rice's Theorem and the Recursion Theorem
Readings: Sipser 6.1, Luca Trevisan's notes
Slides: [pdf]
- 02/11 Computability and the Foundations of Mathematics
Readings: Sipser 6.2, Luca Trevisan's notes
Slides: [pdf]
- 02/13 Midterm
- 02/18 Presidents' Day (holiday, no classes)
- 02/20 Kolmogorov Complexity
Readings: Sipser 6.4
Slides: [pdf]
- 02/25 Review of P, NP, reductions, time hierarchy theorem
Readings: Sipser 7.1, 7.2, 7.3, 9.1
Slides: [pdf]
- 02/27 The Cook-Levin Theorem
Readings: Sipser 7.4, Luca Trevisan's proof of Cook's Theorem
Slides: [pdf]
- 03/04 NP-completeness of clique, vertex cover, independent set and subset sum
Readings: Sipser 7.5
Slides: [pdf]
- 03/06 coNP, Oracle Turing machines and P^{NP}, start of space complexity
Readings: Sipser 9.2, 8.2
Slides: [pdf]
- 03/11 PSPACE, Savitch's Theorem, PSPACE-complete problems
Readings: Sipser 8.1, 8.2, 8.3
Slides: [pdf]
- 03/13 Finish up space complexity, randomized polynomial time (ZPP, RP, BPP), course summary
Readings: Sipser 10.2
Slides: [pdf]
the plan:
Homework
Homework comes out on Wednesdays and is due the following Wednesday, at the beginning of class.
- Homework 1 is due Jan 16. Avg: 11.2 out of 15, StdDev: 3.8
- Homework 2 is due Jan 23. Avg: 10.9 out of 12, StdDev: 1.9
- Homework 3 is due Jan 30. Avg: 16.63 out of 18, Stddev: 2.54
- Homework 4 is due Feb 6. Avg: 13.1 out of 15, Stddev: 3.0
- Homework 5 is due Feb 20. Avg: 15.76 out of 18, Stddev: 2.49
- Homework 6 is due Mar 6.
- Homework 7 is due Mar 13.
Exams
The midterm was in class, on Wednesday, February 13.
The average was 33.4/41, and the stddev was 6.4.
The final exam will be in Building 320 Room 105 on Monday, March 18, from 8:30 to 11:30am (as seen here). We will allow one double-sided sheet of notes; otherwise, the exam is closed-book.