Conversational Code

You won’t find Swift anywhere on that map.

Speaking of computer science for all (as in a post from last week), Apple CEO Tim Cook was visiting a college in the UK to promote the company’s Everyone Can Code curriculum. The UK Guardian was one of the news organizations that covered Cook’s stop, as they might for a visiting rock star.

Although the headline (“Apple’s Tim Cook: ‘I don’t want my nephew on a social network’”) hints that the article will focus on the newly-discovered issue of tech overuse, most of it is a largely flattering profile of Cook. Plus some information about the financial and tax problems Apple is facing in both Europe and the US.

But buried in the small section about whether everyone should learning programming, we find this idea from Cook.

I think if you had to make a choice, it’s more important to learn coding than a foreign language. I know people who disagree with me on that. But coding is a global language; it’s the way you can converse with 7 billion people.

I’m one who would disagree.

Coding is largely a global standard, but it is not a language for communications. Learning to code does not help students understand the world outside their borders and offers no insight into another culture. It is not more important than learning a conversational language that is not their own.

If a school was, for some reason, forced to make a choice between the two, their students would be far better off in a Spanish or Chinese language course than they would be learning to code.

CS Is Not The Solution

Despite being “someone who’s been making software and Internet technologies for 20 years”, tech pioneer Anil Dash is “skeptical about ‘teach the kids to code!’ as a panacea for all of society’s ills”. Me too, and he does a great job of making the point.

To start with the obvious elephant in the room, many of the people advocating for these programs aren’t particularly knowledgeable about technology, or the economics of today’s tech startups, in the first place. (Most people making policy haven’t yet realized that there is no “technology industry”.) And most of the technologists advocating for these programs aren’t particularly literate in how today’s educational systems work, or what constraints they face.

Most of those policy makers also don’t have a clear idea of what students need to learn and be able to do before they move into the real world. Their concept of “school” is usually firmly rooted in the 1950’s, with their favorite “solution” – charter schools, STEM, standardized testing, coding, and more – grafted onto the standard framework.

Anyway, in the case of coding for all, advocates often make an economic claim, one that says American companies will be desperate for new workers to write software, with the numbers often in the hundreds of thousands. But even if all those vacancies come to pass, Dash says turning schools over to code training is not in the best interest of society.

If the effort to educate many more programmers succeeds, simple math tells us that a massive increase in the number of people qualified to work on technology would only drive down today’s high wages and outrageously generous benefits. (Say goodbye to the free massages!)

And at a more philosophical level, a proper public education, paid for by taxpayers, shouldn’t be oriented toward simply providing workers for a group of some of the wealthiest, most powerful companies to have ever existed.

However, Dash does believe that every students does need a basic understanding of technology literacy and computer science, saying that these concept, woven throughout the curriculum could be “a powerful way to empower the most marginalized, most needy people in society”.

Rather than turning every school into coding academies, he wants us to commit to some broad principles about how we teach computer science, including teaching computational thinking which includes an understanding of how “human concerns are translated into problems that computers can help solve”.

As we commit to broadly teaching technology, we must do a better job of addressing all of the personal, social, cultural, and civic concerns that arise with technology’s transformation of our society. Teaching CS as simply a way of filling a pipeline of employees for giant high-tech companies is not enough. Indeed, if that’s all we succeed in doing, we’ll have failed. But if we can show a whole generation of young people that technology and computer science can be one of the tools they use to pursue their passions, and amplify their impact on the world, we’ll have made a worthy addition to the canon of material that students use as a basis for their life’s work.

As someone who has studied computer science and taught programming classes, Dash’s ideas sounds a whole lot better than what is in most of the “computer science for all” proposals I’ve read.

Coding for Everyone (Who Wants It)

Just one last ISTE conference-related post for this season. Promise.

So, coding was also a big topic again this year. After proclamations from the president and corporporate leaders that all students should take computer programming classes, and lots of edtech vendors jumping on the bandwagon, how could it not be?

