Kronecker product
The Kronecker product A (x) B is the concrete matrix that realizes the tensor product of two linear maps. If A is m-by-n and B is p-by-q, then A (x) B is the (m*p)-by-(n*q) block matrix whose (i,j) block is the scalar A[i,j] times the whole matrix B. It is the coordinate face of (x): pick bases, and the abstract tensor product of operators becomes this explicit big matrix.
Its algebra is clean and worth memorizing. It is bilinear and associative, mixed products multiply blockwise via (A (x) B)(C (x) D) = (A*C) (x) (B*D), and transpose distributes: (A (x) B)^T = A^T (x) B^T. From the mixed-product rule you get inverses, (A (x) B)^-1 = A^-1 (x) B^-1, with no surprises.
Spectra combine multiplicatively. If A has eigenvalues lambda_i and B has eigenvalues mu_j, then A (x) B has eigenvalues lambda_i * mu_j for all pairs, and singular values multiply the same way. This is the matrix shadow of the fact that dim(V (x) W) = dim V * dim W and explains why Kronecker structure makes huge problems tractable.
Its workhorse identity links matrices and vectors: vec(A*X*B) = (B^T (x) A) * vec(X), where vec stacks the columns of a matrix into one long vector. This turns the linear matrix equation A*X + X*B = C (a Sylvester equation) into an ordinary linear system in vec(X), and it is the backbone of how control theory and numerical PDE solvers handle such equations.
The Kronecker product replaces every entry of A by that entry times the whole matrix B.
Order matters: A (x) B is generally not equal to B (x) A, though the two are related by a permutation (a 'perfect shuffle') of rows and columns. And det(A (x) B) = det(A)^p * det(B)^n for A n-by-n and B p-by-p, again from eigenvalues multiplying.