It is the first text that in addition to standard convergence theory treats other necessary ingredients for successful numerical simulations of physical systems encountered by every practitioner. The book is aimed at users with interests ranging from application modeling to numerical analysis and scientific software development. It is strongly influenced by the authors research in in space physics, electrical and optical engineering, applied mathematics, numerical analysis and professional software development. The material is based on a year-long graduate course taught at the University of Arizona since 1989. The book covers the first two-semesters of a three semester series. The second semester is based on a semester-long project, while the third semester requirement consists of a particular methods course in specific disciplines like computational fluid dynamics, finite element method in mechanical engineering, computational physics, biology, chemistry, photonics, etc. The first three chapters focus on basic properties of partial differential equations, including analysis of the dispersion relation, symmetries, particular solutions and instabilities of the PDEs; methods of discretization and convergence theory for initial value problems. The goal is to progress from observations of simple numerical artifacts like diffusion, damping, dispersion, and anisotropies to their analysis and management technique, as it is not always possible to completely eliminate them. In the second part of the book we cover topics for which there are only sporadic theoretical results, while they are an integral part and often the most important part for successful numerical simulation. We adopt a more heuristic and practical approach using numerical methods of investigation and validation. The aim is teach students subtle key issues in order to separate physics from numerics. The following topics are addressed: Implementation of transparent and absorbing boundary conditions; Practical stability analysis in the presence of the boundaries and interfaces; Treatment of problems with different temporal/spatial scales either explicit or implicit; preservation of symmetries and additional constraints; physical regularization of singularities; resolution enhancement using adaptive mesh refinement and moving meshes.