"The book is presented in a very accessible fashion. The authors give many examples illustrating the notations and problems considered, making the learning easier. Every chapter ends with exercises, both theoretical and programming. The book is suitable for upper-level computer science/math/physics undergraduate students with at least basic programming skills and at least elementary understanding of linear algebra and calculus."—Krzystof Gdawiec, in Zentralblatt MATH 1308, 2015