Analogy for covariant and contravariant tensors I have been trying to grasp the difference between covariant and contravariant tensors in a somewhat qualitative way. This analogy popped into my mind and I wanted to check whether I'm on the right track. In Gulliver's Travels by Jonathan Swift, Gulliver finds himself in a land where the dimensions of the people have shrunk (Lilliputians) and he is, relatively speaking, a giant. It appears to me that if this new land is seen as a new coordinate  system, Gulliver's enlarged size would be analogous to a contravariant tensor. The Lilliputians, on the other hand, are relatively small and individually can only exert small forces. A small force exerted in a small dimension would be a covariant force.
    I would be interested in someone else's take on this. Would it be a useful teaching tool?    
 A: I think my favorite way to introduce covariant and contravariant vectors (not tensors! tensors are a mix...) is to think about skewed coordinate systems. Suppose you have a non-cubic crystal lattice or other phenomenon where you want to express nice properties but the principal axes in which your tensor is "nice" are not orthogonal. Then you might want to use skewed coordinates $\hat s_i$ such that $\vec v = \sum_i v^i~\hat s_i$ but without the implication that $\hat s_i\cdot\hat s_j = \delta_{ij}$ that makes the coordinates orthogonal. Then what we want to introduce is a dual lattice of vectors $\hat r^i$ such that $\hat r^i \cdot \hat s_j = \delta^i_j,$ in other words $\hat r^1$ is chosen to be a scaled version of $\hat s_2 \times \hat s_3,$ scaled so that its dot product with $\hat s_1$ is 1: then it is orthogonal to these other two vectors but not necessarily parallel to the one that it is dual to, since the original vectors are skewed.
Then we know that $\hat r^i \cdot \vec v = v^i$ and we can also imagine that $\vec v = \sum_i v_i ~\hat r^i$ with the $v_i = \hat s_i \cdot \vec v.$ And then we finally combine these two to find that $$v_i = \sum_j \hat s_i \cdot \hat s_j ~ v^j$$whence we define the metric tensor $g_{ij} = \hat s_i \cdot \hat s_j$ as the canonical way to "lower" indices. And this is good because the dot product cannot be expressed as $\vec u \cdot \vec v = u^1 v^1 + u^2 v^2 + u^3 v^3$ anymore, but we have to write it out with the distributive law as: $$\vec u \cdot \vec v = \sum_{ij} u^i~v^j~~\hat s_i\cdot\hat s_j = g_{ij}~u^i~v^j = u_i~v^i=u^i~v_i.$$
So while I'm really partial to just doing this in algebraic terms and invoking abstract-index notation and $\mathcal V$ is a set of linear maps from the "nice" scalar fields $\mathcal S$ to either $\mathbb R$ or $\mathbb C$ obeying a suitable Leibniz law, while $\mathcal V^\dagger$ is the set of linear maps from $\mathcal V$ back to $\mathcal S$, it kind of is an "I'm going to club you over the head with abstract mathematics" approach. In the skewed-coordinate introduction you can hold a student's hand through each part, "these $v_i$ are real numbers, but hey, look, we better not add them to anything like $v^i$ because these are components in this basis, and those are components in that basis, and so that's why we keep them separate!" It is a much more incremental and gentle approach to the field.
