CSE 105 - Theory of Computation, Fall 2025


Welcome to CSE 105! This course will help you answer fundamental questions about computing: In this course, we will explore what it means to be "computable". We begin with a very simple model of computation, and work our way to the most powerful, the Turing machine, named after Alan Turing, who formalized the notion of "algorithm" in this last model even before there were any physical computers. You'll also learn about the relationship of these models to some essential tools in a computer scientist's toolkit, such as regular expressions and context-free grammars. Finally, you'll develop your technical communication skills in writing formal arguments and proofs.


Homework sets

For insight on how to write proofs, see formal proof anatomy.

Class times

TypeDayTimeLocation
LectureMW5-6:20pmCenter 101
Discussion A01F5-5:50pmFAH 1301

Instructors

RoleNameEmailOffice hours
ProfessorShachar Lovettslovett@ucsd.eduMon 11-12pm, CSE 4234
TALoukik Rainalraina@ucsd.eduWed 12:30-1:30pm, CSE B240A
TAHarsh Vardhan Sharmahvsharma@ucsd.eduTue 9-10am, CSE B270A
TAAbhiraj Yogesh Srivastavaabs018@ucsd.eduThu 2-3pm, CSE B240A
TAAmaar Rafique Vallianiavallian@ucsd.eduFri 12-1pm, CSE B270A

Textbook

Michael Sipser, Introduction to the Theory of Computation, 3rd ed.
We will use the international edition, which is much more affordable. It is available on Amazon for about $20.
See also the errata for a list of known typos/errors in the book.

Grading

The final grade will be composed as follows: A passing grade in the final exam (at least 50%) is required to pass the class. Letter grades will be assigned as follows: The designation of +/- inside a grade range is based on the instructor discretion, and will depend on the grade distribution as well as your particiaption in class and discussion, coming to office hours, and improvement throughout the class.

Homework

Homework is 15% of the final grade. There will be 7 homework sets; the lowest grade will be dropped. In each homework set, you will receive a list of questions, out of which you need to choose 5 problems to solve. The same set of problems will also be your set of practice problems for midterms and final. After the homework deadline, we will release solutions to all problems, to set expectations on how we expect you to solve the problems.

Homework is due on Mondays midnight, no exceptions! Because we will release the solutions shortly after, we will not accept late submissions. Submission is online via Gradescope. You should already be enrolled; if not, enroll using your @ucsd.edu email and the code PGZG43.
Instructions:

Participation

I want to keep this class as interactive as possible, to help you follow lectures better and to help identify mis-understood concepts early on.
We will use Webclicker to run polls during class. Please sign in using your @ucsd.edu email and use the code DGJZYU to find the class.
If you participate in all polls, you will get 3 extra points in the overall class grade (out of 100).
If you participate in some, you will get a partial grade based on the fraction that you participated in.

Discussion forums

We use Piazza for discussion forums: any questions that you have on the material, and finding other students for group study and homework. Please use public posts for general questions about the class or material, and private posts for personally relevant questions or questions that can reveal a solution or approach to a homework problem. You should already be enrolled; if not, enroll using your @ucsd.edu email and the code ld7is6dwdem.

Podcast

You can access all previous classes through podcast.

Academic integrity

Your goal is to excel in this class with integrity. It is an academic violation to: This is a partial list of common academic violations in this class. If you are not sure if some activity constitutes an academic violation or not, please ask us before doing it. We will report academic violations to the academic integrity office. See also the detailed academic integrity policy for more information.

Schedule

NOTE: Subject to change throughout the quarter.
Week Date Subject Chapter Slides HW due
Week 1 09/29/2025 Logistics, introduction to automata Sipser 0, 1.1 slides
10/01/2025 Formal definition of Deterministic Finite Automata (DFA) Sipser 1.1 slides
Week 2 10/06/2025 Regular languages, closure under: complementation, union Sipser 1.1, 1.2 slides HW1 due
10/08/2025 Formal definition of Nondeterministic Finite Automata (NFA) Sipser 1.1, 1.2 slides
Week 3 10/13/2025 Equivalence of DFAs and NFAs Sipser 1.2, 1.3 slides HW2 due
10/15/2025 Equivalence of DFAs and regular expressions Sipser 1.2, 1.3 slides
Week 4 10/20/2025 Limits of regular languages: the pumping lemma Sipser 1.4 slides HW3 due
10/22/2025 Intro to Context Free Grammars (CFG) Sipser 1.4, 2.1 slides
Week 5 10/27/2025 Midterm 1 (in class)
10/29/2025 Context Free Grammar (CFG), Push Down Automata (PDA) Sipser 2.1, 2.2 slides
Week 6 11/03/2025 More on Push Down Automata (PDA) Sipser 2.2 slides HW4 due
11/05/2025 Introduction to Turing machines (TM) Sipser 3.1 slides
Week 7 11/10/2025 Decidable and recognizable languages Sipser 3.1 slides HW5 due
11/12/2025 Turing machine models Sipser 3.2 slides
Week 8 11/17/2025 Midterm 2 (in class)
11/19/2025 Encoding, proving decidability Sipser 4.1 slides
Week 9 11/24/2025 Undecidability by diagonalization Sipser 4.2 slides HW6 due
11/26/2025 Review session
Week 10 12/01/2025 Reductions and the halting problem Sipser 4.2,5.1 slides
12/03/2025 Summary slides
Finals week 12/11/2025 Final exam