In many applications\,---\,latent semantic indexing, for example\,---\,it is required to obtain a reduced rank approximation to a sparse matrix $A$. Unfortunately, the approximations based on traditional decompositions, like the singular value and QR decompositions, are not in general sparse. Stewart [{\it Numer.\ Math.}\ 83 (1999) 313--323] has shown how to use a variant of the classical Gram--Schmidt algorithm, called the quasi--Gram-Schmidt--algorithm, to obtain two kinds of low-rank approximations. The first, the SPQR, approximation, is a pivoted, Q-less QR approximation of the form $(XR_{11}\inv)\brv{cc}R_{11}&R_{12} \erv$, where $X$ consists of columns of A. The second is of the form the form $A \cong XTY\trp$, where $X$ and $Y$ consist of columns and rows $A$ and $T$ is small. In this paper we treat the computational details of the algorithm and describe a Matlab implementation. (UMIACS-TR-2004-35)