I've heard many librarians, my own mother who is a retired librarian included, wonder "Why coding? What does that have to do with anything?" And like any normal person, I usually only come up with a snappy response after the fact. At the time, though, I sit there and stare, thinking of all the reasons why and wondering how they don't understand and also wondering what is being served for lunch. That's a LOT of thoughts going through my mind at once. So instead of saying anything of value, I drool a little because my mouth is hanging open, and say, "Uhhhh, because."
I have watched kids code in the library this entire year, and no, I am not a scientific expert who has conducted controlled experiments, but I will tell you what I have seen.
Coding teaches students to:
One little mistake, just one, and your entire program might not work. In class, if you miss a math problem, that's 5 points off. In coding, if you miss a line, the whole thing won't do what you want it to. That teaches students a valuable lesson in taking their time and making sure that everything is correct and in order. Traditional subjects teach students what to think, coding teaches students how to think.
Whether you believe it or not, students are invested in their projects and want to see them through. They enjoy creating solutions and seeing them in action. It gives students a sense of power and control over a situation that they don't normally have. With coding, students have to create a solution using lines of code but they can't just place code anywhere. They have to think step by step to ensure that loops, if/else statements, etc. are all in the correct order for things to work properly.
You can tell me to write a regular sentence all day, and I can rearrange words to make a sentence make sense. You love dogs. Dogs love you. You and dogs both love running. That's a stupid example, but seriously, you can move words around and they still make sense.
That's not really the case in coding; students have to follow a logical order to solve their problem. They really have to gain knowledge, think through it, and apply it.
Evaluate their work:
How many kids do you know that step back and evaluate what their work? After a science assignment, do your kids look at the notebook and think, "Hmmmmm, I could have filled that box in better."? If they do, I'm impressed.
Coding forces students to evaluate their work simply through its nature. You have to do it correctly, or it will have bugs. Students become "debuggers" and have to evaluate their work whether they want to or not. I love that reflection is basically built in to the process!
Students realize very quickly that if they use loops, they can be more efficient in their work. If they are coding a robot to move forward, they realize that saying "move forward, move forward, move forward" over and over is a waste of time. Well, most of them do.
Soon, the "repeat until" or loop functions make sense and they understand that being concise with their words matters.
Kids learn how to code at different rates, just like with anything. On that note, so do adults! A coding environment is a perfect place to have students lean on each other, become experts and guides, and be a part of a true learning community.
How many times have you seen a student persevere vs. give up? When students give up, it's usually because they are not invested in what they are doing. Coding is not always easy peasy lemon squeezy, but most of the time, students are invested in doing it. Because of that interest and excitement, they continue to work on it: learning, solving problems, and fixing until it will work.
Students LOVE figuring something out. With coding, students get the opportunity to go through a process and see it through to completion.
Coding is a process that teaches students so many skills that go beyond the technology aspect. As a librarian and, more importantly, an educator, I just can't overlook this tool. It has the ability to positively impact students' minds, and prepare them for the future in the process. So let's get everyone on board already!