I like Doug West's book called Introduction to Graph Theory. It's a breadth book, covering the basics including cycles, paths, trees, matchings, covers, planarity, and coloring. There are algorithms covered like Dijkstra, Kruskal, Ford-Fulkerson, Bipartite Matching, Huffman Encodings, and the Hungarian algorithm. There is also a lot of relevant theory you will want.
You also get topics like spectral graph theory, random graphs, and matroids if you want to cover them. I like that it has an appendix with a bunch of NP-Completeness proofs as well. Those are a really good reference to have as a CS person.
I come from a CS background but am majoring in math, so I have a healthy appreciation for both. Hopefully this helps.
On a side note- if you come across the Alan Tucker Applied Combinatorics text, you should pass on it. I didn't like it very much. It has good problems, but not very good explanations.
Best Answer
I would recommend Reprentations and Characters of Groups by Liebeck and James (a word to the wise though, the notation is all backwards for some reason! e.g if memory serves correct, $\phi(x)$ is written $(x)\phi$ etc). I found what I read of Linear Representations of Finite Groups by Serre to be nice to, if not harder. When I was studying Group Rep I found these two sets of notes to be useful also:
http://www2.imperial.ac.uk/~epsegal/repthy/Group%20representation%20theory.pdf
http://tartarus.org/gareth/maths/notes/ii/Representation_Theory.pdf
Again the second recommendation being harder than the first.