Monday, October 26, 2015

Let's Cool It With The Kid Coding Craze!

Ten-year-olds Luisa DiGiano and her friend Devin Murphy have regular coding play dates when their new Bitsbox ships. Most recently, the friends had a
10 year olds on a "coding date" in Colo. using 'Scratch' - for mobile apps

Kids as young as 4, if recent mainstream news media are to be believed, are totally into coding. It is the latest kid pastime, evidently, even bigger than jumping rope in the "olden" days (of the 1950s, 60s). Nope! Today's kids are actually into coding for mobile apps if you can believe it!

The Denver Post Business  section lead story (p. 1K) yesterday professed how so many kids are into 'coding" - especially by coding apps at bitsbox.com. It is claimed that even "children as young as 4 spend an average of 19.32 minutes a day" coding on a variety of outlets and resources including 'Scratch', 'Codeacademy' and others.  To read the piece is to believe that we have a whole budding generation of computer scientists in the pipeline, who maybe in fifteen years or so ready to deliver A.I. via some world renowned startup.

To hear some of the proponents gush about the kid coding craze, you'd think we were already there. (Despite the fact a mere 0.3 percent of female high school students plan to major in computer science.) Nonetheless, according to Alice Steinglass, Code.org's vice president of product and marketing:

"If girls can get these skills to learn themselves, they tend to be really excited about these skills, We get close to 50 percent female (participation), and that's because when you put (computer science) in a classroom and make it part of the curriculum, half the class is female. And they're excited about it."

But somehow I'm not convinced, and remain skeptical that these little, pre-teen coders are doing anything other than mechanical tasks, invoking a minimal of critical thinking skills - or even computational thinking.. I soon found support for my suspicions in an article on the Stanford website by Shuchi Grover - who also cast a somewhat jaundiced eye on all the claims for budding kid coders emerging.

Grover noted that the 2020 Science report released in 2005 observed that science was "changing in a subtle but fundamental way--from the use of computing to support scientific work, to integrating Computer Science (CS) concepts and tools into the very fabric of science. One only has to look at how data science played a role in the Obama win in 2012, or what movie-making has become today, to realize that the science of computing is changing the face of many fields in equally dramatic, if not quite as fundamental, ways."

This is so, and one only need read through recent published abstracts- say in astrophysics - to see the extent to which numerical simulations, for example, have served as a stand- in for genuine science. By which I mean based on actual observed evidence in the real world - not merely what a computer coughs up.  The sober fact is that, given the right computer, software and algorithms, virtually anyone familiar with a computing language can cook up beautiful images, say of the meriodonal flows in the Sun, or a model coronal hole ....or a CME! (Coronal mass ejection). This isn't necessarily science, because if actual observations aren't supported then it is more in the realm of speculation. (I still recall attending a Solar Physics division conference in May, 2009, and a numerical simulation paper of the solar tachocline and meriodonal flows was presented. When the guy was asked if it helped to advance solar predictions, say for the onset of the next solar cycle, he replied "Not really". )

Grover observes:

"Yet, a generation of middle and high school students moves forward without even a cultivated awareness of computational influences on diverse fields of human endeavor. Data from the Bureau of Labor Statistics about the growth of computing jobs magnifies this schism between opportunity and capacity. In high schools and college, misconceptions and sheer lack of awareness about computer science, as well as sub-optimal early introductory CS experiences exact a heavy enrollment toll. Exposure to computing in the K-12 ecosystem could remedy this malaise--provided it’s done right."

A statement with which no didact can really argue. The central issue is whether this coding craze actually builds computational (not to mention critical) thinking skills.

Grover cites  Jeannette Wing’s "hugely influential article", "Computational Thinking,"  which argued that to reading, writing, and arithmetic, we should add computational thinking to every child’s analytical ability. Her point was that the  essence of computational thinking is in ‘thinking like a computer scientist’ when confronted with a problem.

This entails thinking logically and algorithmically understanding not only notions of flow of control in a programmatic solution but also how to systematically break down a problem and then compose an algorithmic solution.  But things are not always so straightforward. As I noted in a Nov. 2009 post regarding a high -end radiotherapy software program (for stereotactic radiosurgery)  even a tiny, innocuous assumption in the wrong place could translate into a significant aberration or displacement of the ‘head model’ and disrupt the stereotactic field (e.g throw the planning field off markedly from the real 3D head target region).

