Tag Archives: knowledge

Reasons for coding – a response

My comments and response to this post from Jim Cash:   Scratch vs. Swift Playgrounds

In particular, this list:


Why do you want kids to learn to code?‘ by @cashjim on “Scratch vs. Swift Playgrounds

I’m right with you on Scratch as a great place to start with programming for children. I work with slightly older students and have been using p5.js (Processing) as an intro to typed coding languages. I find it works well because syntax is straightforward, it is essentially Javascript using Processing elements and it can be run in a browser with students quickly able to see the results of their code. Much like in Scratch, Logo and some other learning languages, the connection between the concrete representation and the ability to see the change immediately make the language less abstract.

In terms of the list of right/wrong answers, I think some adjustment in phrasing might be helpful. First, the items on the left are specific knowledge that students will need to learn in order to do the items listed on the right. So, they might not be the best motivating factors for learning to code, but they aren’t “wrong” learning goals for coding.

To further support that, if we frame the items on the left in-terms of larger concepts they sound a lot better as reasons for coding. For instance, ‘learning hexadecimal codes’ or ‘learning binary’ (not in your list) could be phrased as “Learning that numbers can be represented in many ways using different bases that have advantages in a variety of contexts.” As a math teacher that is a really good reason to use coding because it provides a way for students to use different number bases in a context where those bases have meaning. We might also combine ‘Use if then statements’ and ‘learn boolean logic’ under “Learn that many problems requiring conditional thinking about the factors involved and possible outcomes.” I would see this as a mental model that is transferable beyond coding and again a great reason for learning through coding. I could go on with the examples. My point being, I think it is important to be careful about trying to separate off the ‘technical’ skills of coding from the broader goals of coding because they are interdependent.