“What I learned teaching coding: 3 years and 1900 kids later”
( HINT: the learning hasn’t stopped)”
I’m on a mission to teach as many kids as possible to code. It’s my legacy project. As you grow older you consider what your legacy will be, this is my story.
I love coding. It’s another way of solving puzzles. As a systems engineer, I solve a lot of problems with code. I’m big on education for myself and my children. I’m sure you’ve learned that we don’t stop learning when that class bell rings at the end of the day.
Part of being a 21st century digital citizen is learning how to read and write code. It’s the future. We need to build this practical skill to become better problem solvers, to learn critical thinking and collaboration.
At first teaching kids was something to do while I was looking for a real job. I also thought It was a way to give back to my community. I tested my Scratch coding worksheets with my daughter and her friends to see if they liked it.They did.
So, I approached my daughter’s elementary school principal. Mr A, as the kids affectionately call him; who was interested and supportive of me teaching his kids how to code. He’s a fairly progressive educator, and wants to expose his kids to many educational experiences.
On my 1st day of teaching, it was clear that my classroom management skills were poor. I lost control of the class almost immediately, as they were so jazzed that they could make the computer bow to their commands. In spite of myself, the usability and the kids’ enthusiasm carried the day. MIT’s Scratch coding language really lowers the bar with respect to the knowledge base required to get started. Scratch is very accessible. It’s so easy and fun to get started. And that accessibility launches them on a fast track trajectory to becoming a full fledge coder. What would normally take hours to get working in ‘C’ or other languages, is easily done in seconds.
I was happy to see the initial response in class. The raucousness and giggles pervaded the room. I enjoyed watching how the kids could so easily make their characters dance and say silly things. I taught them how to think in pseudo-code; step by step instructions and convert that pseudo-code into block level commands which Scratch uses and together we built sequences of code and easily made the characters dance based upon certain events like a key press. I learned that the way I was rigorously taught how to code in college, and how children’s preferred way to be taught is distinctly different. When engagement is high due to fun and interesting projects, learning is high.
My students’ knowledge and proficiency grew and grew with each passing class. From that first class until today, the kids are so engrossed in coding; that they wouldn’t leave their computers when I announced that class was over. They were hooked on making their coding projects. There was magic in the room.
The other thing that was monumental was looking for the little wins in each lesson. As a working professional, you don’t celebrate these things, you only have a beer bust, when the product actually ships. So those little wins, day by day, are ignored. But in the classroom they are big! I took the advice of a wise friend who asked me to recognize out loud and personally to each student he/she got part of the project working, or made good incremental progress towards a working solution. That was a huge win for their confidence, as they are learning both new computational constructs, coding techniques, abstraction and how to solve that project’s demands to produce an entire functional solution. I learned that they needed that support, that reassurance, that they were headed in the right direction.
I learned that I just needed to show them the ropes, give them some help when they got stuck, and just watch their genius go to work. Or more accurately, watch their genius go to play!
Their innate curiosity and fearlessness with computers drove their learning. The games were fun and engaging. They weren’t just solving for X, they were making their games work. They were lighting up those problem solving parts of their brains, and really excited to be doing it. These kids truly are digital citizens.
I would give the assignment to them, and then after explaining the concepts, and the project theme for the day as I referred them to the handout. I then monitored the room. I could see those gears whirring as they got started. I would wander the room, looking over their shoulders at their monitors and ask them, “So what are you going to do next?” I answered questions with questions, “I don’t know how to do that., Can we find out together?”
It was obvious that they were hooked They truly were loving the process of learning how to code. As coding is a complex process of determining what to do and when to do it, in order to create a functional project. They had to learn and use computational concepts such as events, functions, timing and sequences to get their projects working. I just helped them re-frame the larger project which they had imagined, into bite-sized actions of ‘what do I do next?”. I structure the assignments in loosely organized project ideas to give them freedom to take different directions; allowing their creativity to express itself. I love witnessing each student bringing their uniqueness to the effort.
And to foster that learning, I show them how to think like a computer, how a project is constructed, and how coding is a pathway to express themselves.
After 3 years of teaching, I’m beginning to realize that it’s not about the curriculum or the computing concepts that I’m try to get to them to understand; or having them conceptualize their thoughts in terms of computer constructs but rather, it boils down to them finding out that they can produce project that is fun to play and engaging. That’s the bottom line of learning how to code, having as much fun as possible. I’m a catalyst for their learning and a witness to their creative genius.
I’ve also learned that there is never the issue of whether they are competent enough.. These kids, my kids, all find out for themselves that “ I can code”.
Learn to code; Code to Learn
Scratch is a project of the Lifelong Kindergarten Group at the MIT Media Lab.