Coding: a Growth Mindset

Well, it’s finally here! The students have returned and the school is full of life again. I don’t know about you all, but I’m a big Sci-Fi nerd and the start of school always reminds me of the book series, Rama by Arthur C. Clarke, the same Arthur C. Clarke who wrote the screenplay 2001: A Space Odyssey. It’s a hidden gem of the Science Fiction genre and the book I blame for getting drawn into any Ancient Alien Conspiracy theories. In the book, a crew of humans discovers, and decides to explore, a dormant, massive, cylindrical vessel. Throughout their experience they “wake up” the world, that had been maintained by machines in preparation for humans. For me, I always view the summers as the school lying dormant, repairing itself, and making upgrades as it awaits the return of students, who breathe life into it. They really are the blood of the school.

As I’ve worked with teachers and faculty on goals for the upcoming year, I had a bit of an epiphany about the way I was introducing Computer Science to my students. I think most people who teaches coding know of the Peanut Butter and Jelly example, but for those unfamiliar, it is where you ask students to “code” somebody or something to make a PB&J sandwich. The students must code every single step or their creation will fail. The exercise is used to demonstrate that computers take our instructions very literally and cannot interpret our intent. However, I’ve realized that we often use this in a bit of a “Gotcha!” way for students, not maliciously, but, we are (unintentionally) communicating that even coding a simple task is much more advanced than we first think. Now, I’m not saying that we are being cruel and making fun of students or anything extreme like that. We’re not being jerks, we’re just trying to prepare the students, right?! Well, the truth is, that type of “challenge” will really only excite those who were already excited about coding, and exclude those that struggle with it. So we’re not being bad teachers, just misguided!

big fat meanie

Hopefully somebody recognizes this is from SpongeBob, where Patrick draws a picture of the teacher, Mrs. Puff, as a “Big Fat Meanie.” Photo Credit.

I never got much in the way of formal teacher training, and the little that I did, they made a big point about how you should set your classroom expectations and behaviors from the very first day. You might have heard people tell new teachers “Don’t smile until Christmas, you can always be easier, but never tougher.” I think that’s a load of rubbish (we just got a new Head of Upper School, who is from the UK and I’ve been picking up way too much of his slang).

I’m sure I’m not the first person to tell educators out there that a lot of students struggle with coding because they think only geniuses are capable of it. It’s gone the way of math where many students (and their parents) will say “I’m just not a Coding brained person.” and if we start class by showing them all the steps they missed, aren’t we just reinforcing that? Luckily, younger students are less likely to do this. But, I teach high schoolers and it breaks my heart anytime I hear a bright young girl fall victim to the stereotype that “Coding is a boys thing.” Instead, we should start cultivating a Growth Mindset about Coding. For those unfamiliar with Growth Mindset, here is a great link to get you started. The basis is that we all have strengths and weaknesses, but no subject is off limits, it just may take more practice. Jo Boaler, a mathematician and educator from Stanford, has a great book and website about challenging this stereotype about Math. It's time to start taking the same approach to coding.

growth mindset vs fixed mindset

Photo Credit

Instead of using exercises that show how coding can be very tough and frustrating, let’s start them off thinking about how coding has changed their lives for the better. I use little 5 minute thought experiment warm ups to do this. I will ask questions such as “How has coding and technology changed your life for the better?” or “Can you name a famous computer scientist who isn’t a rich, white, male?” or “What are some similarities between coding and Spanish/German/Arabic/etc?” and variations of these. It’s important to acknowledge that coding is tough, even if you’ve done it last year. But it isn’t impossible, and it will make you appreciate a lot of technology even more so.

Remember my whole, “We’re in sales!” spiel that I remind you of each post? I’m sure it’s your favorite part by now. I use an exercise to introduce coding that is meant to appeal directly to the “What’s in it for me?” that every student asks themselves. Here’s how it goes:

Ask students to use a device to go to one of three different sites:

    1. SparkFun's Blogs - SparkFun has a great tag sorting method for students to look for topics that might be interesting to them. From Space to Citizen Science to Weather to Paper Circuits, there is definitely at least one tag that they will be curious to know more about. I especially like the Art tag
    2. Instructables - Tell them to search whatever they’d like (Sports, Soccer, anything) and add on “Coding” or “technology” or whatever to try and get to more tech themed projects. If you haven’t seen Instructables, you should definitely check it out. It’s like Pinterest, except useful and without professional photography of DIY projects.
    3. Adafruit’s Blogs - I tend to like their blogs more than their Learning tab but they are both equally helpful and full of cool projects, just like SparkFun.
    4. Last, rogue option - Have them google (Their passion or hobby)+(Arduino) and ta-da!

After they’ve found something they enjoy, ask each student to present to the class for just a couple of minutes about what they found. You can formalize it a bit more with questions such as:

  • “What parts of the technology did you understand? Which didn't you understand?”
  • “If you were to make this yourself, what improvements would you make?”
  • “How long do you think it took this person to make it?”
  • “When would you find time in your schedule to work on a special project like this?”
  • “What would you Google to get started learning about this?”

Notice that I’m not asking for technical comprehension. And I’m asking questions that enable their current knowledge and skill set. The last one is my favorite because they’re always surprised by that. I then lead a class discussion to tell them that the best and most experienced programmers often say they use Google more than they did when they were first starting out. And I end by saying that I’m really just teaching them how to Google well.

Another thing I love to do is celebrate failure in my class. To do this, I often show my students multiple technical creations that fail. My favorite lately has been Simone Giertz and her army of “crappy” robots. Big warning here: She curses in some videos, so definitely watch all the way through before showing to students. But don’t let that distract you from the fact that she’s brilliant and a great role model for students. These videos exemplify some great concepts for students:

  • You don’t have to succeed on the first try
  • Failure is how we truly learn and is often hilarious
  • Can be (kinda, sorta) used to discuss the ethics of building robots that can do everything for us (badly)
  • I use this to frequently lead into why students SHOULD use Google to help with code

Overall, just remember that PB&J sandwiches don’t belong in the classroom. Mostly because of peanut allergies, but also because it just doesn’t seem to help students get excited about coding. We all know they may not go on to become software or hardware developers, but the critical thinking, resilience, and grit gained from learning how to code do truly take you far.

Shane Diller is a biomedical engineer turned educator. All around turbo nerd and innovation geek. Shane is the Lead Technologist for the Bryan Innovation Lab at The Steward School in Richmond, VA. His favorite piece of hardware is the classic Arduino Uno due to the low price point and sheer variability. His favorite projects include any that can demonstrate high-level engineering concepts in an artistic and approachable way. He’s passionate about wearables, web development, human-centered design, prosthetics, mentoring and inspiring others, and sticky notes. Oh, and pictures of pugs in costumes.