What Vol I left on the table
A linear map eats one vector and is recorded by a matrix; a dot product eats two vectors and is linear in each separately. That second kind of object — linear in each slot when the others are frozen — is a multilinear map. Vol I never gave it a home of its own; we always reduced bilinear forms to a matrix B with f(u,v) = u^T B v. That works for forms into the scalars, but not for maps whose output is itself a vector.
The big idea of Vol II: instead of studying multilinear maps directly, build a single space V tensor W so that every bilinear map out of V x W becomes an ordinary linear map out of V tensor W. We trade a hard kind of map for an easy kind on a bigger space.
The universal property, in words
The universal property says: there is a space V tensor W and a bilinear map (v,w) -> v tensor w into it such that for any bilinear map f: V x W -> U there is a unique linear map f-tilde: V tensor W -> U with f(v,w) = f-tilde(v tensor w). In one slogan: V tensor W is the universal recipient of bilinear maps.
The elements v tensor w are the simple (decomposable) tensors. They span V tensor W but are not the whole space — a general tensor is a sum of simple ones, just as a general matrix is a sum of rank-one matrices. Holding onto that analogy now pays off everywhere later.
A basis-level construction
Concretely, if {e_1,...,e_m} is a basis of V and {f_1,...,f_n} of W, then {e_i tensor f_j} is a basis of V tensor W, so dim(V tensor W) = m*n — multiplication, not addition (contrast dim(V + W) = m + n). The simple tensor v tensor w has coordinates that are exactly the outer product of the coordinate vectors.
V = R^2 (basis e1,e2), W = R^3 (basis f1,f2,f3)
V (x) W has dim 2*3 = 6, basis {e_i (x) f_j}.
Take v = (3, -1) and w = (2, 0, 5).
The simple tensor v (x) w is the OUTER PRODUCT v w^T:
[ 3*2 3*0 3*5 ] [ 6 0 15 ]
v w^T = [ -1*2 -1*0 -1*5 ] = [ -2 0 -5 ]
Read off coordinates in basis {e_i (x) f_j}:
coeff of e1(x)f1 = 6, e1(x)f3 = 15, e2(x)f1 = -2, e2(x)f3 = -5,
the rest are 0.
NOT every 2x3 array is simple: [1 0; 0 1; ...] style arrays of rank > 1
require a SUM of simple tensors. Matrix rank = number of simple terms needed.