Intuitionistic type theory can be described, somewhat boldly, as a fulfillment of the dream of a universal language for science. In particular, intuitionistic type theory is a foundation for mathematics and a programming language. This book expounds several aspects of intuitionistic type theory, such as the notion of set, reference vs. computation, assumption, and substitution. Moreover, the book includes philosophically relevant sections on the principle of compositionality, lingua characteristica, epistemology, propositional logic, intuitionism, and the law of excluded middle. Ample historical references are given throughout the book.