
#183 overall
6.042 Mathematics for Computer Science
MIT OCW
3 recommenders · 3 threads · recommended in 3 years, 2013–2019 · score 2.4
MIT's undergraduate course on discrete mathematics as used in computer science, covering logic, proofs, sets, number theory, graph theory, counting, probability, and related topics. The course notes are freely available through MIT OpenCourseWare.
Commenters recommend it for its intuitive explanations combined with approachable formalism, and one calls it a standard prerequisite for technical interview algorithm questions.
Recommendations by year
20062026
Jeff Erickson's Algorithms text is a great resource: http://jeffe.cs.illinois.edu/teaching/algorithms/
The entire book -- including the portions labeled Models of Computation, Director's cut, and Extended Dance Remix -- presents accessible introduction to much of the CS theory landscape.
Someone already praised the shorter book titled "Algorithms" by Dasgupta et al, and I second it. Tim Roughgarden's "Algorithms Illuminated" series is in this genre too.
I'd also recommend the MIT lecture notes on Mathematics for CS: https://courses.csail.mit.edu/6.042/spring18/mcs.pdf This is distinctive for its intuitive explanations with essential, approachable formalism. The exercises are fine too, if you are really mean it.
Sipser's book on the Theory of Computation is great and the one by Hopcroft et al is also very good (as suggested by others). But the most beginner-friendly (or, light on math) coverage of this area is apparently in Peter Linz's book "Introduction to Formal Languages and Automata". An alternative flavor in the treatment of much of the same topics is in this free book: http://cs.brown.edu/people/jsavage/book/
As someone who works as a programmer but wasn’t super interested in mathematics, I’ve found this blog to be a fantastic read time and time again. I’d highly recommend going through Jeremy’s previous posts if this is your first time seeing his site on here.
If this topic piques your interest I would also recommend Mathematics for Computer Science: https://courses.csail.mit.edu/6.042/spring17/mcs.pdf
My experience with technical questions during interviews is that they did not need a deep understanding of any particular technology. Instead, they mostly rely on some knowledge of algorithms and data structures. Almost all of my coding questions came from the following classes I took at MIT: Intro to Algorithms (6.006) Design and Analysis of Algorithms (6.046) Mathematics for Computer Science (6.042)
Take some version of those classes (maybe OCW, edX, or Coursera) and you will be good to go — at least for technical interviews. If you like reading then Introduction to Algorithms by Cormen, Leiserson, Rivest, and Stein is the book that these courses cover.