Geometric intuition behind pullback? I am having hard time with forming a geometric intuition of pullback and pushforward.
The definition the book gives is like this: There are two open sets, $A$ and $B$. There is a dual transformation of forms $\alpha^*$ between the forms on $A$ and $B$. Given a $0$-form $f:B\to\Bbb R$, $(\alpha^*f)(x)=f(\alpha(x))$. Then given an $k$ form $\omega$ on $B$, the book does on to define the k form $\alpha^*\omega$ the same way. I cannot get the geometric intuition behind all there. Can someone please help me with it? Any intuition would be hugely beneficial.
I am using Munkres "analysis on manifolds"
Thanks in advance!
 A: Suppose you have a map $\alpha: A \rightarrow B$. There are certain associated items that "go forward" or "go backwards":
Points are sent forward. Given $p \in A$ we have $\alpha(p) \in B$.
Functions are sent back, i.e. pull back from $B$ to $A$. If we have a function $f: B \rightarrow \mathbb{R}$ then we get the composition $f \circ \alpha : A \rightarrow \mathbb{R}$.
Vectors are send forward. Given $v \in TA_p$ we have the derivative map $d\alpha_p: TA_p \rightarrow TB_{\alpha(p)}$ (or maybe your book calls this $\alpha_*$; in coordinates it's just the derivative matrix). So we get $d\alpha_p(v) \in TB_{\alpha(p)}$.
One-forms give linear functionals on each tangent space; that is, they're functions which take vectors as input. As such, just like functions, they're sent back. If we have a one-form $\omega$ on $B$, then we get $\omega_q : TB_q \rightarrow \mathbb{R}$. So given $p \in A$ with $\alpha(p) = q$ we get $\omega_q \circ d\alpha_p : TA_p \rightarrow \mathbb{R}$ is a linear functional on $TA_p$. We get a one-form on $A$ this way.
Basically, geometric objects "go forward" and functions on them "go back."
A: I think of it like this:  If you have a mapping $\alpha: A \to B$, you would like to use it to transfer infrastructure like real-valued functions, vector fields, $k$-forms, etc, between $A$ and $B$.  The mapping $\alpha$ already lets you assign to each point $x \in A$ an associated point $y= \alpha(x) \in B$, but you'd like to use it to form associations between functions and more.  
The pullback/pushforward catch is that the association does not always run in the same direction.  The mapping $\alpha$ takes points in $A$ and maps them to points in $B$, but for functions, the induced association which is the one you gave goes the other way, namely
$\alpha^*: C^{\infty}(B) \to C^{\infty} (A)$
$f \mapsto \alpha^*f$, where the new function $\alpha^*f$ is defined by $(\alpha^*f)(x) \equiv (f \circ \alpha) (x)$.
Because the induced mapping $\alpha^*$ runs in the reverse direction ($B$ to $A$) as $\alpha$ does ($A$ to $B$), it is known as a pullback.  It helps to draw a picture.  Here is one from Baez and Muniain's wonderful book Gauge Fields, Knots, and Gravity, which I highly recommend for this topic as well as many others.  Note that the following correspondence holds between their notation and yours:
Yours  $\longleftrightarrow$  Theirs
$A \longleftrightarrow M $
$B \longleftrightarrow N $
$\alpha \longleftrightarrow \varphi $

In the case of vector fields, these can be viewed as directional derivatives in a given direction at each point say of $A$, so a vector $v$ on $A$ should map functions $g$ defined on $A$ to scalars.  We can use our already established pullback $\alpha^*$ that maps $C^{\infty}(B)$ to $C^{\infty}(A)$ to define a pushforward of the vector $v$ on $A$ to a vector $\alpha_*v$ on $B$, by
$(\alpha_*v)f \equiv v (\alpha^*f)$
since $v$ (which we already have) eats functions on $A$ to give a scalar, and we've fed it just that ($\alpha^*f$).  Whatever scalar it gives, we take to be the result of applying $\alpha_*v$ to $f$.
From here, the recursive definitions continue, alternating between pullbacks and pushforwards.  For example, the next step would be to define a pullback for 1-forms from $B$ to $A$ by thinking of them as things that eat vectors and give numbers, and using the pushforward for vectors analogously to how we just used the pullpack for functions in our definition of the pushforward for vectors.
A: Hope the following simplified picture helps:

$f$ is a smooth function from $B$ to $\mathbb{R}$. $\alpha$ is a map from $A$ to $B$. If $\alpha$ maps an open set $X$ to $\alpha(X)$, and $f$ maps that to some set in $\mathbb{R}$, we can see the pullback as the function that maps $X$ to $\mathbb{R}$. It is the composition of $f$ and $\alpha$. So for each smooth function $f$ on $B$, you pull it back through $\alpha$ to make a function on $A$.
