Introduction to Theoretical Computer Science

Boaz Barak

Work in progress

This is a textbook in preparation for an introductory undergraduate course on theoretical computer science. I am using this text for Harvard CS 121. It is also used for UVa CS 3102.

See below for individual chapters. You can also download:

If you have any comments, suggestions, typo fixes, etc.. I would be very grateful if you post them as an issue or pull request in the GitHub repository boazbk/tcs where I am maintaining the source files for these notes. You can also post comments on each chapter in the links below. The repository will eventually contain all supplementary code and online appendices for this book.

I am revising the book in the spring of 2019. For prior versions of the book, see the repository release page. The most updated version of this book is always on this page.

Book chapters

Compiled on 07/31/2020 23:58:42

Copyright 2019, Boaz Barak. Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.

Produced using pandoc and panflute with templates derived from gitbook and bookdown.