Coding for K12: A useful teaching tool for all teachers
Welcome to Beyond the Hour of Code, I am your host
Dr. Sam Patterson, makerspace teacher and author of Programming in the Primary Grades, Beyond the Hour of Code.
Not everyone is super excited about coding, especially teachers. My love is learning, self-directed, creative, expressive learning. Code and things you can code are just one of the many tools I use in my space. (I have not yet written the beyond material for sewing and puppets, it is coming)- So what I want to chat about today, the conversation I want to start is about what code is doing in our classes, and how we, as teachers, can respond to the public pressure to code in a way that serves our highest pedagogical goals.
I talk about those a bunch my “Highest Pedagogical Goals” These are big picture goals like “Teach kids to read” “help kids develop the social skills to treat each other with kindness” The simple fact is that unless you are teaching a computer science class, you won’t be teaching your kids to code so that they can learn about coding. Also- You will have to teach some of your kids to code.
My school is an award winner in tech integration, and my students complain that I don’t teach them enough code before asking them to do things with it. This is true. I give direct instruction and practice short shrift and I rush to building something that does something for someone. I interrupt them as they work to show them specific things and as they learn things I didn’t know I have them teach the class. This isn’t comfortable for most of us.
Have you seen the drawing of a person with a circle around them labeled “comfort zone” and the X far outside the circle that says “You Are Here?” This is the land of coding in elementary school. While some of the kids and some of the teachers enjoy the challenge of logic puzzles and the rewards built into them, for many teacher and students the coding games and tutorials we find have little relationship to the world beyond the screen. They feel disconnected, and generic, and cutesy, like a worksheet.
What I strive for instead is a learning experience that takes a simple concept and uses the code platform to play with the concept and connect with other learning we have been doing. Sometimes this might be a ScratchJr “code the aquarium” challenge to have the kids learn loops and apply what they have been learning about fish. Other times we might use a hummingbird robotics kit to recreate a scene from the Berenstain Bears classic “The Spooky Old Tree.”
Instead of relying on the leveled app or challenge to engage the kids, I build my own frame. I create a lousy sample program.* (Always make a minimum, or don’t show them your fancy work, I find that “I could do better than that” is a really productive mindset for kids, especially when compared to “I could never do anything that cool”) I show the kids the lousy sample and leave the code where they can get it to copy, modify, remix, etc.
I do this because I want the kids in my class to spend the time in my class to do things that are specific to my class. I don’t want kids sitting in an app they could do anywhere clicking through screens, that is just giving my time away to an app builder in hopes that their app meets my learning goals. Often the only goal this meets is the external demand for coding.
When our schools and communities call for “coding for all” or “coding in every classroom,” our job as teachers is to make sure that coding, like every other tool that enters our classroom, serves the highest goals we have for our students during the time we share.
I find that focusing on the job the coding is doing (to show, to explain, to model, to storytelling, to control something) more than the code itself – keeps my kids focused on the higher goals. This allows them access to success even if there is something not yet working with the programming. If you only define success by who makes it to level 25 for the app, you may be able to measure that from your dashboard at a glance, but you will not support the depth of learning this time could be created with a stronger focus on creative self-expression rather than efficient syntax assembly.
The sharing and conversation at the end of the lesson can then be more about thing applied, learned, as well as challenges we did not get the best of, yet. When you code to extend a lesson, the kids all share the knowledge of the lesson and the coding experience asks them to apply that knowledge to actions and scenarios, this creates rich opportunity to rehearse the content. For example, working with BeeBots, I had a first-grade class code the robot to visit the inner planets in order then visit the outer planets, and Pluto, in order. I created solar systems with simple planet cards and some blue tape. This gives the kids 20 minutes or so in groups talking about the order of the planets. We were also learning about writing simple code sentences and input and output and counting. The structure of the lesson (groups, robots, on the floor) kept the focus on the content “Which planet is next and how will we get there?”