Book Review: Programming and Python for Kids
Today's book review is by guest blogger Patrice Gans, a technology teacher and library-media specialist at Fraser Woods Montessori School in Newtown, Conn. She is a member of the Computer Science Teacher Association for whom she is currently the National K-8 representative, chair of the K-8 task force, and vice president of the CSTA Connecticut chapter. She is also a member of the Connecticut Educators Computer Association.
By guest blogger Patrice Gans
Jason Briggs' new book, Python for Kids: A Playful Introduction to Programming (No Starch Press, 2012), could not have hit the market at a better time. In recent weeks, thanks to the newly released short film, Code Stars, created by the nonprofit organization, www.code.org, attention has been focused on the imperative that all students should learn to "code."
Briggs' book aims to make computer programming accessible to children ages 10 and up. Using child-friendly examples and detailed instructions, the book guides the novice programmer through the basics of creating computer code using the Python programming language. The ultimate enticement, creating a game complete with engaging computer graphics, awaits the patient reader who successfully navigates the book from beginning to end. With sample code and programming exercises, the book gives the reader a good basic introduction to such computer science concepts as conditions, loops, functions, and lists. It also includes comprehensive directions for installing Python. Each chapter ends with a collection of programming puzzles, whose answers can be found online at the book's companion website.
The impetus to learn to code has its roots in the ever-increasing rise in computer usage among 8- to 18-year-olds. According to the Pew Research Center's Pew Internet & American Life Project, 95 percent of teens ages 12-17 use the Internet compared with 85 percent of all adults. The prevalence of computer use is equally high for children ages 5-12.
Given these statistics, the potential for learning through the use and creation of computer games has drawn a lot of attention. According to a blog entry on the Huffington Post, James Paul Gee, a professor at Arizona State University and a leading authority on literacy and the potential of educational games, strongly supports the supposition that video games are good for learning, specifically that gaming teaches problem-solving. According to the post, Gee argues that when you teach and test students on facts and formulas, they learn facts and formulas. However, if you teach problem-solving, they will learn both problem-solving skill and the facts.
The same educational benefits can be found in computer programming where learning occurs on a multitude of levels. Students must know an academic subject content before they can embody it in a computer program. However, instead of simply regurgitating this material, students need to synthesize it to share it with a wider audience. Computer science can also teach students to think about the problem-solving process itself.
Briggs, no stranger to computing, was first exposed to computers at the age of 8, when his father set up a Radio Shack TRS-80 on an old card table in the living room. Drawn to the low hum and flickering lights of the desktop micro-computer, he was soon busy creating his first BASIC program. Consequently, it comes as no surprise that Briggs should choose Python, a powerful dynamic programming language known to be friendly and easy to learn as his vehicle for introducing computer programming to children.
The book's setup is ideal. The first section focuses on introducing basic concepts through examples that build on each other to prepare the reader for more intricate programs. The last two sections of the book provide step-by-step instructions for creating two computer games, Bounce and Mr. Stick Man.
The examples, while entertaining, are not always clear and concise, which could cause confusion and frustration for some younger readers. In addition, some of the exercises did not work in the programming environment, the Python shell. Consequently, it was hard to tell if the problem occurred because the code had not been entered correctly or if I was not using the shell properly. Another confusing component to the book was that some of the examples didn't always match the online solutions. I found that using online code snippets and solutions, provided on the book's website, helped mitigate this problem. In addition, by saving working code as a module, not only did I save time, I also found it easier to understand and debug my programs.
In sum: This book offers a good introduction to computer programming. Due to the complexity of some of the examples, it is best suited for a shared programming experience between children and their parents. By taking cues from their children and learning to program themselves, parents will be better equipped to understand the science and attendant power of computing. It is computer science—not computer literacy—that underlies most of today's innovations.
Noted author Douglas Rushkoff said it best:
When human beings acquired language, we learned not just how to listen but how to speak. When we gained literacy, we learned not just how to read but how to write. And, as we move into an increasingly digital reality, we must learn not just how to use programs but how to make them.
Using Python for Kids to learn this skill would be an excellent family bonding experience, and the added perk of jointly creating a computer game wouldn't hurt.
Follow Patrice on Twitter.