I had to explain tensor products to several of my developer friends and realized that they found the rigorous approach somewhat obstructive. When I recast the subject in terms of functional programming (specifically, the pattern of currying), the group seemed to understand better.
Tensors are a "hot topic" in modern computing (AI, tensorflow, etc.), but it's surprising how many practicing computer scientists (or data scientists) think of tensors as "n-dimensional arrays" instead of "multilinear maps". Most of the modern mathematical theory emphasizes the latter viewpoint, though some texts (such as Goodfellow's Deep Learning) land in the middle. Goodfellow does adopt an unusual convention for Einstein summation, but that's a subject for a different post...
Thanks for reading. Let me know if there is anything in the post I might clarify!
One benefit of adopting the currying view is that you also introduce the Tensor-Hom adjunction (since currying is itself just the corresponding non-linear adjunction on the category Set).
That being said, understanding the universal property of tensor products is also fairly important.
Tensors are a "hot topic" in modern computing (AI, tensorflow, etc.), but it's surprising how many practicing computer scientists (or data scientists) think of tensors as "n-dimensional arrays" instead of "multilinear maps". Most of the modern mathematical theory emphasizes the latter viewpoint, though some texts (such as Goodfellow's Deep Learning) land in the middle. Goodfellow does adopt an unusual convention for Einstein summation, but that's a subject for a different post...
Thanks for reading. Let me know if there is anything in the post I might clarify!