This book gives a comprehensive introduction to computer algebra together with advanced topics in this field. It provides a detailed coverage of the mathematics of computer algebra as well as a step-by-step guide to implement a computer algebra system in the object-oriented language C++. The used tools from C++ are introduced in detail. Numerous examples from mathematics, physics and engineering are presented to illustrate the system's capabilities. Computer algebra implementations in LISP and Haskell are also included. In addition, gene expression programming and multiexpression programming with applications to computer algebra are introduced.