Beyond the Computer Age: A Best Practices Intro for Implementing Library Coding Programs

Author photo: Stephanie C. PratoStephanie C. Prato is the Director of Play to Learn Services at the Fayetteville (NY) Free Library. With experience in youth services, community outreach, leadership, instruction, and technology, she has developed innovative programs for babies, toddlers, preschoolers, and school-aged children. She is a member of ALSC’s Early Childhood Programs and Services Committee.

At the Fayetteville Free Library (FFL), we are working to develop a comprehensive plan for supporting computer science education and coding for every age through the public library’s informal learning platform.

We introduce young children to programming logic, we teach elementary and middle school children coding languages, and we support adults in skill building and career shifts. In January 2016, President Obama announced the “Computer Science for All” initiative, which identified STEAM (science, technology, engineering, and math) learning and computer science as national priorities for all age groups.

Libraries hold a unique position in our communities as informal learning platforms, and so we are perfectly positioned to bring our communities together around these topics. This is our moment to play a critical role in providing year-round, all-age access to STEAM-focused, participatory learning opportunities with substantial learning outcomes.

We offer many different types of coding programs for kindergarten through fifth grade. We usually think about our coding programs in three main categories. First, there are introductory coding programs that hook kids and get them interested in computer science by teaching programming logic. These sessions often utilize software and tools that enable kids to start coding right away, without learning a specific programming language’s syntax. These are sometimes called “visual programming languages” and feature intuitive software with drag and drop commands that get kids off to a fast and fun start.

This type of introductory coding is ideal for stand-alone programs because participants can accomplish a lot in a single session, even if you only have half an hour together. Second, we offer coding classes that teach specific syntactic programming languages like HTML and Python.

They are a little more challenging, because kids learn a specific syntax of symbols and rules as they write lines of code, as opposed to dragging and dropping preprogrammed blocks of code like “move forward” or “turn 90 degrees.” These classes are often a series, spread over four to eight weeks with each week building on the previous one. The last style of program is a meetup style event or self-guided environment that focuses more on bringing kids together, but allows them to practice peer-to-peer learning or work on their own projects at their own pace.

Coding with Robots

When we welcome a group of kids to a coding class, we often start by asking them for a definition of computer programming. We get lots of great answers, but the simplest one is that we are writing a set of instructions to perform a task. Robots are a great visual expression of this idea and make for a very interactive coding experience. In fact, these tools are so easy to learn that every member of our professional staff has facilitated a coding program using one of these bots.

Dash Robots

students playing with a Dash robot

A second grade class visited the FFL for a field trip and they learned to program the library’s Dash robots. Each group wrote a story and then programmed Dash to act it out, combining English/Language Arts and STEM skills.

Sounds like “ay yai yai” and “yippee!” fill the room when we code with the Dash robots. These bots from Wonder Workshop quickly come alive in the hands of our kindergarten through fifth graders. Dash is a robot that can move around, make sounds, light up, and even respond to stimuli in the environment when its sensors detect a sound or an obstruction. The robot, which costs about $150, is controlled via Bluetooth by a free iPad app called Blockly. The app allows kids to drag and drop blocks of code like “Forward 50cm Fast” and “Say Hi.”

This tool is great for younger and older kids alike because it has an intuitive interface and it is instantly gratifying to see Dash act out your code. You can also start to introduce some more advanced concepts, like conditionals, in a relatively simple way. We have used a single Dash robot with groups of up to five students, sometimes around prompts like “tell a story with Dash as your main character and have him respond to three things around him.” This helps kids to begin thinking about more complex code, like “If Dash Obstacle In Front” then, what should happen?

LEGO Robots

If you do any kind of LEGO Robotics programming at your library, you are already coding! We own both the LEGO Mindstorm and WeDo kits, which we offer kids a hands-on introduction to robotics, engineering, and computer science. Unlike Dash, the LEGO robots come in pieces, and participants have to build their bot before programming it. Most kids already know the LEGO brand, so the building part is familiar, even though the coding might be new. We typically follow a set of instructions to create a certain type of robot, and then work together to program it to do something.