In these complex programs a danger enters when one assumes that individually interfacing modules wouldn’t be affected. But even a small, inconsequential error of the order of a single pixel in an accepted stereotactic image can often resulted in deviations, displacements many times greater. Many of these sort of internal software deviations can be traced directly to the modularity applicable to a given software program. Modularization allows the software designer to decompose a system into functional units, to impose hierarchical ordering on function usage, implement data abstractions and develop independently useful subsystems. Thus, on further examination of the modules, one may find  breakdowns in mutual exclusion – an attribute necessary to preserve modularity. Basically, “ME” is needed to ensure multiple processes don’t attempt to update the same components of the shared processing state at the same time. Will these kid coders be competent enough and develop the needed skills to see these aspects in the future?

I don't know. Neither does Grover. As he notes:

"Introductory exposure to coding in these environments (Scratch, Alice, Kodu, and web avenues like Khan Academy, Code Academy, and CodeHS - among others) is easy, hugely gratifying, and motivating. But how deeply do these children engage in computational thinking? The answer is, it depends. Wing underscored that computational thinking involves conceptualizing, not just coding and learning the syntax of a language, and it’s more about the ideas, not the artifacts. It is the thinking we employ to design solutions, not the end product or projects."

He adds:

"Decades of research with children suggests that young learners who may be programming don’t necessarily learn problem solving well, and many, in fact, struggle with algorithmic concepts especially if they are left to tinker in programming environments, or if the learning is not scaffolded and designed using the right problems and pedagogies....

Other research studies over the last 2-3 years (including one from the Scratch team at MIT Lab) suggest that tween and teen student projects may point to apparent fluency as evidenced by the computational concepts used in their projects. However, probing deeper sometimes reveals significant conceptual chasms in their understanding of the computing constructs that their programs employ."


Grover then refers to his own experiences over the last decade engaging middle and high school students "in numerous computational activities (from programming games and stories in Scratch to Robotics to mobile app programming using App Inventor, and currently as a middle school CS teacher as part of my doctoral research"

His finding?   While children comfortably learn the WHAT (blocks or syntax) of programming languages and environments, "the HOW and WHY is much harder as they construct programming solutions."

Thus he advocates that "the focus of the learning needs to go beyond the tool, the syntax of a programming language and even the work products to the deeper thinking skills".

 Most telling, to me:

"I have encountered 12-14 year olds who have ostensibly marched through an entire Javascript course online but struggle to correctly configure terminating conditions for loops that involve Boolean operators in a fairly simple program. Anecdotal evidence from classrooms and teachers that use tools like Scratch, Alice or even the newly released Tynker suggests that while children comfortably learn to modify ready-made pieces of code as a starting point, they struggle when they must progress to tracing unfamiliar code, creating their own algorithmic programs, or debugging."

Finally:

"The inadvertent peril posed by the “learn to code” mania and the cornucopia of websites advocated by avenues such as Code.org is that they may (unwisely) be equated to “CS education” for K-12 schools and educators lacking capacity and skills for teaching computing. While not so drastic, it is somewhat akin to confusing architecture with construction. It also perpetuates the misconception that CS equals programming and that children should code for the sake of coding rather than giving due attention to other important reasons for why schools should want kids to program--to promote a way of thinking and problem solving, to use computing in intelligent ways in their future careers, and yes, possibly get excited about computer science as a discipline, and be primed for success should they choose to pursue CS."

In effect, we ought not let ourselves be deluded that this current manifestation of kid coding is an end in itself, or will even lead to better computational thinking skills or superior programmers - say, who might be able to competently de-bug a complex stereotactic radiotherapy program by being fully cognizant of its modularization and potential breakdowns in mutual exclusion.

I do agree with Grover that coding "is a start--a cool, fun, worthwhile and exciting means to get started with computing" .   But the kid coding craze enrapturing the public right now should not be mistaken for the end or the acquisition of  real world skills. To that end, it is more useful in the long run for adults to avoid the hype and approach kid coding with a more practical and judicious temperament, not given to excess ....or excessive expectations!

No comments: