One of the courses I was taking during my third year of undergraduate studies was a full-year Abstract Algebra course, covering among others ring theory and Galois theory in great detail. The course was a requirement for my program, and it was one of the few courses that I was not sure at all I’d enjoy. It turned out that many of my friends in Math enjoyed it, but I didn’t. I felt no, or very few connections with Computer Science (later I discovered through friends that if you study advanced complexity theory and theoretical Computer Science it will be very useful), and as a result I started feeling unmotivated.

At some point during the same year I found a book called “Mathematics and Technology” by Christiane Rousseau and Yvan Saint-Aubin. This book was different, extremely refreshing and motivating. Each chapter is a technological problem that has been solved via applied mathematics. For instance, it presents the math behind: the trilateration of the GPS, the motion of a robotic arm in 3D, error correcting codes, public-key cryptography, Google’s PageRank algorithm, why MP3‘s are sampled at 44.1Khz, the JPEG compression standard, the DNA computer (super-cool chapter!), and many other applications. The book is simply a collection of really interesting problems, accompanied by the mathematical background and principles that allow the reader to understand the basic solutions to those problems. It’s not a perfect or comprehensive book by any means, but it is a beautiful one, in the sense that every chapter is a nicely-told story and the provided theory is strongly tied to each application. I think the mathematical maturity it requires is at most that of a 3rd year undergraduate student in math, though I’m sure you could understand most of it with a basic Calculus and Linear Algebra background.