Since I got my bachelor degree in computer science in 2005, I have rarely been in touch with or even need to do any significant mathematical calculations. I have consequently lost most of my math skills and knowledge. I am now a postgraduate student and I need to revive them.

Any suggestion for a good math book, particularly those most relevant to computer science, will be deeply appreciated.

  • 1
    $\begingroup$ You didn't really mention what math skills you used to have. $\endgroup$ – Seth Oct 11 '14 at 11:43
  • $\begingroup$ Nothing in particular. I just need to revive all the basic and fundamental skills that you would expect any computer "scientist" to be equipped with. $\endgroup$ – Sultan Abraham Oct 11 '14 at 11:47

For a CS student, linear algebra is a pretty useful skill. And if you want an intro to it that uses CS idea in a big way, Philip Klein's introductory text and the associate Coursera course is pretty darned good. (Disclosure: Klein is a colleague of mine, and I advised him as he wrote the book/course, although he didn't always take my advice! Any profits go to him.)

Typical examples of vector spaces that he looks at:

  • The set of all maps from edges of a graph $G$ to $\mathbb Z / 2\mathbb Z$. This lets him talk about things like "independent sets of edges" and "loops in the graph" in linear algebra terms

  • The set of maps from the lights of a "Lights Out" game to $\mathbb Z / 2\mathbb Z$. Now each button-press can be represented as the addition of some vector to a given state of the game (which is a map from the lights to "Off/On"), and the question of whether a particular puzzle (initial setting of the lights) can be solved amounts to asking whether the initial state is a linear combination of the available button-press vectors, i.e., a linear-dependence question. Various approaches to solving this turn out to look like various flavors of row-reduction on a matrix.

Of course, he also considers vectors with real entries, or even complex-number entries. Pretty much everything he does is paralleled by implementation in Python.

There are applications to image processing, image compression, codes, and other CS-related topics.

The book restricts attention to finite-dimensional spaces, and tends to avoid discussing determinants (but not inverses!); otherwise, it covers much the same material as most linear algebra courses. The one major distinction is that rather than starting from $\mathbb R^n$, whose elements you can think of as "maps from $\{1, \ldots, n\}$ to $\mathbb R$, he starts from "maps from an arbitrary finite set $S$ to $\mathbb R$". This point of view is really valuable in CS applications, but may surprise mathematicians who are used to a different presentation.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.