My comments and response to this post from Jim Cash: Scratch vs. Swift Playgrounds
In particular, this list:
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.