I'm not necessarily drawing a direct parallel here, but this example of teaching programming through the concrete example of telling a story reminded me of this paper[1], in which the authors show that teaching math through abstract concepts leads to better understanding of material than teaching through several concrete examples in undergraduate students.
I'm not going to get the abstract unless you start with a concrete example and then head for abstract territory. "Learning abstraction" is memorization. Until you can tie it in to something real, the concepts aren't. Coincidentally, I suspect this is the difference between "computer scientists" and "programmers."
hackers learn by tinkering :). I'd personally learn as little as possible in a way suggested by the paper. I'll do it even if it takes 3x longer, because for me it is more fun to learn by tinkering. I'll learn the deep stuff after I get my feet wet. The real question is what fraction of the class has the patience to soak in the abstraction for years together so that they can apply it once they have have become experts.
I've also encountered people who prefer abstraction over concreteness and it works for them. So the best is for each student to learn according to his preferred style. I hope courses like udacity and coursera slowly evolve into something where each student learns by his/her preferred method.
There is a reason we don't start with the most complex. Learning a language like this teaches you symbolic manipulation. Each word is a variable. You intuitively get that as you start playing around with it.
[1]: Kaminski et al., "The Advantage of Abstract Examples in Learning Math", 2008 — http://www.physics.emory.edu/~weeks/journal/454.pdf