
Ask HN: Recommended Math Primer for SICP - imechura
Can you recommend a decent math primer for those of us who did not earn a degree in CS and would like to undertake the SICP text?
======
swannodette
When I first read through SICP I stopped early in the book when it got the bit
that required Calculus and took a massive detour to understand Calculus. Then
I returned to the book, solved the problem, and discovered that the rest book
had hardly any difficult math - certainly nothing that required me to know
anything beyond high school math. C'est la vie.

------
orijing
I know this might not be so helpful for you, but I don't think it requires
anything above a basic understanding of math. The "deepest" math was in the
beginning, when it covered Newton's Method for square root approximation.

SICP is used as the introductory CS text at many universities (Berkeley
included) and has no official math prerequisites. I think you should try
reading it first, and if you get stuck on a concept like Newton's Method, you
can just read about it on Wikipedia.

But otherwise, there was basically no math involved, except as simple
illustrations. Good luck! It was a great text.

------
tokenadult
There are other replies that detail the strict math requirements for getting
through the SICP text and how to build up in those requirements.

But in case you are additionally interested in further self-education in
mathematics related to computer science, or other onlookers in this thread
are, I'll recommend some resources in discrete mathematics,

[http://www.artofproblemsolving.com/Resources/articles.php?pa...](http://www.artofproblemsolving.com/Resources/articles.php?page=discretemath)

especially those directed toward the interests of computer scientists.

One book with good online support is the Art of Problem Solving book on
Counting and Probability.

[http://www.artofproblemsolving.com/Store/viewitem.php?item=i...](http://www.artofproblemsolving.com/Store/viewitem.php?item=intro:counting)

MIT OpenCourseware has a mathematics for computer science course.

[http://ocw.mit.edu/courses/electrical-engineering-and-
comput...](http://ocw.mit.edu/courses/electrical-engineering-and-computer-
science/6-042j-mathematics-for-computer-science-spring-2010/)

Princeton has posted lecture notes for a similar course:

[http://www.cs.princeton.edu/courses/archive/spr10/cos433/mat...](http://www.cs.princeton.edu/courses/archive/spr10/cos433/mathcs.pdf)

ArsDigita University also posts math-learning resources online:

<http://aduni.org/courses/math/>

An Amazon guide to books for self-study and an Amazon list of favorite books
may also be helpful:

[http://www.amazon.com/gp/richpub/syltguides/fullview/R3NMQ39...](http://www.amazon.com/gp/richpub/syltguides/fullview/R3NMQ393VD5UAZ)

[http://www.amazon.com/Computer-Science-and-Math-books-
that-I...](http://www.amazon.com/Computer-Science-and-Math-books-that-I-
really-enjoy-reading/lm/RYORX8HPRBF6S)

------
rtperson
The SICP, from the chapters I've read, does not rely on mathematical
sophistication the way, say, Knuth does. There's a little bit of calculus, but
not much. If you've had a semester of calculus, you're probably more than well
prepared. If you haven't you can probably focus instead on the data structures
and algorithms.

Your best bet is just to grab a Scheme interpreter and dive in.

------
JSig
Whenever I need a refresher I go to Khan ->

<http://www.khanacademy.org>

------
d0m
If I remember well, the Math part is only in the first or second chapter to
illustrate some more abstract concepts. I'll simply suggest searching the web
if there's an algorithm or a math concept that you don't know about.
Furthermore, SICP does a great job at explaining the algorithm.

------
happy4crazy
Have you tried reading SICP without a math primer? What's your current math
background?

------
jdietrich
If you haven't already, consider HtDP instead. It is designed to require no
knowledge of mathematics beyond basic arithmetic. It fulfils a similar role to
SICP. It is often argued that HtDP is a weaker text than SICP, but I found it
a very useful course.

~~~
noahl
I disagree. I haven't read HtDP through, but it appears to be aimed more at
designing and modularizing algorithms, whereas SICP first covers different
ways to write an algorithm and then continues to different views of computing.

They get at somewhat different things, but I suspect that SICP talks about
more fundamental ideas than HtDP, and is therefore a better choice if you're
only going to read one of them. (If you're reading both, of course, do
whatever.)

