The problem I see is that we treat computer science as something you eventually get round to learning once you've already taken some preliminary steps with coding, and even then it's something to be looked at late into high school or at university. Code is the awesome tool that motivates learning, but I wonder if the process is taught the wrong way round. Could it be done a little compsci first, then code?
I started a series of blog posts trying to introduce the non-technical reader to the fundamentals of computer science in plain english: http://lifebeyondfife.com/tag/compsci-in-plain-english/. Still a work in progress, I'm trying to keep it interesting and explain why computer science is important at the same time.