Isogeometric analysis (IGA) is a fundamental step forward in computational mechanics that offers the possibility of integrating methods for analysis into Computer Aided Design (CAD) tools and vice versa. The benefits of such an approach are evident, since the time taken from design to analysis is greatly reduced leading to large savings in cost and time for industry. The tight coupling of CAD and analysis within IGA requires knowledge from both fields and it is one of the goals of the present paper to outline much of the commonly used notation. In this manuscript, through a clear and simple Matlab® implementation, we present an introduction to IGA applied to the Finite Element (FE) method and related computer implementation aspects. Furthermore, implementation of the extended IGA which incorporates enrichment functions through the partition of unity method (PUM) is also presented, where several fracture examples in both two-dimensions and three-dimensions are given as illustration. The open source Matlab® code which accompanies the present paper can be applied to one, two and threedimensional problems for linear elasticity, linear elastic fracture mechanics, structural mechanics (beams/plates/shells including large displacements and rotations) and Poisson problems with or without enrichment. It also implements the Bézier extraction concept that allows FE analysis to be performed on T-spline geometries. An attempt was also made to include a review of recent developments of IGA.