The only reason I didn't finish this book is because a quick flip-through told me I'll be buying it for myself. Suitable for older teens through curious adults, this manual uses Scratch 2, the web-based visual programming product from MIT, to create all sorts of neat animations and designs. Scratch has been hailed as a great way to learn programming concepts visually, without all the weird, jargony rules you tend to get in Python, C++, or Java. Dragging and dropping a bunch of blocks around and making kittens dance is a hell of a lot more fun (and better for visual and kinesthetic learners, to boot).
The nine chapters here are hands-on walkthroughs of the Scratch environment and everything you can do in it. Programming concepts covered include procedures variables, loops, string processing, lists, and decision-making. You can download a whole bunch of neat supplementary stuff from the companion website, there's a great appendix on sharing and collaboration that will appeal to classroom teachers and homeschooling parents (definitely pick this up if you want to teach your kids computer science in homeschool but don't know the first thing about it yourself).
I've used Scratch before, and adore it. So far I've designed a game where you try to hit a bat with baseballs (see what I did there?). However, I'd love to kick it up a notch, so on the list this goes. Recommended for all teen collections and larger adult computer science collections.