This book presents a comprehensive description of theory, algorithms and software for solving nonconvex mixed integer nonlinear programs (MINLP). The main focus is on deterministic global optimization methods, which play a very important role in integer linear programming, and are used only recently in MINLP. The presented material consists of two parts. The first part describes basic optimization tools, such as block-separable reformulations, convex and Lagrangian relaxations, decomposition methods and global optimality criteria. Some of these results are presented here for the first time. The second part is devoted to algorithms. Starting with a short overview on existing methods, deformation, rounding, partitioning and Lagrangian heuristics, and a branch-cut-and-price algorithm are presented. The algorithms are implemented as part of an object-oriented library, called LaGO. Numerical results on several mixed integer nonlinear programs are reported to show abilities and limits of the proposed solution methods. The book contains many illustrations and an up-to-date bibliography. Because of the emphasis on practical methods, as well as the introduction into the basic theory, it is accessible to a wide audience and can be used both as a research as well as a graduate text.