The commercial development of novel semiconductor devices requires that their properties be examined as thoroughly and rapidly as possible. These properties are investigated by obtaining numerical solutions of the highly nonlinear coupled set of equations which govern their behaviour. This book presents some of the mathematical and numerical techniques associated with the investigation. It begins with introductions to quantum and statistical mechanics. Later chapters then cover finite differences; multigrids; upwinding techniques; simulated annealing; mesh generation; and the reading of computer code in C++. The author explains how the methods can be adapted to the specific needs of device modelling, the advantages and disadvantages of each method, the pitfalls to avoid, and practical hints and tips for successful implementation. Sections of computer code are included to illustrate the methods used.