Thursday, January 21, 2016

Coding for Everyone

Today's song is: not a song, but Donald Duck applying Mathematics to my favorite game .. billiards


Today's post could be a long one. As many of you know, I have been involved with computers and education since 1979. I retired as the Coordinator of Learning Technologies and Information Technologies for the Ottawa Catholic School Board. I had been involved with Educating teachers on using Computers in the Classroom at the University level and was a frequent presenter at ECOO for many years. Throughout all these roles I have always been a proponent of teaching students to program. I consider programming (coding seems to be in in vogue term these days) to be the ultimate problem solving environment as it (usually, but not always) provides immediate feedback to the problem solver.

Through the years, I have championed Logo (Piaget and Papert), Scratch (MIT developed visual programming paradigm), and Lego Mindstorms (Robotics and Programming). All of these environments enable students to work from concrete to abstract as they solve problems. They all have a visual component, whether it is a turtle on the screen, visual objects representing code constructs, or a physical object responding to code commands.

Students have always embraced these coding environments but I wish I could say the same for teachers!

Obama, The UK, and 3 Canadian provinces (BC,NB,NS) have all announced that coding should and will be taught at all grade levels form 1-12.

http://www.thestar.com/news/canada/2016/01/18/bc-grade-school-students-to-get-computer-coding-training-in-new-curriculum.html

http://www.nytimes.com/2014/03/24/world/europe/adding-coding-to-the-curriculum.html?_r=1

https://www.youtube.com/watch?v=6XvmhE1J9PY

Before this can happen there is a huge training component that needs to happen. Good luck with that!  I can't remember how many times I have heard a teacher tell me 'I don't do Math'. Many an elementary teacher is challenged to answer, 'What are the 3 measures of central tendency?'.

And, just wait until the various High School subject areas start arguing where these coding courses or components should be taught. Tech, Mathematics, Business, or perhaps a new department, or better yet, blended into existing courses where it s everyone's job and you know what happens that is made the model for implementation. Can you remember 'Language Across the Curriculum'?

Oh yes, we teach all students the rudiments of writing and then teach Literature in the hopes of inspiring the next great poet or writer. But how many students actually take up pen and paper (sorry, tablet and word processor) and actually author anything. I would guesstimate way less than 1% of all students.

Why would we expect anything different with coding. We could teach all the rudiments of coding, but then, how many students will be able to actually use code to create something of use to someone with a problem to solve. That remains to be seen. I would argue that programming is a highly abstract reasoning activity that requires a certain IQ or an unique ability to think in the abstract. The closest real life activity I liken it to is the game of chess. If you are a good chess player than most likely you will be a good programmer.  How many good chess players are there, and how many people does the game of chess appeal to?  If you do not like thinking in terms of chess moves then you will not enjoy programming.

Anyone who thinks that everyone can code should consider whether or not everyone can do Calculus.

I don't mean to be cynical but I have watched this play out before. I truly believe if there is a place in the curriculum for long division, or multiplying 4 digits times 4 digits then there is a place for Coding! If there is a place in the curriculum for Shakespeare then there is a place for Coding!

But, (I know, never start a sentence with But) whatever you do, make it highly motivating. Most coding algorithms can be taught by getting students involved in coding games. If the students want to blow things up on the screen, let them. Collision detection involves the application of some of the Mathematics we teach without application. Trigonometry is needed in any complex game involving moving objects in 2d or 3d space. The Cartesian Plane is just waiting to be exploited in coding class. Radians, degrees, transformations, and matrix math can all be taught in coding game applications rather than Math theory.

However, if teachers do not embrace the need to teach coding (thinking) skills then this initiative will not succeed. Build it into your curricula, but standardize on open source software that runs on all platforms to make it inexpensive to implement. Put the money into teacher training and use the KISS principle, but understand, not all teachers will be good at this. Time to team teach in the elementary grades. I take your phys'ed class, you take my coding class :-)

Make coding the 3rd literacy right up there with Math and English literacy.

TTYL

1 comment:

  1. I am interested in Ontario adopting this increased emphasis on coding literacy as I finally have the teaching credentials now. It would be great to teach one of the Comp Studies courses.

    ReplyDelete