I am a Ph. D. in education and have been looking for a good computer programming book for kids.  Based on all my years of experience with how students learn, I wanted a book that would teach programming concepts without making huge leaps from one concept to another.  I had bought another "basic" programming book before and chapters 1-4 were great and then in chapter 5, the leap was huge and any child trying to learn from it would get lost!  This book uses appropriate teaching strategies to help children understand the concepts in programming.  It links each concept to a real world example that the student can relate to (this is very important in the learning process.)  For example, when explaining the differences in programming syntax among languages in chapter 1 - a basic concept, it shows the parallel between that and the different syntax in 4 different spoken languages.  When teaching the idea of binary, it explains it as open and closed roads.  For each concept, there is a real world link which is the best way for children to learn.  The book provides codes from different languages although seems to use C++ mostly, however, the purpose of the book is not to teach syntax but concepts in programming.  It is the perfect book for someone to read before they start to code.  It allows them to learn about different data types, strings, arrays, functions, loops, recursion, etc.  Although code is given to demonstrate, the idea is to teach the purpose of these data structures.  The best approach would be to go through this book first and then pick up a book that actually has you start working with actual code and writing programs.  Although this book says Computer Programming for Teens, it could be used for any age student with enough maturity to and interest to begin learning programming.  Many kids are able to start learning these ideas much earlier than the "teen" years.