I have taught a course on quantum computing a few times, mostly to CS students who have no background in quantum mechanics. The way I proceed is to<p>* First introduce classical reversible computation. I model it using linear algebra, meaning classical n-bit states are 2^n length binary vectors, and the gates are 2^n x 2^n binary matrices acting on theses states. Exponential, yes, but a faithful model. The critical feature here is that you already need the tensor product structure. Rather than some unique feature of quantum.<p>* Introduce probabilistic classical computation. Now the states/vectors have real entries in [0,1] and obey the L1 norm (the critical feature). Similarly, the gate matrices.<p>* Now, argue that quantum computing just requires the same linear algebriac structure but we (1) work over the complex number field, (2) norm is L2.<p>The reason I like this development is that it takes at least some of the mystery out of quantum mechanics. It is not a strange model of computation, completely divorced from classical. Just a variant of it, that happens to be the one the universe runs on.<p>Peter Shor does discuss classical computation in two lectures, but from just the notes it seems detached from the rest of the course.