This course is an introduction to the theory of computation. This is the branch of computer science that aims to understand which problems can be solved using computational devices and how efficiently those problems can be solved. To be able to make precise statements and rigorous arguments, computational devices are modeled using abstract mathematical "models of computation." The learning objectives of the course are to:
|Instructor Office Hours:||Thu 3:30-5pm ET (Zoom only) or by appointment (send a private note on Piazza)|
|Teaching Fellow:||Luowen Qian|
|T.F. Office Hours:||(effective Nov 6th) Fri 3-5pm ET (Zoom only) or by appointment (send a private note on Piazza)|
|Class Times:||Tue, Thu 2-3:15pm ET (MCS B37 + Zoom)|
|Discussion Sections:||Wed 11:15am-12:05pm ET (CGS 315 + Zoom)|
|Wed 12:20-1:10pm ET (CGS 113 + Zoom)|
Course website: https://bu-cs332.github.io
Gradescope: https://www.gradescope.com. Use Entry Code
Plickers: Get your link here.
The teaching will follow the Learn from Anywhere (LfA) policy, allowing both in-person and remote students. We will experiment with different methods of teaching, including lecturing, recorded lecturing, flipped class, problem solving in class.
If you are joining the class remotely, please keep your microphone muted when not speaking, and do not talk to others from your remote learning environment while on the microphone. We suggest that if you are comfortable with it, you can turn on your video cameras, especially when asking a question so that your facial expressions can clarify your questions.
We will the use Plickers response system for questions during the lectures. You will be able to submit answers to in-class questions using your web browser. However, we will provide appropriate accommodations if you miss any of the classes.
Finally, all class announcements will be made through Piazza, so please set your notifications appropriately. Please post questions about the course material to Piazza instead of emailing the course staff directly. It is likely that other students will have the same questions as you and may be able to provide answers in a more timely fashion. Active participation on Piazza may add extra points to your participation grade.
You are not supposed to be registered for the class if you have not met the prerequisites.
The schedule listed here is tentative and subject to change.
|Th 9/3||Welcome, introduction||Sipser 0-1.1
|Tu 9/8||Finite automata, regular languages||Sipser 1.1-1.2
HW1 out: pdf, tex
|Th 9/10||DFA-NFA equivalence, closure under regular operations||Sipser 1.1-1.2
|Tu 9/15||Closure cont'd, non-regular languages||Sipser 1.4
|Th 9/17||Pumping Lemma||Sipser 1.4
|Tu 9/22||Regular expressions||Sisper 1.3
|Th 9/24||Context-free grammars, pumping lemma for CFGs||Sipser 2.1, 2.3
|Tu 9/29||Pumping lemma, closure properties for CFGs||Sipser 2.3
|Th 10/1||Midterm 1 Review||lec09 lec09-ann||HW4, HW2 resubmission due (Sun)|
|Tu 10/6||MIDTERM 1|
|Th 10/8||Turing machines||Sipser 3.1, 3.3
|Tu 10/13||NO CLASS — Substitute Monday Schedule of Classes||HW5 out|
|Th 10/15||TM variants, closure properties||Sipser 3.2
|Tu 10/20||TM variants, Church-Turing Thesis, universal computations||Sipser 3.2, 4
|Th 10/22||Decidable languages, undecidability, diagonalization||Sipser 3.2, 4
|Tu 10/27||Unrecognizability, enumerators, reductions||Sipser 4
|Th 10/29||Undecidability and reductions||Sipser 4, 5.1
|Tu 11/3||More on reductions||Sipser 5
|Th 11/5||Midterm 2 Review||lec17||HW8 out (not to be handed in)|
|Tu 11/10||MIDTERM 2|
|Th 11/12||Time complexity, Extended Church-Turing thesis||Sipser 7.1-7.2
|Tu 11/17||Polynomial time, P||Sipser 7.1-7.2
|Th 11/19||Nondeterministic time, NP||Sipser 7.3-7.4
|Tu 11/24||NP completeness||Sipser 7.3-7.4
|Th 11/26||NO CLASS — Thanksgiving Recess|
|Tu 12/1||Cook-Levin Theorem, more NP-complete problems||Sipser 7.3-7.5
|Th 12/3||Space complexity||Sipser 8.1-8.3
|Tu 12/8||More on space complexity||Sipser 8.1-8.3
|Th 12/10||Course Wrap-Up and Final Review||Sipser 7.1-8.3
|W 12/16||Final Exam 3-5pm ET|
Attendance of discussion sections is optional but encouraged for you to better understand the materials.
|W 9/9||Introduction, review of basics, regular languages|
|W 9/16||Equivalence of NFA/DFA, closure of regular languages, number of states|
|W 9/23||Common mistakes in HW1|
|W 9/30||CFGs, non-CFLs|
|W 10/7||Midterm 1 solutions|
|W 10/14||High level and implementation level descriptions of TMs|
|W 10/21||Decidable and Turing-recognizable languages|
|W 10/28||Diagonalization and undecidability|
|W 11/4||Unrecognizability and mapping reductions|
|W 11/11||Midterm 2 solutions|
|W 11/18||P and extended Church-Turing thesis|
|W 11/25||NO DISCUSSION — Thanksgiving Recess|
|W 12/2||NP-completeness, search v.s. decision|
|W 12/9||More on NP, PSPACE|
Michael Sipser, Introduction to the Theory of Computation, 3rd Edition. ISBN-13: 978-1133187790.
See here for a list of errata.
Reading the textbook before class and reviewing it after class are important for solidifying your understanding of the course material. However, I do not want the exhorbitant price of the book to pose a barrier to your learning. Using an older edition of the text is fine (though beware that section numbers may be different). If the cost of the textbook still presents a burden for you, let me know and I can loan you a copy or recommend another solution.
Richard Hammack, Book of Proof. Available online here.
Automata and Computability Theory:
Dexter Kozen, Automata and Computability.
Sanjeev Arora and Boaz Barak, Computational Complexity: A Modern Approach.
Cristopher Moore and Stephan Mertens, The Nature of Computation.
There will be weekly homework assignments to be submitted on Gradescope every Tuesday at 2PM. No late homework will be accepted. To accomodate extenuating circumstances, your two lowest homework grades will be dropped.
You are allowed, and indeed encouraged, to collaborate with other students on solving the homework problems. However, you must write the solutions independently in your own words.
Some homework assignments may include optional "bonus" problems. Solving these problems will not directly contribute to your homework grade but may improve the letter grade you receive in the course if the final percentage we calculate is on the borderline between two letter grades. Solving bonus problems is also a good way to impress your instructor if you are seeking a recommendation letter, research opportunities, or a grading position. Collaboration is NOT allowed on bonus problems.
You are expected to present your homework cleanly so that the graders do not mistakenly take away your points. You may want to use LaTeX to typeset your homework solutions. LaTeX is the standard document preparation system used in the mathematical sciences. Using LaTeX makes it easier for you to revise and edit your solutions and for us to read them, so you will never lose points for illegibility.
For LaTeX editors, you can try TexShop for Mac and TeXstudio for Windows. If you would like to give LaTeX a try on the web without installing anything on your computer, Overleaf is a good option.
Not so short intro to LaTeX. A LaTeX tutorial. LaTeX Stack Exchange is a good place to go for more fancy LaTeX tricks.
Homework template files: source zip, and its pdf output.
There will be two 70-minute in-class midterm exams scheduled for Monday, Feb. 24 and Wednesday, Apr. 1. These dates are confirmed and are not subject to change. Each midterm will cover roughly one-third of the course content. A comprehensive final exam will be held during the normal two-hour exam slot. Please wait until the official University final exam schedule is finalized before making your end-of-semester travel plans.
You may bring one double-sided 8.5" x 11" sheet of notes to each midterm exam and two such sheets to the final exam. Note sheets may be either handwritten or typeset. You may not use any other aids during the exam, including but not limited to books, lecture notes, calculators, phones, or laptops.
Your active participation in class and in discussion sections is an essential part of your learning. Your participation grade will be determined by your engagement with the Plickers system. It will also be possible to increase this score by thoughtfully asking and answering questions in lectures, in discussions, on Piazza, or during office hours.
Students are expected to attend each class session unless they have a valid reason for being absent. If you must miss class due to illness or another reason, please notify the instructor as soon as possible, ideally before the absence.
Consistent attendance is necessary for remote students in order to follow the classes. All students are expected to be responsible for preparing the equipments for them to be able to either attend the class and exams, either in-person or remotely.https://www.bu.edu/academics/policies/attendance/