I like the idea of using the term "neighbourhood" and the notation $f(M)$ for a function $f$ and set $M$. So we have the definition: for all neighbourhoods $N$ of $f(x)$there is a neighbourhood $M$ of $x$ such that $f(M) \subseteq N$. Then you can draw pictures of the actual sets that are being mapped. Part of the psychological problem with an $\varepsilon$-$\delta$ proof is that these are measures of the size of the neighbourhood rather than the actual neigbourhood. For particular proofs you need the numbers. This also relates to the idea that the neighbourhood definition of a topology is the most intuitive, even if you need of course to bring in the equivalent definitions in terms of open or closed sets. Motivated by the idea of "reverse chaining" in the psychology of learning, we used the idea of "fill-in proofs". Take a proof that the product of limits is a limit, rub out bits, and ask the students to fill in the missing bits using clues that you have left from the rest of the proof. So the _structure_ of the proof is given. This is analogous to the way a professional works, get the structure first, then fill in the details. Also these exercises are very easy to mark!