TITLE: The Relationship Between Coding and Literacy
AUTHOR: Eugene Wallingford
DATE: January 28, 2015 3:38 PM
DESC:
-----
BODY:
Many people have been discussing Chris Granger's recent essay
Coding is not the New Literacy,
and most seem to approve of his argument. Reading it brought to
my mind this sentence from Alan Kay in VPRI Memo M-2007-007a,
The Real Computer Revolution Hasn't Happened Yet:
Literacy is not just being able to read and write, but being able
to deal fluently with the kind of ideas that are important enough
to write about and discuss.
Literacy requires both the low-level skills of reading and writing
and the higher-order capacity for using them on important ideas.
That is one thing that makes me uneasy about Granger's argument.
It is true that teaching people only low-level coding skills won't
empower them if they don't know how to use them to use them fluently
to build models that matter. But neither will teaching them how to
build models without giving them access to the programming skills
they need to express their ideas beyond what some tool gives them.
Like Granger, though, I am also uneasy about many of the
learn-to-code efforts. Teaching people enough Javascript or Ruby
to implement a web site out of the box skips past the critical
thinking skills that people need to use computation effectively
in their world. They may be "productive" in the short term, but
they are also likely to hit a ceiling pretty soon. What then?
My guess: they become frustrated and stop coding altogether.
We sometimes do a better job introducing programming to kids,
because we use tools that allow students to build models they care
about and can understand. In the VPRI memo, Kay describes
experiences teaching elementary school, students to use eToys to
model physical phenomena. In the end, they learn physics and the
key ideas underlying calculus. But they also learn the fundamentals
of programming, in an environment that opens up into Squeak, a flavor
of Smalltalk.
I've seen teachers introduce students to Scratch in a similar way.
Scratch is a drag-and-drop programming environment, but it really is
a open-ended and lightweight modeling tool. Students can learn
low-level coding skills and higher-level thinking skills in tandem.
That is the key to making Granger's idea work in the best way possible.
We need to teach people how to think about and build models in a way
that naturally evolves into programming. I am reminded of another
quote from Alan Kay that I heard back in the 1990s. He reminded us
that kindergarteners learn and use the same language that
Shakespeare used It is possible for their fluency in the
language to grow to the point where they can comprehend some of the
greatest literature ever created -- and, if they possess some of
Shakepeare's genius, to write their own great literature. English
starts small for children, and as they grow, it grows with them. We
should aspire to do the same thing for programming.
Granger reminds us that literacy is really about composition and
comprehension. But it doesn't do much good to teach people how to
solidify their thoughts so that they can be written if they don't
know how to write. You can't teach composition until your students
know basic reading and writing.
Maybe we can find a way to teach people how to think in terms of
models and how to implement models in programs at the same time, in
a language system that grows along with their understanding.
Granger's latest project,
Eve,
may be a step in that direction. There are plenty of steps left
for us to take in the direction of languages like Scratch, too.
-----