Monday, March 13, 2017

7 4 7 - Teaching Through "EDOC" - The Director's Cut

At the T3 International Conference in Chicago, I was asked to be a part of session titled "Seven for Seven" - seven speakers speaking for seven minutes on a topic that they are passionate about. It was a great experience and I want to thank Kevin Spry (@kspry) for the chance to be a part of an amazing lineup of speakers. For those not able to be at the session or conference, the session was on Facebook Live. Along with my talk on coding in the classroom (Teaching Through "EDOC"), attendees got a chance to listen to:

  • Sherri Abel (@sherriabel1014) - Student-centered Teacher-facilitated Engaging-minds Math-science (aka STEM)
  • Todd Morstein (@tmorstein) - Demo Friday: Challenging Students to Question and Problem Solve
  • Valerie Hudson (@vhudson_math) - Helping Student Conceptual Understanding Soar to New Heights
  • Stephanie Ogden (@SoSogden) - A World Without Teachers
  • T3 Leadership Award Winner Marc Garneau (@314Piman...not the astronaut) - Who's Doing the Math
  • Michelle Rinehart (@HowWeTeach) - Transforming Into Our Teacher Leader Selves
The process of creating one these talks is about as enjoyable as a tax audit but as I reflected afterward I thought about how it forced me to distill into a short time frame what I really wanted to relate on the topic of coding in the classroom. In particular, the process of writing out what I wanted to say really helped me organize it into a coherent narrative. And so I thought I would share the text of what I wanted to say here...all of it including what I FORGOT to say.



Hi! My name is Paul and I teach math. And I code. And I make my students code. There used to be a time when computers seemed intimidating but we would be hard pressed to go without them for a day now and we probably figured out what the steering wheel is for. My goal in just 420 seconds is to relate to you that coding can and should be as familiar to us as our use of any technology.


To arrive at that end we need to agree on what we are talking about. When we think of coding we thing of computer programming - the set of instructions a machine follows to complete a task. But my hope is to also show you that it is much more than that especially in a math class.


I listen to a podcast called All Songs Considered and I am struck once in awhile by the sheer volume of music released. It seems like so many more people are making music available. And so I wonder is it because the way we perceive and therefore make music has changed. What used to seem like something that could only be created between five lines can now be created with anything...including technology.




And so does coding suffer from the same preconceived notions. When our students think of coding, how many of them think of lines of code or the programmer as geek or nerd? Or just the magic that happens behind the screen? By coding in our classrooms we make it accessible to them and maybe get them to think it's okay to be a geek.

Changing perceptions is just one outcome of coding in the classroom. We want to also create an environment that invites collaboration, encourages perseverance, mandates that students challenge themselves and their peers to make their thinking clear and of course celebrate their triumphs.



These traits of a thinking classroom create the climate for what I think is an even greater payoff for the math teacher. There are two broad benefits that I've reflected on as critical to the math classroom once you are coding.




First, the computational proficiency that is inherently required to code is intrinsic to coding. For the program to work, the math has to be right! Writing a simple code to output the area and perimeter of a rectangle or the hypotenuse of a right triangle can only help reinforce the mathematics we are teaching.


Secondly, and in my opinion, an even larger impact is the insistence that coding should be the way we think in a math classroom. We all have seen or use different problem solving models like Polya's classic and we all break down problem solving in the same way needed to be a good coder.


I know the challenges of fitting all that we are told to do into the already crammed minutes of a period. I don't do this everyday in class but once I've covered a skill....I usually say, "I bet a machine could do that." and once the groans subside (they do die away after a time...remember we are changing perceptions), we code that skill! I don't see it as an add-on but just the right spice to make the dish taste better.





So how to start? Well how about coding something that isn't mathematical - get at the computational thinking by coding something that is familiar to them. I'm not too sure how many students know the chicken dance but here's the code! Or even better, get them to code a skill they are good at like flipping plastic bottles to land upright. That's big at my school for some reason.


And be hard on them when they start writing their code because you know the machine will be..."What do you mean syntax error?!?!?". You can use out of order cartoons as a starting point. I like coming back to this idea by giving them a program with lines of code mixed up and they need to fix it. Or here's another example I use every year in Grade 9. It only works once. If you want to try it, follow along. Here's my code: Draw a square. Draw a trapezoid. Draw a circle. Draw a triangle. Alright...everyone done?

Does your picture look like mine? No? That's because my code stunk! There was an error that I'll say was planned especially to my students but repeat to you because I missed it when I made the slide! But also my code needed so much more to make my thinking evident. This is going to speed up now.





Ken Ken. The size of the puzzle tells you the numbers you will use. This is a 3 by 3 Ken Ken so I will use the number 1, 2, and 3. Number 2 will go in the top left because I need to obey the rules of the bold boxes called cages. For the 6x, the numbers are 2 and 3 but like Sudoku I can't repeat a number in a row or column so 3 goes in the top left and 2 right below it. I only have one number left in that column which is 1. What divides to 2 and involves 1? It must be 2 to the right of the 1 which leaves 3 as the last number in the bottom row. Then 1 goes above that since that is the only number left and 3 goes right in the middle for the same reason. The last number is 1 to complete the puzzle. I love the deductive logic needed to solve these puzzles and as the puzzles get bigger and involve all 4 operations they reinforce basic number sense.

Once you've tilled the soil and planted the seeds with puzzles and coding skills, the ground is fertile for coding. This is what one of my coding challenges looks like. A simple program that requires the output to be the savings on a sale item. I want to give a shout out to fellow crazy person doing one of these talks, Michelle Rinehart for showing me this model called pseudo-code. It is the thinking needed before jumping into the programming. The parallel to Polya's problem solving model is obvious. And the reflect step is when they test their program.

And so they code. Once they feel comfortable with their pseudo-code, the journey begin and they have to bring along passengers. But it doesn't take long before they hit a pothole - syntax errors, logic errors, structural problems like nothing is being displayed. This is not the house I had pictured in my mind! But I am here to tell you...celebrate the bug. Embrace it!



I didn't anticipate it but coding perfectly aligned with some of the work my department had done around growth mindset and the work of Carol Dweck and Jo Boaler. I'm going to break one of the rules of presenting and read this quote because it was exactly what I needed to reinforce why coding was important and it will eat up some time!

Once coding became a part of my classroom it helped with my vision for what I wanted my classroom to be a thinking space. A place where they could think and wonder and make mistakes. Once of the physical changes I made to also help with that was using vertical spaces rather than horizontal desks as the place for collaborative thinking. A shout out to my colleague (and roommate) Tom Steinke for introducing me to the work of Peter Liljedahl and his research around vertical non-permanent spaces.



Here's an example from my class in Vectors. Students asked, "Is it possible to just input two algebraic vectors and have the calculator determine the resultant geometrically?". And of course I said, "I wonder." There was coding as we defined the inputs, figured out what to do with those inputs and generate the output. And you know along the way, it helped them remember the math as well!





So to close, I was trying to think of a flashy last slide that would leave you remembering something like "Everyone can code"...but this just didn't seem right. It felt like, implied in that was "Why aren't you?"








And so I changed it. But this still didn't capture it. You can code...yes but meh. And so I settled on this.

Thank you!

2 comments:

  1. Great thoughts/speech, very inspirational. The idea of students "forgetting mistakes to have them analyse bugs" will be a fruitful journey of problem solving.

    ReplyDelete