Instructor: | Mark Bun, mbun [at] bu [dot] edu | |
Instr. Office Hours: | TBD | |
TBD | ||
Teaching Fellow: | Mandar Juvekar, mandarj [at] bu [dot] edu | |
Mandar's Office Hours: | TBD | |
TBD | ||
Teaching Fellow: | Nadya Voronova, voronova [at] bu [dot] edu | |
Nadya's Office Hours: | TBD | |
TBD | ||
Class Times: | Mon, Wed 2:30-3:45 PM (CAS B12) | |
Discussion Sections: | Fri 9:30-10:20 AM (CAS 203) | |
Fri 11:15 AM-12:05 PM (MCS B37) | ||
Fri 12:30-1:20 PM (CAS 233) | ||
Fri 3:30-4:30 PM (CAS 233) |
Course Website: https://cs-people.bu.edu/mbun/courses/332_S25. The website contains the course syllabus, schedule with assigned readings, homework assignments, and other course materials.
Piazza: https://piazza.com/bu/spring2025/cs332. All class announcements will be made through Piazza, so please set your notifications appropriately. You can also find course handouts and homework/test solutions there. 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.
Gradescope: https://gradescope.com. Sign up for a student account on Gradescope using your BU email address. The entry code for the course is NY66PW. Homework assignments are to be submitted to Gradescope in PDF format.
The basic concepts of the theory of computation are studied. Topics include models of computation, polynomial time, Church's thesis; universal algorithms, undecidability and intractability; time and space complexity, nondeterminism, probabilistic computation and reductions of computational problems.
CS 131 (Combinatoric Structures) and CS 330 (Introduction to Algorithms). If you have not completed the prerequisites for the course, please talk to me before registering.
Date | Topics | Reading/Reference | Handouts/Assignments |
---|---|---|---|
Wed 1/22 | Welcome, introduction | Sipser 0, Lec01, Lec01-ann | L1 polls, Collaboration and Honesty Policy, Math & Algorithms Review, HW 1 out |
Mon 1/27 | Sets, strings, and languages | Sipser 0, Lec02, Lec02-ann | L2 polls, HW 1 due (Tu), HW 2 out |
Wed 1/29 | Finite automata | Sipser 1.1-1.2, Lec03 | L3 polls, Automata Tutor |
Mon 2/3 | DFA-NFA equivalence | Sipser 1.2 | HW 2 due (Tu), HW 3 out |
Wed 2/5 | Closure properties, regular expressions | Sipser 1.2-1.3 | |
Mon 2/10 | Regular expressions vs. FAs, distinguishable sets | Sipser 1.3, Myhill-Nerode | HW 3 due (Tu), HW 4 out |
Wed 2/12 | Non-regular languages | Myhill-Nerode | |
Tue 2/18 | Turing machines | Sipser 3.1, 3.3 | TM simulator, A real TM, HW 4 due, HW 5 out |
Wed 2/19 | Test 1 review | ||
Mon 2/24 | Test 1 | ||
Wed 2/26 | TM variants, closure properties | Sipser 3.2 | |
Mon 3/3 | Nondeterministic TMs | Sipser 3.2-3.3 | HW 5 due (Tu), HW 6 out |
Wed 3/5 | Church-Turing Thesis, decidability, Universal TM | Sipser 3.3, 4.1 | |
Mon 3/10 | NO CLASS — Spring Break | ||
Wed 3/12 | NO CLASS — Spring Break | ||
Mon 3/17 | Countability, diagonalization | Sipser 4.2 | HW 6 due (Tu), HW 7 out |
Wed 3/19 | Undecidability, unrecognizability, reductions | Sipser 4.2, 5.1 | |
Mon 3/24 | More reductions | Sipser 5.1 | HW 7 due (Tu), HW 8 out |
Wed 3/26 | Mapping reductions | Sipser 5.2 | |
Mon 3/31 | Asymptotic notation, time complexity, space complexity | Sipser 7.1-7.2, 8.0 | HW 8 due (Th), HW 9 out |
Wed 4/2 | Test 2 review | ||
Mon 4/7 | Test 2 | ||
Wed 4/9 | More on time/space complexity, hierarchy theorems, complexity class P | Sipser 7.1-7.2, 9.1 | |
Mon 4/14 | More on P, class NP | Sipser 7.2-7.3 | HW 9 due (Tu), HW 10 out |
Wed 4/16 | More on NP | Sipser 7.3-7.4 | |
Mon 4/21 | NO CLASS — Patriots' Day | HW 10 due (Tu), HW 11 out | |
Wed 4/23 | NP-completeness | Sipser 7.4-7.5 | |
Mon 4/28 | More NP-completeness | Sipser 7.4-7.5 | HW 11 due (Tu) |
Wed 4/30 | Course Wrap-Up and Final Review | ||
TBD | Test 3 |
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.
Proof Techniques:
Richard Hammack, Book of Proof. Available online here.
Automata and Computability Theory:
John MacCormick, What Can Be Computed?: A Practical Guide to the Theory of Computation.
Dexter Kozen, Automata and Computability.
Complexity Theory:
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 most Tuesdays at 11:59PM. No late homework will be accepted without prior arrangement. To accomodate extenuating circumstances, your lowest homework grade will be dropped.
You are allowed, and indeed encouraged, to collaborate with other students on solving most of the homework problems. However, you must write the solutions independently in your own words. Details of the collaboration policy may be found here: Collaboration and Honesty Policy.
Some homework assignments will include clearly marked "INDIVIDUAL" problems. Some of these problems are meant to ensure that you understand the key definitions and concepts needed to solve the other problems on the assignment. Others are meant to reinforce concepts from previous assignments that you've already received feedback on. These problems are to be completed individually; no collaboration is allowed.
Some homework assignments may also 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.
Solutions to homework assignments will be distributed on Piazza as soon as possible after submissions are due. On Friday afternoons, the course staff will hold (optional) sessions to walk through and discuss the solutions together. These can be useful in helping you prepare your homework self-assessments (see "Class Participation" below).
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.
My preferred LaTeX editors are 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.
Homework template files: tex, cls, jpg, pdf.
The two 70-minute in-class tests are scheduled for Monday, Feb. 24 and Monday, Apr. 7. Each midterm will cover roughly one-third of the course content. A comprehensive in-class final 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 test and two such sheets to the final. 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 1) responses to in-class polls (adminstered through Google Forms), 2) completed discussion worksheets, and 3) other brief activities such as Homework 0. It will also be possible to increase your participation score by thoughtfully asking and answering questions in lectures, in discussions, on Piazza, or during office hours.