This question arose in the discussion of my previous post, but deserves a place to itself because (in my opinion, which I shall try to justify) it involves different issues. For example, how does one explain the point of the abstract notion of finite-dimensional vector spaces when, unlike with groups, you don’t seem to have an interesting collection of different spaces? Why not just use ? I addressed this point on my home page here, so won’t discuss it further on this post. But another point, which was raised in the previous discussion, concerns the relationship between theory and computation. I think it’s pretty uncontroversial to say that if you don’t know how to invert a matrix, or extend a linearly independent subset of to a basis, then you don’t truly understand linear algebra, even if you can state and prove conditions for a linear map to be invertible and can prove that every linearly independent set extends to a basis. Equally, as was pointed out, if you can multiply matrices but don’t understand their connection with linear maps, then you don’t truly understand matrix multiplication. (For example, it won’t be obvious to you that it is associative.) But how does one get people to understand the theory, be able to carry out computations, and see the links between the two? This is another situation where my own experience was not completely satisfactory: I’d be taught the theory in lectures and given computational questions to do, as though once I knew the theory I’d immediately see its relevance. But in fact I found the computational questions pretty hard, and some of the links to the theory were things I didn’t appreciate until years later and I found myself having to explain the subject to others.