Module Five: Reflections and Next Steps

The Best Answer You Can Give

In my first semester teaching coding to children, I had about thirty-six hours to learn how to use Scratch before walking into the classroom with my new students. This was not the first time I was teaching in circumstances where I knew very little more than my students, so I approached this class the way I approach every teaching opportunity - I resolved to be completely honest with my students about what I knew and what I didn't. I told them very candidly on that first day that I had only started using Scratch myself, and that we were going to learn how to make projects together. I told them that they were going to ask questions, and a lot of the times my answer was going to be "I don't know, let's figure it out together". It was also my first time teaching children, so I don't mind confiding that I was terrified.

Because I was honest, the children in the class responded very well when I said "I don't know", and they would sit with me as we worked on figuring out the answers together. Many times (more than I care to relate), they discovered the answer to their questions before I did! To be perfectly honest, I'm pretty sure every kid in that class knew more about using Scratch than I did by the end of our ten weeks together. If anything, having a chance to teach the teacher something new was very motivating to those students, and the same has been true for every class I've taught since then.

After a few years time, I can't tell the students that I don't know how to use Scratch anymore, but I always tell them with complete sincerity that I will learn more about Scratch from working with them, and that I look forward to the things they will teach me. I also like to think that they learn a lot from watching me work to figure out how to do new things. It gives them a road map for the times when they will need to go looking for answers themselves, and I often see students learn to do just that over the course of a few weeks' time.

The video below from Sugata Mitra has given me a lot of inspiration for putting students in charge of their own learning, and taught me ways to support them without giving them the answers they're looking for.


"Failing" to Create Safe Space

After teaching a lot of children and adults how to code and working with a number of other instructors, I've found that the fastest way to make your students feel comfortable being vulnerable enough to learn is to mess up in front of them. When it comes to coding, this is certain to happen at some point, and it's an excellent opportunity to teach students that "failure" is one of the most important parts of any project.

Photo by Bradley Howington on Unsplash

The coding instructors I work with are almost all industry professionals - people who build software for a living, and spend 40 hours a week or more working with computer code. I've sat in on over one hundred adult coding classes, so I feel confident telling you that every professional software developer I've observed makes mistakes in their code when they are standing in the front of a classroom. It's not always typos, either - sometimes they make logical errors that take a while to unravel. It can be embarrassing when you feel a room full of eye balls trained on your screen and you don't know where your mistake is or how to fix it, especially when those eye balls are gazing out of the bodies of adults, some of whom have paid quite a bit of money to take your class.

What I have never seen, though, is an instructor who lost credibility in the eyes of their students in those moments. What happens instead is that the students see that even "experts" make mistakes regularly, and that the important thing is going back and figuring out how to fix them. Students stare at the code with their heads tilted at an angle, squinting at the text on the screen, trying to help the instructor figure the problem out. Sometimes they spot it first, which causes a huge boost in confidence, and shows the other students that you don't have to develop software for years to help with problem-solving. Sometimes the instructor has to search on Google for ideas on how to fix the problem, and students learn how to look for help with they need it.

After this happens a few times, students don't worry about making mistakes or asking for help anymore, and that is when the learning can really begin.

A Classroom Full of Teachers, Part II

It doesn't matter whether your students are fourth-graders or forty years old - some of them will learn how to code much, much faster than you. This can be wonderful, but also challenging depending on the student and how you respond. Here are a few approaches that I've found very helpful for both myself and the students when this happens.

Photo by John Schnobrich on Unsplash
  • Turn your strong students into "teacher's assistants", and let them help students who are struggling with learning to code. This works really well when your faster learners are the sort of students who enjoy being helpful to others, and not so well when they are impatient or enjoy feeling smarter than their peers.
  • Let them share their new discoveries with the rest of the class. This can make your faster learners feel accomplished and give them a chance to contribute new ideas and information to the rest of the class. It can also help the other students get new ideas for their own projects in the future, along with motivating them to try new things that you haven't done as a class.
  • Give them more complicated or advanced projects to work on independently. In many cases, you don't even need to tell them to add more features to their projects, you only need to give them permission to do so.

The best way I've found for keeping students engaged and learning is to have them work collaboratively on projects, or at least allowing them to work together, even when they're each working on their own project. Students who are more advanced at using Scratch (or any other coding language) tend to add interesting things to their projects, which will almost always get the attention of other students and help motivate them to try new things and keep working to improve their own projects. When students consistently show each other new things, everyone gets to take a chance teaching their peers something new and learning from their peers in turn, and with a whole classroom full of students working hard to discover new features and ideas, the whole class tends to progress quickly through the learning process.

Setting aside time at the end of each lesson for students to share new things they've learned is another great way to motivate them to think creatively and try new things. I've often found that students learn a lot more when they set their own goals and go looking for new ideas than when I give them a set assignment to complete. I learn a lot more, too, because they always think of more interesting things that I would come up with myself!

Keeping Up the Momentum

Are you enjoying learning to code? Do you want to keep learning, or even branch out into other kinds of coding? Here are some of my favorite resources for learning to code:

  • FreeCodeCamp.org - FreeCodeCamp is a website with a ton of coding tutorials and certification paths, including Responsive Web Design (HTML and CSS), JavaScript Algorithms and Data Structures, and more. Each program is made up of a series of very short exercises, each with instructions and a coding section so you can do all of your coding right in their website.
  • Codepen.io - CodePen is an online development tool where you can build projects in HTML/CSS and JavaScript. Like Scratch, it's also a community of developers and other learners, so you can find a ton of projects and tutorials to help you learn. In CodePen, remixing is called forking, and you can fork any public project into your own account so you can experiment with the code and create fun projects while you learn!
  • Codecademy - While Codecademy offers paid online learning programs, they also offer some free learning resources as well, which are worth checking out!
  • Repl.it - Repl.it is similar to CodePen in some ways, except that you can code in a wider variety of different languages. They also have projects and tutorials you can use to learn how to make fun projects. Here are a couple of projects I built in Python, in case you want to give it a try!
  1. Spiraling Turtles - This game draws a bunch of geometric shapes on the screen using a Python library called Turtle. Try experimenting with different angles to see what designs you can make on the screen!
  2. Rock, Paper, Scissors - This game is exactly what it sounds like - a digital version of Rock, Paper, Scissors!
  3. Turtle Invaders - This is a simple version of the classic game, Space Invaders, using the Turtle library in Python.
  • Children books - When you're learning to code, whether you're 5 years old or 50, I highly recommend children's books. They tend to have a lot more visual aids, the projects are a lot more interesting, and they haven't sacrificed fun for the sake of being taken seriously. Most of what I've learned about coding has come from children's books and online tutorials!


Course Navigation Links

Module Four: Integrating Coding Lessons into the Curriculum | Go Back to the Beginning: Teaching Kids to Code (When You're Not Quite Sure How to Code Yourself)

Get in Touch!

Are you interested in learning more, or continuing the coding conversation with other educators? You can get in touch with me via my website at www.technicallystacy.com. I would love to hear any feedback you have about my mini-course!