MATCALC is an easy-to-use interactive matrix calculation package designed for: easy solution of linear algebra and matrix problems involving either real or complex numbers, easy solution of systems of linear equations, teaching fundamental vector space and linear transformation ideas at university undergraduate level, teaching modern computational methods of linear and matrix algebra, polynomial arithmetic, solution of matrix-related problems such as finding zeroes of real or complex polynomials, linear least-squares fits of multivariable models, etc. Basic commands are included for entering matrices, matrix arithmetic, adjoining matrices, selecting matrix elements, selecting rows or columns, and for creating special matrices. Predefined functions and procedures are included for such problems as polynomial arithmetic, solving systems of linear equations, finding triangular factorizations, analysing row-echelon matrices, finding eigenvalues and eigenvectors, obtaining Jordan forms, and for obtaining singular-value decompositions. MATCALC includes full programming capabilities with facilities for logical relations and conditions, IF and LOOP blocks and user-defined functions and procedures. Users can also create their own configurations of MATCALC tailored to meet their specific requirements. They can easily create subsets of MATCALC by omitting selected predefined functions and procedures. They can also write their own functions and procedures in C and add them to MATCALC. The minimal configuration of MATCALC can be used as a desk calculator for matrix arithmetic or complex arithmetic. In this configuration it is suitable for users with a high school background in mathematics. In its full configuration the package has been used to do original research in mathematics, engineering and psychology. The minimum computing knowledge required to use MATCALC is a knowledge of how to log on and off a computer. MATCALC has been designed to bridge the gap which seems to exist between the methods currently taught in many linear algebra courses in Mathematics Departments and the modern computational methods used in standard software packages such as LINPACK and EISPACK. One reason for this gap is that the standard routines of LINPACK and EISPACK are designed for fast computation on non-singular systems, whereas many of the central problems of linear algebra courses lead immediately to singular problems. For example, fundamental vector space ideas such as span, linear dependence or independence, construction of a basis, dimension of a space or subspace etc. frequently lead to singular problems. A similar comment is applicable to eigenvalue and eigenvector problems. One of the important topics in most linear algebra courses is that of finding the Jordan form of a matrix. In software packages the possible existence of Jordan forms is ignored, presumably because the unavoidable rounding errors mean that a Jordan form ``never'' occurs. MATCALC recognizes the fact that triangular factorizations (such as the LU factorization and the QR factorization) are central to all modern computational methods. However, these factorizations have been specially adapted to handle singular matrices. Thus, the LU factorization of MATCALC produces a factorization into a lower triangular matrix and a row-echelon matrix, rather than the LINPACK factorization into lower and upper triangular matrices. The QR factorization has been similarly modified in MATCALC. Commands have been included to facilitate the analysis of these row-echelon matrices.