A Course in Computational Algebraic Number Theory
It's one thing to read a theorem, another to be confident to apply it. When I was learning math in university, it was the same. Theorems, axioms and definitions by the truckload, but exercises - nada. In reality it all comes down to applying math.
Prerequisites. The mathematical prerequisites are minimal: no particular mathematical
concepts beyond what is taught in a typical undergraduate calculus
sequence are assumed.
The computer science prerequisites are also quite minimal: it is assumed that the
reader is proficient in programming, and has had some exposure to the analysis of
algorithms, essentially at the level of an undergraduate course on algorithms and
Even though it is mathematically quite self contained, the text does presuppose
that the reader is comfortable with mathematical formalism and also has
some experience in reading and writing mathematical proofs. Readers may have
gained such experience in computer science courses such as algorithms, automata
or complexity theory, or some type of “discrete mathematics for computer science
students” course. They also may have gained such experience in undergraduate
mathematics courses, such as abstract or linear algebra. The material in these mathematics
courses may overlap with some of the material presented here; however,
even if the reader already has had some exposure to this material, it nevertheless
may be convenient to have all of the relevant topics easily accessible in one place;
moreover, the emphasis and perspective here will no doubt be different from that
in a traditional mathematical presentation of these subjects
An alternative if you're willing to spend a little is How to Prove It by Daniel J. Velleman, also available from Amazon and probably many other retailers. Both books cover roughly the same topics.
The other big stream of basic undergraduate mathematics is analysis. For that I recommend Spivak's Calculus.
I've found other branches of math to be much easier to understand if you have basic knowledge about calculus.
"Although the text requires not much specific mathematical background, I would hesitate to use it except in an advanced class, or for students whose mathematical ability was already high. The material moves swiftly – while never compromising rigour – and the multiple strands assume considerable ability on the part of the reader."
Math textbooks must be reviewed by an expert; yet it's impossible for an expert to see them as a beginner would. If they can see it's difficult for a beginner, it definitely is...
This is also a nice complementary book.