For a CS student, linear algebra is a pretty useful skill. And if you want an intro to it that uses CS idea in a big way, Philip Klein's introductory text and the associate Coursera course is pretty darned good. (Disclosure: Klein is a colleague of mine, and I advised him as he wrote the book/course, although he didn't always take my advice! Any profits go to him.)
Typical examples of vector spaces that he looks at:
The set of all maps from edges of a graph $G$ to $\mathbb Z / 2\mathbb Z$. This lets him talk about things like "independent sets of edges" and "loops in the graph" in linear algebra terms
The set of maps from the lights of a "Lights Out" game to $\mathbb Z / 2\mathbb Z$. Now each button-press can be represented as the addition of some vector to a given state of the game (which is a map from the lights to "Off/On"), and the question of whether a particular puzzle (initial setting of the lights) can be solved amounts to asking whether the initial state is a linear combination of the available button-press vectors, i.e., a linear-dependence question. Various approaches to solving this turn out to look like various flavors of row-reduction on a matrix.
Of course, he also considers vectors with real entries, or even complex-number entries. Pretty much everything he does is paralleled by implementation in Python.
There are applications to image processing, image compression, codes, and other CS-related topics.
The book restricts attention to finite-dimensional spaces, and tends to avoid discussing determinants (but not inverses!); otherwise, it covers much the same material as most linear algebra courses. The one major distinction is that rather than starting from $\mathbb R^n$, whose elements you can think of as "maps from $\{1, \ldots, n\}$ to $\mathbb R$, he starts from "maps from an arbitrary finite set $S$ to $\mathbb R$". This point of view is really valuable in CS applications, but may surprise mathematicians who are used to a different presentation.