So you want to teach a class on coding. Where do you start?
A fundamental understanding of coding terminology is critical before embarking on any teaching or learning endeavor. “Coding” refers to creating instructions that a computer can understand, and there are literally hundreds of different computer languages that a computer can read. When this language is used for writing instructions, it is most often called a programming language. If you are writing a computer program, you are essentially creating instructions that tell a computer how to perform a specific task, whether that computer is embedded in a microwave, a digital watch, a singing greeting card, or a car.
Resources for learning about coding and how to teach it are plentiful, including a number that can be found the Internet. For a sampling of recently published books that teach the basics for K–Grade 12, see the recommended list of titles below. Some of the titles introduce the fundamentals of computational thinking that students will need to possess in order to code efficiently, while others teach a specific programming language.
Liukas, Linda. Hello Ruby: Adventures in Coding. (Feiwel & Friends, 2015; Gr 1-3).
Liukas’s book is both a picture book and a guidebook. The story’s protagonist, Ruby (whose name is a nod to a type of programming language), takes readers on a journey through a world full of talking penguins, snow leopards, robots, and foxes who teach her basic coding concepts. The narrative opening is followed by an activity section that serves to further the conceptual ideas outlined in the story. These exercises require patience and concentration, and a parent and/or teacher may have to guide younger learners through the nine mini-lessons. While youngsters won’t necessarily know how to write code after reading the book, they will be familiar with such basic concepts as pattern recognition and understand something about sequencing. Start here before delving into a more detailed resource such as The Official ScratchJr Book: Help Your Kids Learn to Code!
Bers, Marina Umaschi and Mitchel Resnick. The Official ScratchJr Book: Help Your Kids Learn to Code! (No Starch Press, 2015; Gr 1-4).
ScratchJr is an iPad app aimed at young learners who may not be ready to reason systematically and think creatively within the full Scratch program (see below). This guidebook serves to educate teachers or parents as they in turn direct, explore, and create with children using the app (available for iOS and Android). ScratchJr is a powerful tool for understanding logic and the fundamentals which simple games are comprised. Each chapter outlines the methodology behind a certain function of the program and provides clear directions on how to master it. Most notable are the brief “Making Connections” interludes sprinkled throughout chapters 2–4, which tie in various literary and mathematical concepts, and could easily be linked to Common Core State Standards. Within this section the authors also shrewdly preempt potential errors or common mistakes that children may make while playing with ScratchJr and offer “Tips for Grown-Ups” to help remedy errors. While navigating the app is intuitive, this guidebook is an incredibly informative guide for adults with little to no experience with coding and program writing.
McManus, Sean. How to Code in Ten Easy Lessons. (Walter Foster Jr., 2015; Gr 3-7)
Children with a mastery of ScratchJr will find the interface of Scratch to be a logical next step in their coding quest, and this book is a rich resource for youngsters looking to create their first game in Scratch. Like The Official ScratchJr Book, McManus’s title provides an informational backbone for coders who have never used Scratch. This book is written specifically with students in mind and the upper end of its audience range is likely to understand the instructions without the guidance of a adult; younger readers may fare better with assistance. Spreads featuring numerous images support learners who desire or benefit from visual cues, and the clear text helps to supplement the illustrations. Readers may move through the book quickly and be left wanting more coding tips and ideas after mastering the first eight “super skills,” as the last two are geared towards HTML and website design. While the book provides a basic introduction to HTML and website design, these two “super skills” seem out of place as compared to the previous eight, which are all related to grasping Scratch. Nonetheless, How to Code in Ten Easy Lessons is a wonderful introductory resource to younger coding enthusiasts itching to learn Scratch and design simple games.
Woodcok, Jon. Coding Games in Scratch. (DK Children’s, 2015; Gr 4-8).
For curious young coders who already have knowledge of Scratch, or for older students who are Scratch newbies, Woodcok’s book provides the right mix of background knowledge on game design with clear directions for creating complex games. The author provides excellent examples of what impacts a game’s “playability,” including insight on how to design thoughtful stories, goals, rules, and atmospheres and adresses topics such as speeds, sound effects, and more. The information on game varieties and genres (traditional, role-playing, racing, sandbox, combat, strategy, etc.) are discussed and offer readers with a strong base knowledge to explore game creation and design on a deep level. Whimsical and abundant images provide strong visual cues, including a particularly clever progress report bar along the top of the pages, which displays the degree of design instruction readers have completed in each chapter. Kids will learn how to code eight pre-designed games. Helpful asides explain certain aspects of design, for example, why open-maze layouts work better with fast-moving enemies. Overall, this is a great resource that pushes Scratch to the limits of its use and entertainment. Be forewarned: programming some of the games will be time-consuming and may prove frustrating to newbie coders.
Payne, Bryson. Teach Your Kids to Code: A Parent-Friendly Guide to Python Programming. (No Starch Press, 2015; Gr 5-8).
Kid coders who have mastered the likes of Scratch, or older students who are math inclined and want to learn how to code, will find a worthy choice in Payne’s guide to Python programming. Despite the title, older middle school students will be able to navigate the instructions. Payne, a computer scientist and expert programmer for more than 30 years, imparts a conversational tone throughout, which includes many personal stories of his own children’s learning experiences with coding. It’s an engaging choice. Because true coding languages are so closely tied to math and geometry, some students may find the numbers and variables explanations in the text challenging, and having an educator or adult on hand to help will benefit them. Python requires a certain amount high-level mathematical concept understanding, so having either a strong background in math or a patient and available math teacher nearby is a must.
Saha, Amit. Doing Math with Python: Use Programming to Explore Algebra, Statistics, Calculus, and More! (No Starch Press, 2015; Gr 9 Up).
In this title, readers learn how Python can help them solve and explore many of the same rote geometric and algebraic equations that previously could only be imagined with a graphing calculator. With Python, students can utilize a variety of modules (programs written by others that are free) to play with math in a conceptual way that is both entertaining and challenging. Saha does an excellent job providing a clear link between Python and upper-level math concepts, and demonstrates hows how Python can be transformed into a mathematical stage, supporting learners as they explore fractals and analyze data, find the standard deviation and plot values and formulas, and test the mean, median, mode, and range of data sets. While this use of Python may not surprise students already tinkering with code, using it as a path to math practice may be revelatory to some high school math teachers. Many spreads in the book appear textbook-like (few images coupled with lengthy passages of code appear daunting at times), a jocular writing style keeps the text’s pace moving purposefully, and readers will want to push forward with a sense of urgency and exploration. This book deserves a spot on every geometry teacher’s bookshelf.
Fluency in a programming language provides you and your students with the opportunity to participate in our computing world. Don’t be afraid to give it a try.
Amy Laughlin (@amysaurusrex) is a Children’s Librarian and Outreach Coordinator at the Darien Library in Darien, CT. She loves making, baking, playing, and all things Jurassic.
This article was featured in our free Curriculum Connections enewsletter.
Subscribe today to have more articles like this delivered to you every month.