But the most rational statement on the matter came from Hadi Partovi, co-founder of Hour of Code, the program responsible for jump starting the everybody-must-code movement. At the pre-show for the Tuesday morning keynote he disagreed with that idea, telling the audience flat out that no, every students does not need to learn to code. But every school should offer computer science.

Partovi didn’t have much time to elaborate (in typical talk show format, the next guest was waiting in the wings) and his point was quickly overshadowed a minute or so later by the R2D2 robot he rolled on stage, accompanied by an announcement it would be available for selfies. Shiny objects.

However, that difference between requirement and opportunity needs more emphasis.

Kids certainly need to understand the concepts of programming, the logic behind the computing devices, visible and not, they use everyday. That needs to be a fundamental part of the basic course of study, replacing the rote processing and endless repetition in the K12 curriculum we call “math”.

The computer science classes need to be available for those kids who want to go further. Not to prepare them for one of the umpteen thousands of jobs the industry claims will go unfilled, but because the student chooses to explore an area of study that interests them.

Once again, coding should be one part of every child’s total school experience. An experience that offers them the broadest possible spectrum of what’s available in the world, and helps them make informed choices.

Learning to Code Should Not Be About Getting a Job

Since our new superintendent arrived last July, she’s been making some high-profile attempts to attract input from the larger community.* One example of that effort is a forum on a service called UserVoice which allows anyone who registers to post suggestions and then comment and vote on the ideas of others.

As of the date of this entry, the top vote getter suggests “Our students should learn to code”, with 989 votes and 24 comments. Slightly ahead of complaints about class size, teacher pay, and the ever-popular issue of later start times for high schools.

Unfortunately, the writer of the coding idea tied it to offering formal computer science classes and helping students better qualify for jobs in that field.

There are, of course, far better reasons that kids need to learn the basics of programming starting in elementary grades. Here’s a comment about the context of learning to code I added to the original suggestion.

Certainly every student should learn the concepts of programming but it has nothing to do with getting a computer science-related job. Everyone should have a good understanding of how the systems that control the world work. Too many people put their trust in technology without having a clue about what goes on behind the screen.

Learning about those processes should be a fundamental part of the school curriculum starting in the lower elementary grades. Some kids will be interested and want to continue in the field. For everyone else, they acquire invaluable knowledge for whatever vocation they follow as well as being a more informed member of society in general.

Do you suppose our superintendent will pay any attention to the idea of students learning to code (other than expanding high school programming classes)? The cynic in me doubts she will. Those concepts are not on the SOLs, and we all know that what gets tested is what gets taught.


* Her “listening tour” arrives in my neighborhood later this month. It may be worth a rant or two.

Coding for Lifelong Learning

At a recent TEDx event, Mitch Resnick, director of the Lifelong Kindergarten Group at the MIT Media Lab, presents the case that learning to code is an essential skill all children need to learn.

In the first part of his talk, Resnick argues against the tired old belief (excuse?), held by so many teachers, that kids are far more tech savvy than they will ever be.

All of us have heard young people referred to as “digital natives”. But actually, I’m sorta skeptical of this term. I’m not so sure we should be thinking of young people as digital natives.

There’s no doubt that young people are very comfortable and familiar with browsing and chatting and texting and gaming. But that doesn’t make you fluent.

Young people today have lots of experience and lots of familiarity with interacting with new technologies but a lot less so with creating with new technologies, and expressing themselves with new technologies. It’s almost as if they can read but not write with new technologies.

He goes on to discuss how we expect kids to become fluent at reading and writing the written word and we should also be helping students learn how to effectively create with new technologies, not to improve their consuming skills.

However, just as we don’t teach reading and writing so kids will be come professional writers – very few will follow that path – we should also have other, higher goals in mind when teaching the process of coding.

Again the same thing with coding. Most people won’t grow up to be professional computer scientists or programmers. But those skills of thinking creatively, reasoning systematically, working collaboratively, skills you develop when you code in Scratch [the programming interface for young people developed by his group] are things people can use no matter what they’re doing in their work lives.

 Watch the whole thing for more of his ideas and a look at some new Scratch features coming soon.