I'd argue that you start learning programming concepts in everyday life, early on, just nobody explains them to you.
The lunch line at school. Line Up, first in, first out. Right? -Array/Vector (depending on if you know the number of kids in line, like a single class of, say, 30 or if kids just all get in a line together.) What about "Budging", kids getting kicked out of line for bad behaviors....
For the cafeteria workers this is a While Loop - While there are kids in line, serve them.
I can think of so many everyday life happenings that would teach kids computer science fundamentals if presented in such a manner to them.
I have used: http://www.amazon.com/Hello-World-Computer-Programming-Begin... (Not an affiliate link, FYI)