Tag Archives: Teach Logic

Learning to Code: empowering myself and my students

Previous Experiences With Coding

I’ve been hearing about the benefits of coding in the classroom for a while now, mostly through talking with my co-workers from EYES Camp, where I worked last summer. At the end of each week of camp, I got to see the amazing projects campers in the E-Design Codemakers program had come up with. David Brown, my amazing colleague and friend, is an avid supporter of coding and teaching logic in the classroom.

Hour of Code

At David’s advice, I decided to start with Hour of Code. Since I’m a very easily frustrated person, I was a little nervous to try it because I didn’t want a negative experience to potentially discourage me from bringing coding into my classroom. To my surprise, my first Hour of Code was a fantastic experience! I chose the Make A Flappy Game activity and had a lot of fun with it.

I was impressed with how accessible the activity was. It walked me through every step, using a series of puzzles with clear instructions to introduce me to the different aspects of the game. I learned to drag and drop blocks that represent computer commands to change the parameters of the game and finally got to put it all together by creating my very own flappy game! You can try it out here. (Warning: it’s surprisingly addicting.) I think students would have a lot of fun making their own games and trying out each other’s game creations.

Since I enjoyed my first Hour of Code so much, I decided to try another activity! This time, I chose the Classic Maze activity. In these puzzles, I had to drag and drop blocks to build code that would get my character (which ranged from angry birds to a zombie to Scrat from Ice Age) to move through the maze successfully.

Here is what puzzle #17 looked like:

Screen Shot 2016-04-01 at 6.58.17 PM

I had to drag and drop the blocks like this in order to get Scrat to his acorn:

Screen Shot 2016-04-01 at 6.58.54 PMDuring and after completing the puzzle, I could click and view the actual code. I appreciated this because it made it feel more like “real coding” for me.

Screen Shot 2016-04-01 at 6.59.34 PM.png

Here is a short video of me completing the final puzzle in this activity:

Why Teach Kids To Code?

After these positive experiences, I did a little reading about teaching students to code because I definitely have a lot of learning to do in this area. Through reading and reflecting, I came up with a few potential reasons to teach kids to code. (This list is a work in progress.)

  1.  It gives them a deeper, less-mystified understanding of the world around them.

I find this reason really interesting because I think this is something I don’t personally value enough. To give an example, my fiance loves taking things apart and putting them back together. He finds it really satisfying to figure out how things work and why they work the way they do. I, on the other hand, can barely sit through an episode of How It’s Made. I’m not sure why, but I find it really easy to just accept that things work and I don’t often wonder about the why or how behind it.

So despite my lack of curiosity and sense of wonder, I want to spark my students’ curiosity and encourage them to investigate and make discoveries that lead them to a deeper understanding of the world. Coding could be a really valuable way to do that. Maybe it would also help me develop my curiosity and appreciate a less mystified understanding of the world!

2.  It can make students more expressive by giving them a new way to understand and describe their world.

“If you think computer programming is all about math, you’re wrong. It’s about describing a situation precisely, and giving good directions for what to do when conditions change.” -Tom Igoe

I’m starting to think of coding in a broader way – it’s more than just math or stringing together a bunch of symbols in computer lingo. It’s a different and precise way to expressing oneself that can widen students’ view of the world and positively contribute to their development.

3. Coding can be empowering (but it is also shaped by wider issues of power).

In this article, Ben Williamson problematizes the current the current preoccupation with coding, noting how if we elevate coding activities and ways of thinking to a dominant position, we may marginalize other forms of educational activity and thought. He asks: “What assumptions, practices and kinds of thinking are privileged by learning to code? Who gains from that? And who misses out?”

I definitely agree that those are important questions to ask; however, I believe we need to ask those questions of everything we do in the classroom. Whose voice are we privileging? Whose voice are we leaving out? What are we making possible/impossible? It’s important that we constantly reflect on these in order to be as anti-oppressive as possible.

This actually reminds me of Foucault’s idea that we gain agency by taking up particular discourses (becoming a subject) but we are also constrained by that discourse (become subject to it). Similarly, coding is an empowering activity but it is also shaped by wider issues of power in educational technology. I think it’s important to remember that and to keep educating myself on the reality of activities associated with coding (ie. the incessant updating of skills and fluency in different programming languages, operating systems, etc.) and on the issues with our increasingly algorithmic culture.

Coding and Chess

Interestingly, when I was doing my Hour of Code activities, I was struck by how much it reminded me of playing chess. Oftentimes when I play chess, I can come up with a plan that I want to put into action, but struggle with what order to play the moves in to make the plan work. John Bartholomew describes this challenge in this video, advising players to get used to changing move orders in their calculations and to look at different permutations of a good idea in order to implement a plan successfully. Similarly, I noticed that sometimes in the coding activities I knew what I needed to do but would put the blocks in the wrong order and have to run my program a few times before it would work.

I am not the first to notice similarities between coding and chess! They both involve patterns, logical thinking, tactics and strategy, and beauty. This interesting article outlines some of these similarities.

Final Thoughts

I think learning to code would be extremely beneficial for my students and for me! This is definitely something I want to continue to learn about and practice with. I see that coding has the potential to help my students and I develop a deeper understanding of the world, teach us a new way to express ourselves, and empower us as 21st-century learners.

If you have any resources, activities, or suggestions for learning to code, please comment below! I would love to hear from you.