Why Johnny can’t code

Off topic discussion zone.

Moderators: winston, another_commander, Cody

User avatar
Diziet Sma
---- E L I T E ----
---- E L I T E ----
Posts: 6311
Joined: Mon Apr 06, 2009 12:20 pm
Location: Aboard the Pitviper S.E. "Blackwidow"

Why Johnny can’t code

Post by Diziet Sma »

Much truth here.. from the wordprocessor of David Brin, no less.

It may be 6 years old now, but things haven't really changed since the article was written.
BASIC used to be on every computer a child touched -- but today there's no easy way for kids to get hooked on programming.
http://www.salon.com/2006/09/14/basic_2/
Most games have some sort of paddling-pool-and-water-wings beginning to ease you in: Oolite takes the rather more Darwinian approach of heaving you straight into the ocean, often with a brick or two in your pockets for luck. ~ Disembodied
User avatar
Cmdr James
Commodore
Commodore
Posts: 1357
Joined: Tue Jun 05, 2007 10:43 pm
Location: Berlin

Re: Why Johnny can’t code

Post by Cmdr James »

HTML and javascript are everywhere, Id imagine they cover the entry point of the old basic. If not, then java is pretty pervasive, as is C but I cant imagine the average 7 year old going out and getting gcc.
User avatar
cim
Quite Grand Sub-Admiral
Quite Grand Sub-Admiral
Posts: 4072
Joined: Fri Nov 11, 2011 6:19 pm

Re: Why Johnny can’t code

Post by cim »

Cmdr James wrote:
HTML and javascript are everywhere, Id imagine they cover the entry point of the old basic. If not, then java is pretty pervasive, as is C but I cant imagine the average 7 year old going out and getting gcc.
Maybe. I don't think it's about the absence of a programming language as such, but more about how you can so easily avoid it. On the old BBC, you more-or-less had to use BASIC. Even if all you started with was LOAD "ELITE", RUN you were still programming. The step from there to writing a simple "Hello World", and then more complicated things, was really small. (And the manual expected you would do, at least a little bit). Then, if you wanted to play more games, there were the listing magazines. Even if you just typed them in without understanding to start with, you'd start to pick little bits up for yourself. And the contents of the magazines were mostly "good but improvable" so "I could do better" was a reachable target.

Nowadays, the step from "double-click to run an application" to "choose language; search internet for programming environment; install environment; enter program" is very very large - and more importantly, you have to decide you want to do it first, and then go through a whole series of steps to get started. And Python, which is probably closest to BBC BASIC in the sense of having a nice interactive interpreter, is not an obvious choice for this unless someone already knowledgeable is deliberately teaching you, and it doesn't come with Windows.

The other nice thing with the BBC is that primitive sprite and line-drawing graphics were very easily accessible. You want to do anything on a modern PC beyond printing a line of plain white text at a time and you'll have to dig into ncurses just to get colourful text - or something like SDL, OpenGL, DirectX, or whatever, if you want actual graphics.

I think "game modification languages" might be the next entry point - rather than reinventions of Basic, or similar, and trying to get back to an environment which doesn't make sense nowadays - they may be limited purpose, but you get instant results, you've got lots of existing code to look at for examples, you can start small and go up to "among the best" quicker than in more general programming, and someone else has already done the work to mess around with libraries, compilers, and the rest.
User avatar
Diziet Sma
---- E L I T E ----
---- E L I T E ----
Posts: 6311
Joined: Mon Apr 06, 2009 12:20 pm
Location: Aboard the Pitviper S.E. "Blackwidow"

Re: Why Johnny can’t code

Post by Diziet Sma »

Cmdr James wrote:
HTML and javascript are everywhere, Id imagine they cover the entry point of the old basic. If not, then java is pretty pervasive, as is C but I cant imagine the average 7 year old going out and getting gcc.
As Brin points out, (admittedly kinda indirectly) the point with BASIC was that it was simple. No faffing about with the extraneous junk you have to prepend & append to any higher-level language code to get it to run.. no compiling.. just a few simple lines of code which gave you instant feedback. Any kid could just jump in and DO it.

With a higher level language, even "Hello World" needs a dozen lines of code, most of which are not intuitive.
Most games have some sort of paddling-pool-and-water-wings beginning to ease you in: Oolite takes the rather more Darwinian approach of heaving you straight into the ocean, often with a brick or two in your pockets for luck. ~ Disembodied
AkTanatha
Above Average
Above Average
Posts: 19
Joined: Sat Dec 15, 2012 1:05 pm

Re: Why Johnny can’t code

Post by AkTanatha »

From my experience of the education system, the problem is the lack of correct exposure. Way too many consoles and way too many smartphones make the inner workings of computing seem alien to kids. Also, I think there isn't a sufficient standard of programming knowledge in the educators of many schools (including 3rd level I might add!!).

There is a small hope, by perhaps introducing a child to Python (the language - not the spacecraft!), its a pretty easy high level language, with a short learning curve.
I feel it's about relating to what kids like. For example, if they like Maths - show them some maths algorithms in code.
It's very easy get frustrated by others lack of interest, but, they didn't spend their childhood mashing rubbery keys or carefully protecting 5 1/4 or 3 1/2 disks, hell, even a floppy disk would amaze a lot of people now at this stage :)

