The text offers an introduction to the key ideas, basic analysis, and efficient implementation of discontinuous Galerkin finite element methods (DG-FEM) for the solution of partial differential equations. This is the first text on DG-FEM, suitable both as a textbook and for self study. All key theoretical results are either derived or discussed, including an overview of relevant results from approximation theory, convergence theory for numerical PDE's, orthogonal polynomials etc. Through embedded Matlab codes, the algorithms are discussed and implemented for a number of classic systems of PDE's. Attention is paid to both basic analysis and algorithmic issues. The three appendices contain an overview of orthogonal polynomials and associated library routines used throughout, a brief introduction to grid generation, and an overview of the associated software (where to get it, list of variables etc). A variety of exercises are included at the end of most chapters.