This book tells about CRT, its background and philosophy, history, generalizations and, most importantly, its applications. The book is self-contained. This means that no factual knowledge is assumed on the part of the reader. We even provide brief tutorials on relevant subjects, algebra and information theory. However, some mathematical maturity is surely a prerequisite, as our presentation is at an advanced undergraduate or beginning graduate level. We have tried to make the exposition innovative, many of the individual results being new. We will return to this matter, as well as to the interdependence of the various parts of the book, at the end of the Introduction.
A special course about CRT can be based on the book. The individual chapters are largely independent and, consequently, the book can be used as supplementary material for courses in algorithmics, coding theory, cryptography or theory of computing. Of course, the book is also a reference for matters dealing with CRT.