The software features block commands (similar to Dash) that you drag, drop, and string together. Then, the robot plugs into the computer, allowing you to upload and execute your code. These are some of our most popular coding programs with up to twenty-four participants in each session.

We use LEGO WeDo kits with kindergarten through second graders and typically put them in teams of two. The third through fifth graders build the LEGO Mindstorms and work in teams of three or four. Last year, more than one hundred students participated in our LEGO Robotics programs, developing skills around teamwork, creative problem solving, coding, and engineering.


Ozobot is a tiny robot about the size of a ping-pong ball. It doesn’t make sounds or have animations, but it is unique in the way it is programmed. Ozobot follows lines on paper, detects colors, and is programmed by drawing. Kids can draw paths for Ozobot, which will change color depending on what color marker you use. It knows four colors—black, red, blue, and green, and different patterns of colors indicate different commands. Ozobot reads short dashes of color and responds accordingly. A dash of red, black, and red, for example, means “slow,” while blue, black, blue means “fast.” You can also download free apps Ozobot, and OzoGroove to use with this bot, but so far, we’ve stuck to pen and paper with our kindergarten through fifth graders.

Coding with Computers


Scratch is a mainstay of kids’ coding programs, and if you’re just getting started, it’s a great place to dive in. Developed by MIT specifically for kids, Scratch can be used to write code for interactive stories and games. Scratch is a visual programming language like those mentioned above, so it also uses drag and drop chunks of code. This allows kids to think more about programming logic, and worry less about syntax.

Scratch is a free, web-based program you can access from any computer with an Internet connection. We have used Scratch with kindergarten through fifth graders to make games, write stories, and create animated greeting cards. Basic operations are simple enough, but there is a lot you can do with this tool if you have an older or more experienced group.

Geek Girl fourth-grade girls learn to build their own websites in HTML using Thimble

Geek Girl fourth-grade girls learn to build their own websites in HTML using Thimble (

Syntactic Programming Languages

We currently teach three syntactic programming languages: HTML, Python, and Java. Teaching these languages requires a bit more knowledge on the part of the instructor, and they provide a great opportunity to engage community participants and volunteers. In fact, all three of these programs are supported by community experts who volunteer their time to support coding at the library. HTML is used in web development, and we have spent between four and twelve weeks teaching kids to build their own websites. Python is a multi-use programming language that allows you to automate all kinds of things. It’s a popular beginner language because it emphasizes readability and simplicity, but it is powerful enough to be used for large scale programs.

Lastly, we teach is Java, the language used in Minecraft development, and we work specifically to develop Minecraft mods or code that allows you to alter the game. All of these languages are powerful and can be very complex, so we usually stick to the basics and some very specific goals. We try to help kids (and their parents) understand that, just like learning a foreign language, it takes hundreds of hours to become fluent. These syntactic languages are more challenging, so we target these programs for third grade and up.

Unplugged Coding

Offline coding can be a great alternative if you are looking for a low cost, low risk way to get started. There are numerous offline activities that you can do with simple tools (like a pen and paper or plastic cups) that teach the same principles. These activities are less flashy, but can be just as fun, as long as your participants understand it’s a tech free program, before you begin.

This summer alone, more than two hundred families participated in coding programs at FFL. These opportunities are in high demand, and we frequently have to open up new sections to accommodate our waiting lists. This response isn’t surprising if you consider “nine in ten parents want their children to study computer science, but only one in four schools teach computer programming.” Now is the time for librarians to step forward and help to meet this growing need in our communities. &


  1. Megan Smith, “Computer Science For All,” What’s Happening (blog), January 30, 2016,
  2. “Promote Computer Science,”, 2015,


  • There are currently no refbacks.

© 2021 ALSC

ALA Privacy Policy