This innovative study presents concepts and problems in soil physics, and provides solutions using original computer programs. It provides a close examination of physical environments of soil, including an analysis of the movement of heat, water and gases. The authors employ the programming language Python, which is now widely used for numerical problem solving in the sciences. In contrast to the majority of the literature on soil physics, this text focuses on solving, not deriving, differential equations for transport. Using numerical procedures to solve differential equations allows the solution of quite difficult problems with fairly simple mathematical tools. Numerical methods convert differential into algebraic equations, which can be solved using conventional methods of linear algebra. Each chapter introduces a soil physics concept, and proceeds to develop computer programs to solve the equations and illustrate the points made in the discussion. Problems at the end of each chapter help the reader practise using the concepts introduced. The text is suitable for advanced undergraduates, graduates and researchers of soil physics. It employs an open source philosophy where computer code is presented, explained and discussed, and provides the reader with a full understanding of the solutions. Once mastered, the code can be adapted and expanded for the user's own models, fostering further developments. The Python tools provide a simple syntax, Object Oriented Programming techniques, powerful mathematical and numerical tools, and a user friendly environment.