Coding and Computational Thinking

It would seem that the rush to teach coding throughout the K-12 student population might be tempered by a slower, more realistic approach to overall problem solving by teaching computational thinking.

Although pre-service teachers are taught ways to bring coding into their classrooms using LEGO Mindstorms kits and various apps and websites, a single outcome coding lesson pales in comparison to the wide open skill set of computational thinking.

A BBC site defines computational thinking this way: “Before computers can be used to solve a problem, the problem itself and the ways it could be resolved must be understood.  Computational thinking techniques help with this task.”

Problem solving through computational thinking breaks down the problem into manageable parts that a computer or human can understand.  The coding may be part or all of the solution or may not be necessary at all.  But as a sustainable skill, students who are practiced in computational thinking will be able to take on coding in an informed mindset.

Most general resources that I have been reading all agree on four main components of computational thinking:

  • Decomposition – what are the component parts of the problem
  • Pattern Recognition – are there repetitive actions or ideas
  • Abstraction – given this breakdown what now?
  • Algorithms – what can we tell the computer to do?

 

More posts once I learn more.  I would like to investigate the four main components and look at how computational thinking can fit with curriculum outcomes.

Coding for Middle Grades – Some Advice

I recently attended (and presented) at a conference focused on libraries and technology.  So many of the presentations had to do with coding in various library settings in order to entice young people into the library.  There were some learning points that I will take into my own practice.

No Python coding language for the under 13 group.  Typing skills are not at a place in the early years that make typing code a possibility.  With Python being so sensitive to syntax and logic errors, click and drag coding like Blockly and Scratch Jr. are the way to go.  This nugget of truth is changing my thinking about all coding.  Know your audience and adapt your teaching to each group.  It was an eye opener that the presenters from Medicine Hat Public Library had engaged middle school students in a variety of tasks using Raspberry Pi and Python with relatively good outcomes.  Could I learn Python?  Maybe.  I am more optimistic than I once was.  And the teaching of coding by this library staff concentrated on some take away knowledge covering variables, lists, conditionals, logos, functions and threading.  This knowledge is portable and transferable for these students.

Olds Municipal Library staff used CsFirst to engage middle school age patrons at their library.  Although it is a coding program, staff felt they were also teaching students to think logically, problem solve and deal with consequences.  Their goal was to help students learn to communicate with their computer.  Their advice was to print EVERYTHING involved with the lesson you were going to teach and as they had repeated the process a number of times, I would do the same.  This library’s unique position in the community allowed them to collaborate with the local middle school to partner library staff with teachers for a more comprehensive outcome.

The more I hear about coding for K-12 age students, the more I think that there are ways for teachers to include coding in their classroom without having to have a Masters in Computer Science, simple ways to use websites and apps to give a genuine coding experience. Let me know if you are using a unique way to teach coding to pre-service teachers or in another kind of teaching environment.