I am confused, this seems more like a general math cheatsheet. The only thing that truly has anything to do with theoretical CS are the definitions for the O-notation on the first page (and most CS students don't need a cheat-sheet for that) and the master theorem. Nothing on P, NP, NP-hardness or completeness, formal languages (Chomsky hierarchy?), finite automata, Turing machines, halting problem, decision problem, reduction proofs, Pumping lemma, Gödels incompleteness theorem, etc. This sheet would have been of very little help in any theoretical computer science exam I ever took. The only cheat sheet I ever needed in theoretical CS was Schönings book "Theoretische Informatik - kurz gefasst" ("A short overview of theoretical CS", well, it has ~180 pages...), which is pretty standard in German universities. It was completely worn out after my first semester + exam of theoretical CS... here is a TOC: <a href="http://www.gbv.de/dms/hebis-mainz/toc/094349797.pdf" rel="nofollow">http://www.gbv.de/dms/hebis-mainz/toc/094349797.pdf</a>
Maybe it's just me, but when a cheatsheet reaches 10 pages and includes multiple areas like this one I'd just split it up into multiple ones. It almost feels like this needs a table of contents.<p>And I think a bit more theoretical CS stuff, maybe a few diagrams, would be more helpful than e.g. the Pythagorean theorem or the powers of 2 which shouldn't be a problem to just memorize at that level.
This is only a showcase of TeX, the actual value of this cheat-sheet seems pretty low.<p>I used to know most of this when I was in uni, including how to derive it when I needed it. Back then this kind of cheat-sheet would not have helped me <i>apply</i> my knowledge. The actual knowledge was very clear in my head from solving problems, or I remembered some key idea used during derivation and from there could work out the rest.<p>If you need this kind of cheat-sheet you don't understand the concepts deep enough.<p>Unfortunately most of this knowledge is now 15 years later either very fuzzy or completely lost from my mind. I guess that happens when it is not being refreshed/applied during the career I chose.<p>This cheat-sheet serves a reminder of how much knowledge I have lost ;)
I clearly remember my heureka moment when I discovered back in university that I don't have to actually learn and remember all that stuff that was taught but to recognize patterns and tricks that will reduce the problem domain down to a few things from which everything else can be deduced. After that most of the lectures boiled down to: ok, what is important to learn and remember here :-)
I was expecting something like known NPC problems and their reductions plus complexity of algorithms and data structures.<p>This seems like a math cheat sheet that can be improved removing simple derivations of some formulas.<p>However it can be handy.
Engineering version is a whole huge book with lots of interesting things to search for:<p><a href="https://link.springer.com/book/10.1007/978-94-010-9314-9" rel="nofollow">https://link.springer.com/book/10.1007/978-94-010-9314-9</a><p>Not just math, but properties of matter, physical constants, thermodynamics and fluids (oblique shocks!), electricity (Semiconductors, Verilog!), solid mechanics, and random stuff like screw threads.<p>They had us get this in undergrad, all the Engineering students at Oxford know it as HLT.
It's nice, but it doesn't cover any topic of Theoretical Computer Science [1]. It's just the math required for undergrad general CS courses.<p>[1] - <a href="https://en.wikipedia.org/wiki/Theoretical_computer_science" rel="nofollow">https://en.wikipedia.org/wiki/Theoretical_computer_science</a>
I have to wonder about the big-O notation.<p>Do people really write f(x) = O(g(x)) ?<p>Because that doesn't seem to make sense. It could make sense if we read O as an operator (so f is the upper bound on g, but the definition is the other way around) but saying that a function is equal to an upper bound is just odd, even leaving aside the fact that the definition uses "f(x)", i.e., the application of f, to express the function itself.
Useful. I would add maybe abstract algebra, definitions of fields, rings, etc. and their respective operations. LaPlace/Z-Transformation from system theory.
It reminds me of the cheatsheets we used to make before math competitions. Many of those things are forever etched in my brain. The only difference is that the ones I made tended to have a lot more freaking triangles.
This seems to be the original publication: <a href="https://dl.acm.org/doi/10.1145/242581.242585" rel="nofollow">https://dl.acm.org/doi/10.1145/242581.242585</a>
A nice collection formuleas that seem usefull when doing theoretical computer science. Maybe could improve it with adding the definition for NP-complete, context free grammars, Turing complete, and such.
1. I was a pure math major so I've always liked neat representations of pi such as Wallis' identity and Brouncker's continued fraction, both given on that cheat sheet, but I've never actually seen them used for anything. Where do they come up in CS?<p>2. If you have to deal with a lot of sums involving hypergeometric terms (such as a many series involving binomial coefficients), the book "A=B" by Marko Petkovsek, Herbert Wilf, and Doron Zeilberger might be of interest. It is downloadable from Wilf's site [1].<p>[1] <a href="https://www2.math.upenn.edu/~wilf/AeqB.html" rel="nofollow">https://www2.math.upenn.edu/~wilf/AeqB.html</a>
I don’t know if Pythagorean theorem needs to go on any cheat sheet, whether it’s Math or CS. If you can’t remember that, maybe you are in the wrong place to begin with!
For anyone complaining about the length of the document, I suggested it as a shorter alternative to a original submission [0] where apparently a 212 page document was called a cheatsheet and in fact TCS Cheat Sheet was seen as too concise!<p>[0] <a href="https://news.ycombinator.com/item?id=27468908" rel="nofollow">https://news.ycombinator.com/item?id=27468908</a>
I just had this thought that it might be super interesting to see a cheat sheet with the current state of academic knowledge in computer science compressed to as few pages as possible. Things that we didn't know at - let's say - 10 or 20 years ago in a format that could be understood by people from those times.
As someone who has no training at all in related subject I really like the graphical aspect of this pdf, it brought me a sense of complete alienness and makes me want to explore. It almost look like something you can find at an art book fair.
The formula for the nth prime number has a bound of O(n / ln n) which makes the lesser terms noise (?) Same w pi(x) (?) Using a bound is more useful:<p><pre><code> n ln n + n(ln ln n - 1) < p_n < n ln n + n ln ln n (for n >= 6)</code></pre>
Seems like some eager undergrad's notebook; an exercise in productive procrastination.<p>Not sure how useful this is in practice. Probably not very. Thanks nonetheless