Hacker News new | past | comments | ask | show | jobs | submit login
Introduction to Theoretical Computer Science (introtcs.org)
294 points by lainon 44 days ago | hide | past | web | favorite | 28 comments

Took his course in college. Could not down vote this post more. I have much PTSD from his lectures because Boaz was figuring out how to teach mid-lecture. If you read the textbook you'll find many typos and a plethora of mathematical notation that lacks any intuitive explanation. On the upside, I guess I know what a Turing machine is now...?

Just for balance, Boaz is in my top 5 CS professors. For more advanced theory topics you need more of a guide as the field is pretty wide and deep; he is great at that. I am not sure how to reconcile my learning experience with yours but I have fond memories of Boaz's lectures.

I just took CS121 recently and echo this. Theoretical CS is really a broad topic to cover in a semester. The early sections on computability theory, CFGs, regex are really good. Once it gets into complexity classes things kind of stop making sense.

Doesn't help that the textbook is still a buggy WIP, and there are no written solutions to problems in the book or the homeworks.

I took CS121 last semester, and it was my favorite course I've taken so far, and I thought the textbook was excellent (this is not a popular opinion).

Everyone is in agreement that the course improved significantly since the first year he taught it (Fall 2017). Fall 2017 it was ROUGH, but I have absolutely zero complaints about his teaching last semester.

He seems like he means well, though. Posting all of his notes free of charge.

He also encourages students to make a pull requests when they find errata.

I can see the argument that this "open sources" the literature and brings students closer to it.

However - students are not experts in the subject matter and this makes for anxiety-inducing and frankly ineffective pedagogy. You are there to learn, but never know if the proof you are reading is correct or not. The errors get in the way.

It's not a wiki; he's free to not merge changes people offer him.

Do you know of an alternative resource over this one?

Sipser [1] is the standard and deservedly so.

[1] https://en.wikipedia.org/wiki/Introduction_to_the_Theory_of_...

Used this book in my CS course. Loved it. I felt like it was clear and well written.

It's great they release all of this for free. I mean, it will never be the same as having that piece of paper from MIT— but at least one can rely on the resources as being quality.

I'm glad to see you write this. When MIT launched OCW (thanks to Hal Abelson, of SCIP fame) I was shocked by the number of articles amazed that MIT would give away their "Crown Jewels". MIT's position was precisely yours.

There is one course from CMU not exactly same but is along the lines


Kleinberg and Tardos book: http://www.cs.sjtu.edu.cn/~jiangli/teaching/CS222/files/mate... But that book is not an easy read either and will be hard to digest for someone not comfortable with reading mathematical proofs. It comes with the territory.

This is not a TCS textbook. This is core algorithms.

Source-TA ing an algorithms course with tardos

Perhaps you only covered the first part of the book? Chapter 8 and beyond are definitely about theory.

That's true. Good point. Also I really like this book. It's just not really what I think of when I think of theory.

There was a course on Udacity.

Author here. Thanks to whomever posted it! Would appreciate any comments or typo/bug reports on the GitHub repository. (Linked from the page)

Interesting decision to start with Boolean circuits rather than automata. I wonder if that has any effect on students' ability to learn the material.

Two questions on theoretical CS:

1) Anyone know of a good roadmap, breaking down what the major sections are and offering summaries? (Or if they cared to post their own here, that'd be great :) doesn't have to be super comprehensive.)

2) Can anyone recommend a good second book for readers who've already gone through Sipser? —or is there not even a natural follow up since it just depends on which specialization you want to go in from there?

I took Sipser's class and read his book. I found Barak's textbook pretty good after that. You can read it out of order, and it has pretty good citations so you can always look confusing topics on your own.

"Computation Complexity: A Modern Approach" by Arora and Barak

1) Syllabus for the accompanying Harvard course https://cs121.boazbarak.org/syllabus/

2) Author is heavily inspired by Sipser and the previous CS121 course taught by Harry Lewis. So this is your natural follow-up.

How was this website generated from the Markdown files in the GitHub repo?

At the bottom of the page:

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





Yes I use a custom pandoc filter that transforms the markdown to both latex and html (using the bookdown/githook template).

At the moment the code is rather messy and somewhat tied to my windows setup , but eventually I plan to open source it as well.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact