Showing posts with label teaching computer programming. Show all posts
Showing posts with label teaching computer programming. Show all posts

Wednesday, May 08, 2019

Johnny... Janie and Jamal still can't code... though Ivan can.

Are we in the West -- and especially the U.S. -- losing our ability to innovate or command the central technology of our era? The news seems filled with stories about fiendishly clever Russian hackers and tricks embedded in Chinese hardware, while Silicon Valley firms desperately seek immigration waivers to import foreign coders, because young Americans appear generally clueless about skills that we invented.

There are serious problem-solving efforts out there. One is CSforAll, an endeavor that emerged from Obama's Office of Science and Technology Policy (OSTP) that aims to increase the fraction of young students who are at least exposed to concepts of computer programming.

Now you know this is a pet peeve of mine. Folks are still reading and arguing over my infamous Salon article "Why Johnny Can't Code" which pointed out how BASIC and other introductory languages had quietly vanished from PCs.  (That essay got me more hate mail than even my denunciations of that horrible green oven mitt named Yoda.)

To be clear, I was not singing praises to BASIC! Rather, my target was textbook publishers who - during a ten year window - included TRY IT IN BASIC exercises in math and science and other curricula. Teachers all across the nation assigned as homework little 12-line programs at the back of say a chapter on Newton's Laws, or population biology, or geometry. And every student did them! Because those who didn't have an Apple or TRS-80 at home would find one in the school library or computer lab.

Those little weekly exercises introduced hundreds of thousands of kids to the simple notion that an algorithm can make pixels move across a screen.  And some got enthralled.

Only then publishers stopped including those exercises in textbooks, even as computers flooded every home! Why? Because most students with computers lacked any reliably consistent programming language (PL). Why did included PLs stop? A short-sighted cost-cutting measure? Some misguided wish by IBM to undermine Apple, or vice-versa? We may never learn. 

Nowadays, BASIC, Python, Squeak and several other simple languages could be included trivially, without burden on manufacturers, heck even on our phones!  And textbooks could once again include turn-key, simple, introductory exercises that teachers assign, luring millions of youths into trying their hands at programming. 

And yes, I think it's that simple. Homework. 

== A few bits of good news ==

I suppose the best outcome of all the hoorow over my “Can’t Code” article was that somebody went out and simply solved the problem! -- that is at its most-basic level. A fellow who read my essay thereupon created a cool and easy and accessible Basic site, offering a simple and obvious entry and display system. This one seems to offer the complete package. Accessibility via any mere browser, ease-of-use and instant applicability to simple textbook exercises. Quitebasic is instantly ready to use. See: http://www.quitebasic.com/  

In other words, textbook publishers could, in theory, use that one website to offer teachers programming homework. Of course, I am dreaming.

I'm still hoping that the mavens at Apple, Microsoft, Dell and so on would meet in the public interest, and agree upon a set of perhaps five very simple, introductory programming languages that can be included in their standard operating systems, so that students around the world might have access to the world of computing. How hard would that be? One meeting. Then a public announcement and a challenge to textbook publishers and teachers. Absolutely golden public relations, at virtually zero cost.

== Trying to explain it another way ==

I remain amazed at the low hanging fruit that lies so easily within reach, that no one seems to even glancingly notice. An endeavor to get the next 30% of students doing at least some programming. 

I've struggled for a decade to make a simple point clear, and have come to realize that this simple point seems impossible for very smart people to grasp. (Even now, half of you are fuming, thinking I am praising BASIC. For the rest of you, what follows will be reiteration, so?)

Here's a different approach. A comparison of two eras:

The 1980s &1990s                                                          
Teachers used to assign simple programs as homework, not just in AP classes, but in regular math, physics, chemistry, biology... even in Junior High. Those simple, ten line assignments gave millions of students at least a little exposure to what a program is... how pixels move because of algorithms.  And millions did it. Because it was homework!

 2019
Today, teachers only rarely assign creative programming homework.  What changed?

The 1980s &1990s                                                          
Teachers of physics, chemistry, bio, stats and so on could assign simple coding homework because the assignments were included in textbooks, with support explanations and teacher guides.

2019
Today, almost no Middle School or High School textbooks contain coding problems that illustrate concepts from the previous chapter.  What changed?

The 1980s &1990s                                                          
 Those textbook publishers knew only 50% or so of kids had a computer at home, but most schools at least had a computer lab the kids could use for simple assignments.

2019
Today, almost all kids have immensely powerful computers of many kinds, yet textbook publishers long ago stopped including coding examples/assignments, because students are LESS able to follow such simple assignments than they were in the 1980s and 1990s!  They haven't the tools!  What changed?

The 1980s &1990s 
Every kid who had a home computer -- or access to one at school -- thereby had access to the same, simple programming language. BASIC. It was so universal that textbook publishers were confident that most kids and teachers could find a way to get some simple example assignments done. "Try it in Basic."

2016
Today there is no common, shared lingua franca introductory programming language.  Very few home computers, laptops, tablets, game boxes or phones carry one at all!  Or it is buried deep and hard to find. Or it must be downloaded from the web along with complex instructions for installation and activation. A bewildering array of languages, variations, implementations and instructions has left only truly dedicated young people able and willing to plow ahead. 

Sure, for those enthusiasts, it is a golden age, a cornucopia! Modern endeavors like CSforALL will do well by those kids.

 But no textbook publisher will issue assignments amid such a maelstrom! And what most of the folks doing CSforAll forget is that those old homework assignments were what exposed millions of young people to at least a taste of programming!  Homework assigned by teachers not of CS but teachers of physics, chem, stats, bio and so on!

Hence my complaint about CSforAll.  It tries, admirably to develop FUN(!) ways to attract smart young folks into CS!  Yay! It should work great for the 80th to 99th percentiles.

But there should be CS for those in the percentiles 50-to-80, as well.  And those kids will not do it unless it is assigned, in small chunks.  That happened in the 1980s and 1990s!  It could happen again.

How to fix it?  The following could be done rapidly, at almost zero cost.

1. Convene a meeting of just six parties:  Apple, Microsoft, Google, IBM, RedHat, Dell.  (Okay some more.)  Arm-twist them to agree to offer 3-5 standardized educational programming languages on all platforms. Using perhaps 0.001% of their available memory capacity.  Python, LEGO, BASIC... Let them figure it out with advice from educators.

COST: Almost nothing for the meeting. Arm-twist them to meet. Almost nothing for the companies to implement - maybe two FTEs each for 6 months. Could be done before the President leaves office. 

2. Then convene a meeting of textbook publishers.  Apple, Microsoft, Google, IBM present the 5 standard languages.  Arm-twist textbook publishers to include "Try it in Basic" (or python etc) exercises in physics, chem, stats, bio books, so teachers will then assign simple, fun homework, exposing millions to a light does of programming.

3. That's it. Period. No followup needed.  No institutions or budgets or follow-through. No way Congress or anyone else can sabotage it. That's.... it.

And yes, I hammered the simple point repetitively, from many angles. Sorry. But maybe it's important enough.