Algorithms & Programs in the Elementary Classroom

In case you didn't already know, I love the Montessori approach to education. I love the beautiful materials, the hands-on work, and the mixed-age classrooms. Most of all, I love following the interests of the child.

 In fact, this year I've decided to step outside my comfort zone that is the typical Montessori curriculum in order to "follow the child." 

Several of my students have expressed a keen interest in learning to code. And admittedly, computer programming is not an area of expertise for me. However, I always want to do what I can to foster the interests and curiosities of my students. 

And so, earlier in the year I went to a workshop to learn about their coding curriculum. I discovered that–in many ways–it works really well with the Montessori philosophy of education. You can read more of my thoughts on that here, but the gist of it is that the curriculum includes quite a lot of hands-on activities that come before the more abstract computer work.

Thus far, we've done two hands-on, "unplugged" activities, both of which proved to be educational and engaging at the same time. My students are already asking for more coding lessons!

The first activity was called Graph Paper Programming. Much like a typical Montessori lesson, I started by introducing new vocabulary to the students:

  • algorithm- a list of steps you can follow to finish a task

  • program- an algorithm that has been coded into something that can be run by a machine

The students went on to create programs on graph paper grids that their friends could decipher by acting as the "machine." They started this process on small 4 x 4 graph paper grids.

At the end of the lesson, I challenged them to create their own design on a large piece of graph paper, write a code for it, and see if their friends could reproduce the design by following their code. They worked diligently on these designs & codes over the next week. Here are the results:

For the 2nd "unplugged" activity, Real Life Algorithms, I challenged them to write out algorithms (or a list of steps) for daily tasks such as making a PB&J sandwich, dusting the geography shelf in classroom, or planting a flower. The idea behind this activity is to understand that a program won't work properly–or at all–if the algorithm is not in logical order or if it missing a step in the process.

Then came the real fun. They cut out the pieces on this worksheet, put the steps in a logical order, and got to make & fly paper airplanes following the algorithms they pieced together.

These "unplugged" activities are great for exploring basic programming concepts. And now I am excited to try out our first coding lesson on the computer this week! Updates to follow!

If you'd like to try out one of the courses in your classroom (or homeschool), their curriculum is available online here, and it's completely free!

I'd love to hear any feedback from others who have tried OR any other coding curriculum. What works for your students? Let's share ideas!

Coding for Kids: A Montessori Perspective

Coding for Kids: A Montessori Perspective

Over the weekend, I set out on a journey to learn about coding for kids. A couple of students in my class have expressed a keen interest in exploring the field of computer science, and so I attended a free workshop for elementary school teachers.

I want to be the kind of teacher that encourages a curiosity for learning, and I want to be equipped to offer at least some guidance in any area of interest. And so, I set out to learn something new.

But, I'll be honest–I was hesitant. Because, you know, I'm a Montessori teacher. And I don't have a computer science album. And my head was filled with questions:

Do I have access to the resources needed to implement a CS curriculum? And if so, would it have to be done as an after school program? Would parents be onboard? And the most daunting question of all–what would Dr. Montessori think of children in the second plane learning computer science?

I wanted to address that last question head-on, before I ever attended the workshop. So I brought out my albums and my collection of books written by the pedagogue herself. 

I immediately called to mind the characteristics of the elementary child–in particular, the reasoning mind. Children in this age group constantly ask WHY? and HOW? They want to understand systems and how they work; they are attracted to cause & effect. And naturally, they enjoy deciphering new and unfamiliar codes.

So, I started by looking at coding (or computer programming) as a language. 

Language touches both nature and the history of humanity. A new language is a natural phenomenon.
— Maria Montessori, Creative Development in the Child, Vol. 1

In Cosmic Education, Dr. Montessori breaks language into three components: spoken language, writing, and reading. She describes spoken language as being naturally developed and refers to written language as a "superior form of language." She says that written language is "the language necessary to the culture of our times."

The alphabet has influenced human progress more than any other invention because it has modified man himself, furnishing him with new powers, above those of nature. It has made man the possessor of two languages: a natural and a supra-natural one. With the latter, man can transmit his thoughts to far away people. He can fix them for his descendants. He can practically build up a treasure of the intellectual products of the whole of humanity through time and space.
— Maria Montessori, The Formation of Man

Dr. Montessori goes further with this warning:

The civilization of our days cannot make progress among people who possess only spoken language, and illiteracy becomes, therefore, the greatest obstacle to progress.
— -Maria Montessori, The Formation of Man

Of course, computer programming wasn't around during Dr. Montessori's time. But, her thoughts on the written language lead me to wonder if coding might be the language necessary to the culture of our times and if illiteracy in the field of computer science might be the current greatest obstacle to the progress of humanity.

So I decided to look at this workshop as a learning experience for myself, and I went into it with an open mind. 

And I had a great time! I learned a lot, and I got the opportunity to meet other elementary educators from all over the Bay Area. Their passion for STEM ed was inspiring!

The workshop actually reminded me a lot of my Montessori teacher training. We started by learning as a whole group, receiving instruction from the workshop facilitator. We broke into small groups and practiced giving lessons--some of us pretending to be students. And at the end, we met back together as a whole group for a discussion. 

What did I take away from the workshop? Can coding work in a Montessori environment?

  • Hands-on coding is very Montessori-friendly! does a great job of providing concrete experiences when introducing a new concept. They call these "unplugged" activities because they don't rely on the computer. For example, I was able to participate in a lesson called "Graph Paper Programming" in which students draw a design on graph paper, then they create symbols to write a program that will allow a friend to recreate the design on their own, following the program instructions. Some of the unplugged activities involve a deck of cards or songs with hand motions.

  • New vocabulary is also introduced with each new concept. Because I am a Montessori teacher, I immediately began looking up the etymology of words such as algorithm, function, binary, and variable. I was contemplating ways to incorporate words such as debug and decompose into our prefix exercise, while thinking that username, workspace, toolbox, and crowdsourcing could work well with a lesson on compound words.

  • As for the online portion, I learned that there are two types of coding: visual coding and text-based coding. The curriculum takes the visual before text-based approach, which I like because it reminds me of Montessori's idea that spoken language precedes written language. It allows children to really work through the abstraction of each new concept. Also, each student can work at his or her individual pace, and the teacher has an online record of each student's progress along the way.

  • The visual coding is a lot of fun, and although I haven't worked through much of the course, I have already come across concepts from geometry, such as degrees of angles and circles. It would be interesting if there were connections to other subjects as well, as Cosmic Education is interdisciplinary.

An example visual coding on

An example visual coding on

The mission of is for computer science to be a fixed part of school curriculum. They also hope to address issues of equity in the CS field. Here are some stats provided by that I found interesting:

I'm still mulling over these questions and many more. There will likely be follow-up posts as I explore this topic further. Might coding be the language necessary to the culture of our times?  Could computer illiteracy be an obstacle to the progress of humanity? These are huge questions to consider. I am extremely interested to hear the thoughts and opinions of others, so please share yours in the comments!

Before elaborating any system of education, we must therefore create a favorable environment that will encourage the flowering of a child’s natural gifts. All that is needed is to remove the obstacles. And this should be the basis of, and point of departure for, all future education.
— Maria Montessori, The Secret of Childhood