Introduction to Theoretical Computer Science
Work in progress
These are lecture notes for an introductory undergraduate course on theoretical computer science. I am using these notes for Harvard CS 121.
For the best-formatted version, download all lecture notes in a single PDF file (about 300 pages, 3MB).
See this website for (a very much work in progress) implementation of the NAND* programming languages that are used in in these notes.
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 where I am maintaining the source files for these notes.
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.