Oh...and I still get jolly's at the thought of Run"" or Load :mrgreen:
User avatar
Smivs
Retired Assassin
Retired Assassin
Posts: 8408
Joined: Tue Feb 09, 2010 11:31 am
Location: Lost in space
Contact:

Re: Why Johnny can’t code

Post by Smivs »

AkTanatha wrote:
From my experience of the education system, the problem is the lack of correct exposure.
Certainly here in the UK 'ICT' (Information and communication technology) seems to involve only teaching kids to use proprietary software from a certain company! Thankfully as I understand it things are set to change so that programming is to be given more priority and using M$ stuff is going to be reduced. So there is some hope for future generations.
Commander Smivs, the friendliest Gourd this side of Riedquat.
User avatar
drew
---- E L I T E ----
---- E L I T E ----
Posts: 2190
Joined: Fri May 19, 2006 9:29 am
Location: In front of a laptop writing a book.
Contact:

Re: Why Johnny can’t code

Post by drew »

Gents. Get your kids into scratch. It's awesome.

Here's my son coding 'Space Invaders' from ..er.. scratch, on his own.

http://www.youtube.com/watch?v=eEesXnph ... A&index=12

Cheers,

Drew.
Drew is an author of SF and Fantasy Novels
WebsiteFacebookTwitter
AkTanatha
Above Average
Above Average
Posts: 19
Joined: Sat Dec 15, 2012 1:05 pm

Re: Why Johnny can’t code

Post by AkTanatha »

Smivs. Agree totally - a generation of office admin power users have been created. I don't want to slag off any software in particular, because it has its important uses, and it just gets overused and improperly used a lot of the time.

drew. That looks brilliant, I will be showing this to my nephew :)
User avatar
CommRLock78
---- E L I T E ----
---- E L I T E ----
Posts: 1138
Joined: Sat Apr 07, 2012 7:35 pm
Location: US
Contact:

Re: Why Johnny can’t code

Post by CommRLock78 »

drew wrote:
Gents. Get your kids into scratch. It's awesome.

Here's my son coding 'Space Invaders' from ..er.. scratch, on his own.

http://www.youtube.com/watch?v=eEesXnph ... A&index=12

Cheers,

Drew.
That's the truth for anything you want them to excel at - I've been letting my two year old son play around at the piano, and I've got an old desktop computer with his name on it :D.
"I'll laser the mark all while munching a fistful of popcorn." - Markgräf von Ededleen, Marquess, Brutal Great One, Assassins' Guild Exterminator
---------------------------
At the helm of the Caduceus Omega, 'Murderous Morrígan'
User avatar
CommRLock78
---- E L I T E ----
---- E L I T E ----
Posts: 1138
Joined: Sat Apr 07, 2012 7:35 pm
Location: US
Contact:

Re: Why Johnny can’t code

Post by CommRLock78 »

I think the real problem has been stated: that modern computers come with no simple, default programming language, and moreover, don't require the user to do any programming in order to use the computer. My first computer was the TI-99/4a, which had a built-in BASIC and a separate "Extended" BASIC. Perhaps a simplified Python would be a good default language.
"I'll laser the mark all while munching a fistful of popcorn." - Markgräf von Ededleen, Marquess, Brutal Great One, Assassins' Guild Exterminator
---------------------------
At the helm of the Caduceus Omega, 'Murderous Morrígan'
User avatar
Diziet Sma
---- E L I T E ----
---- E L I T E ----
Posts: 6311
Joined: Mon Apr 06, 2009 12:20 pm
Location: Aboard the Pitviper S.E. "Blackwidow"

Re: Why Johnny can’t code

Post by Diziet Sma »

AkTanatha wrote:
drew. That looks brilliant, I will be showing this to my nephew :)
It does indeed.. here's the link to the Scratch project. It runs on Mac, Windows and Debian-based Linux.

http://scratch.mit.edu/
Most games have some sort of paddling-pool-and-water-wings beginning to ease you in: Oolite takes the rather more Darwinian approach of heaving you straight into the ocean, often with a brick or two in your pockets for luck. ~ Disembodied
User avatar
Disembodied
Jedi Spam Assassin
Jedi Spam Assassin
Posts: 6885
Joined: Thu Jul 12, 2007 10:54 pm
Location: Carter's Snort

Re: Why Johnny can’t code

Post by Disembodied »

Partly the problem is environmental, too. Back in the Cambrian era of personal computers (and computer games, in particular) - the 1980s - it was relatively easy to write something, even in BASIC, which wasn't totally out of touch with the best commercial stuff available. There were pretty major limits to what anyone could do with the available hardware, and the bottom end wasn't so drastically far removed from the top of the line.

Because there were these limits to expectation, as much as anything else, people could, so to speak, get inside the heads of their computers and learn how they "think"; they could get to understand the logical processes at work. Now, though, people carry vast reservoirs of computing power in their pockets. There's no need to understand the fundamentals because modern computers are designed to carry the user along. The environment of the personal computer has changed, too: back at the dawn of time they were only used, pretty much, by enthusiasts and programmers. Now everyone has to use them, all the time. An analogy might be drawn with the car: early drivers were enthusiasts, and thought nothing of spending days up to their elbows in engine, tinkering away, learning which grommet attached to which wongle and why. Now, engines are crammed with components that can't be accessed physically, let alone repaired by a human being with a set of hand tools.

In many ways, it's user-friendly computers that are to blame. Even a DOS prompt let the user have some sort of glimpse at the inner logic: but point-and-click GUIs are designed to separate the user from the bowels of the machine they're using. For very good, sound commercial reasons, of course.

Educationally, the current idea in the UK - teach children how to use Excel, taught by someone who doesn't know how to use Excel - is symptomatic of the sort of know-nothing bozos who wash up in office in this country. It's the equivalent of teaching children physics by showing them which button starts the cyclotron. Really, they should be starting with the real basics: begin by teaching them binary, and logic, and what "computation" means. Keep them away from PCs and laptops - at least as far as computing goes - and get them playing with something like the Raspberry PI. A bit of grammar and punctuation wouldn't do them any harm, either, as a demonstration of expressing information clearly and concisely; after all, misplace a comma or a semi-colon in your code, and it's garbage ...
User avatar
DaddyHoggy
Intergalactic Spam Assassin
Intergalactic Spam Assassin
Posts: 8515
Joined: Tue Dec 05, 2006 9:43 pm
Location: Newbury, UK
Contact:

Re: Why Johnny can’t code

Post by DaddyHoggy »

I teach at many levels at Uni - but we often get army Majors going into Simulation/Computing heavy jobs that during my "Hardware Fundamentals" lecture - get all glassy eyed over binary and 8-, 16-, 32- and 64-bit CPUs and Operating Systems because they've never seen it before.

Now, at the beginning of the lecture, I take an old PC apart and hand around the various bits, CPU, memory, gfx card, motherboard while I talk to them.
Selezen wrote:
Apparently I was having a DaddyHoggy moment.
Oolite Life is now revealed here
User avatar
Cody
Sharp Shooter Spam Assassin
Sharp Shooter Spam Assassin
Posts: 16081
Joined: Sat Jul 04, 2009 9:31 pm
Location: The Lizard's Claw
Contact:

Re: Why Johnny can’t code

Post by Cody »

DaddyHoggy wrote:
... I take an old PC apart and hand around the various bits, CPU, memory, gfx card, motherboard while I talk to them.
I had a college tutor who did that - a good idea.
I would advise stilts for the quagmires, and camels for the snowy hills
And any survivors, their debts I will certainly pay. There's always a way!
User avatar
DaddyHoggy
Intergalactic Spam Assassin
Intergalactic Spam Assassin
Posts: 8515
Joined: Tue Dec 05, 2006 9:43 pm
Location: Newbury, UK
Contact:

Re: Why Johnny can’t code

Post by DaddyHoggy »

We also teaching two Simulation Interoperability Standards - IEEE 1278 DIS and IEEE 1516 HLA - problem with HLA, is that to do almost anything in it, you have to be able to understand some kind of computer programming language and almost all of my students at Masters level no longer how this ability.

I started with a C64 and wrote BASIC games - RPGs mainly (using the built in ASCII extended characters - and then later writing my own sprites and scrolling backgrounds and sounds)

Then I got the Simons' Basic cartridge for my C64 and for my GCSE Computer Exam wrote an Art Package (it was slow - but it worked surprisingly well).

I dabbled in Assembly when I wanted things to run faster or have more control at the raster level of the 64s VIC chip.

Then I got my Amiga A500 and started on Amiga Basic and got to grips with "real" multi-tasking which stood me in good stead for many years.

At Uni (BSc - '90-'94) I did C, Smalltalk (so I already understood multi-tasking and multi-threading thanks to Amiga Basic), Ada (shudder) as well as Visual Basic (not the stuff inside Excel - although I learned to use that too)

The first program I wrote for the MOD I used Q-Basic because they gave me a 16MHz 386 that couldn't run anything else...

The first program I got to debug was 100,000 lines of uncommented Fortran 77 code and although I had never seen F77 before - I had to pick it up and I did.

When I was doing my MSc we got into DirectX and OpenGL and therefore C++ (I understood C and the concept of inheritance/classes from BSc Smalltalk days).

My MSc project I actually wrote (deliberately) in Visual Basic inside Excel because that way I could give the code over to the Neural Networks people to use for teaching BSc level on how MLPs worked, because they could step through the code and watch Excel populate the tables as the Neural Network was trained.

I'm not actually a very good programmer - I'm slow and not very inspired, but I can work out the syntax of most code eventually.

I've bought a Raspberry Pi and I have introduced my 11yo to Scratch but ideally I'd like to get her started on Python (because I'd like to learn it too!) or Java (same reason).
Selezen wrote:
Apparently I was having a DaddyHoggy moment.
Oolite Life is now revealed here
Post Reply