David Brin Laments Absence of Programming For Kids 355
An anonymous reader writes "David Brin is an award-winning science fiction writer who has often written on social issues such as privacy and creativity. Now, he's written an essay for Salon.com titled 'Why Johnny Can't Code'. He discusses his son's years-long effort to find a way to use his math book's BASIC programming examples. All they were ever able to find, however, were either children's versions (on the Mac) or 'advanced' versions which attempted to support modern programming requirements (and which required constant review of the user's manual). Ultimately, they ended-up buying an old Commodore 64 on Ebay — Yes, for those of you under the age of 30, 'personal' computers like the Apple II and C64 used to all include BASIC in their ROMs."
There are options (Score:3, Interesting)
Re:There are options (Score:4, Interesting)
This sounds very much made up to write an article.
Having said that, I have tried to find kid's programming books for my 8-year-old daughter. I started learning computer programming at 8 using my Commodore VIC-20 manual. It had a little cartoon computer character that led you through BASIC programming from the typical 10 PRINT "TIM" 20 GOTO 10 all the way to "advanced" games. As a kid, I absolutely loved it.
However, I have been able to find *nothing* like that for her... Any thoughts out there?
Re: (Score:2)
Re: (Score:3, Insightful)
Squeak homepage [squeak.org]
and the Education focused site [squeakland.org]
Re: (Score:3, Funny)
However, its a crying shame that a good solid programming language, perhaps with game making potential or some other hook for kids, isnt included with every copy of windows.
Oh yeah old school basic for Windows: http://www.nicholson.com/rhn/basic/#5 [nicholson.com]
Its really really old school however.
Re: (Score:2)
Re: (Score:3, Funny)
Sure it is.
Re: (Score:3, Informative)
Welcome back to Slashdot - we missed you yesterday (Score:5, Funny)
Re: (Score:2)
Re: (Score:3, Insightful)
Actually I really learned to program on an HP calculator. I had previously done some C, but the simple metaphor of the stack was alluring.
Re: (Score:2, Informative)
Re: (Score:3, Insightful)
Re: (Score:3, Insightful)
Yeah, seriously I'd avoid teaching kids PERL. One problem basic DID have is it taught a few bad habits (Goto's, bad variable nameing , etc). Perl unfortunately in its quest for "More than one way to skin a cat", allows some shocking codeing, and unfortunately my eternal grip with perl, is it begets shocking code. "Hey , you have a language that lets you do cool stuff like closures and stuff (I think?) and you are using fucking $_@ variables and using regex's to traverse DOM trees. STOP PROGRAMMING, YOUR NOT
Re: (Score:3, Insightful)
There are tons of other languages that could have been used, but each one would have required translating the code in the textbook.
The artical wasn't about the lack of BASIC per se, but about the lack of support for learning the roots of the higher languages. Everyone says - oh, don't play with that crap - go for the higher languages - Object oriented blah blah blah. The point was that that's not how it should be done. Yeah you can learn the hi
Re: (Score:3, Insightful)
Isn't, then, the problem with the school purchasing textbooks that were designed for the 1980s?
I'm not sure what you mean by "roots" and "higher". I don't need to learn BASIC to understand the roots of, say, C++. I don't see how learning a modern derivative of Logo (which, along with BASIC, was a common teaching
First Big Tits Dupe (Score:5, Interesting)
Perl seems to fit the bill, since it can be as simple as you want and doesn't even have the type issues Basic has. Perl is happy to be procedural. When you are ready to step up to objectsperl is ready.
Object oriented perl is a wonderful way to learn objects. Wait don't scream. I said "learn". I'd been object oriented programming for years in Java and other languages. But I truly did not understand how all the pieces worked till I wrote perl objects. In perl it's like one of those "visible man" models. You learn how inheritance works. You learn how binding of an instance to a class works. You understand closures for the first time. You understand how the namespaces are kept separate and how instance memory is allocated. It's not just some voodoo that simply works, like in JAVA. Moreover all of the voodoo is not out of reach but right there for you to mess with. An instance can change it's own inheritance if you want it to. An instance can create a new method and write it into it's own namespace if it wants to. An instance can trap calls to it's own methods and redirect them or intercept calls to methods that don't exist and respond to them.
Those features are not unique to perl (for example pyhton implements objects identically to perl). The difference is that All of that object management occurs in perl itself and is not hidden behind syntactic sugar (like python and java). You quickly appreciate what dereferencing costs, etc...
The other thing that is nice about perl for learning is all of those prefixes like $ @, and so forth. They may make perl look like cursing but they force you to think about what a variable is. When I index out an array, I get what? an array? no I get a scalar, so $X[2] is how I index @X. You can look at someones perl program and if it's written well tell what every word is. You cannot look at a bare name in python or java and tell if it's a method, an array, a hash, a scalar or reference. Perl you can. (Oh and by the way let me explode a perl/pyhton myth. python has more special markup characters in use than perl, the main difference is that in python they are suffixes instead of prefixes and are overloaded with multiple meanings--try counting how many modifiers there are some time (e.g. () , [] ** and so on))
Now once you learn perl objects. Well it's time to put down the perl and back away slowly. Python, java are much better languages for writing re-usable, easily read, complex object oriented programs. Perl is still a much more powerful language than either. But it's powerful for efficiently creating compact or single use programs quickly. Not for well designed complex systems.
Perl is good language to start in, plus it's useful enough to work throughout your career. Basic is not.
Re: (Score:2)
The books his son are using were probably published 10-15 years ago. When you factor in the amount of time from when the author actually wrote them, I'd say it's closer to 20. The books being written today probably don't have code examples in them. Even if MS were to include basic in Vista right now, there would be a lag time of when it'd appear in books again.
That being said, I think he has a point that a simple programming language s
Re:There are options (Score:4, Informative)
Re:There are options (Score:4, Informative)
Re: (Score:2)
Re: (Score:3, Informative)
I think StarLogo TNG's use of drag-and-drop blocks is a pretty interesting approach to exactly this need. The blocks have text which allows them to be read like typed-in code, and colors and shapes that indicate function and syntax.
Repost.... (Score:2)
Re: (Score:2)
And you weren't the only one. I guess a retread from a day ago doesn't constitute a "serious" problem.
Are you Pete??? (Score:2)
If Johnny could code... (Score:5, Funny)
How hard would it be? (Score:2)
-Rick
Re: (Score:2)
Re: (Score:2)
-Rick
Yeah, really. (Score:4, Funny)
Re: (Score:2, Informative)
Oh well.
The real question should be... (Score:2)
You know, though this is a dupe (Score:5, Insightful)
Re: (Score:2)
Re: (Score:2)
Re:You know, though this is a dupe (Score:4, Insightful)
The article was interesting, but ultimately the author seemed to be concerned about recreating nostalgia for programming on his 8-bit computer rather than actually wanting kids to know how to program. There's countless examples of programming languages suitable for a kid. Bash, Excel, and Javascript are all pretty simple, don't require complex steps like compiling or memory management, and readily accessible.
Re: (Score:2)
I don't consider Excel a programming language, BASH is also not a programming language but it allows you to run scripts, javascript is close to a programming language I guess and kids could probably do some fun things with it. But seriously what could a kid do in Excel that would actually hold their interest longer than half a second? "Wow Dad! I just calculated how much money I will m
Re: (Score:3, Interesting)
But seriously what could a kid do in Excel that would actually hold their interest longer than half a second?
Write a macro the does all their math homework for them, including showing work? Figure out how long it takes them to save up for a new bike? There's lots of ways a kid could be interested in Excel.
Re: (Score:2)
I think the idea was that he was lamenting that there aren't the tools for people to grow into being computer nerds. Your average Counterstrike player doesn't really want to expend some effort to learn ho
Re: (Score:3, Insightful)
Yeah, I think you've really hit the nail on the head here. Actually you could get BASIC in ROM for the IBM PC-1... but alas, my machine lacked that option, and I ended up scrapping everything but the motherboard which AFAIK is still hanging on a
Re: (Score:2)
My Atari 8-bit (130XE) would boot into basic if I didn't press "OPTION" when turning it on.
BOOT ERROR
BOOT ERROR
BOOT ERROR
BOOT ERROR
BOOT ERROR
BOOT ERROR
BOOT ERROR
BOOT ERROR
BOOT ERROR
BOOT ERROR
Re: (Score:2)
Maybe you could have done with a free fun pack of 100 games/programming examples. I still remember getting an Atari 800 for Christmas 1981 - It came with a fun pack of 100+ programs + games from the local mom'n'pop computer shop (the programs had bee
Re: (Score:3, Insightful)
Re: (Score:3, Informative)
Shift-2 is an @ sign on modern American keyboards. On a British keyboard, it's a ".
Re: (Score:3, Interesting)
Even better, find an emulator that runs CP/M which also emulates various types of terminals. One fun thing about computers is making them do fun looking *stuff* like display hacks, moving the cursor, typing backwards, etc. Learn how to control the display by issuing character sequences. Find some books by David Ahl. CP/M had an incredibly rich set of simple tools. Part of the fun is that you hav
He doesn't mean for HIM, he means for everybody (Score:2)
Apple ][ for me. (Score:2)
That must make me... damn, over 30.
yes, the '80s. This is how most of us used to learn. There were still TRS-80s, Amigas, and ancient XT workstations in some of my friends' homes. I was an Apple ][ kid, myself. I guess I still am.
Come on... (Score:4, Insightful)
Uh, hello? (Score:3, Insightful)
How is it that (Score:2, Interesting)
Why should kids learn programming when they'll only be able to compete for a programming job if they take an East Indian's dollar-a-week salary?
I'll bite (Score:2)
-Rick
Re: (Score:2)
These things come and go in waves. I'm only five years in the IT and I have already recognized this, why haven't you?
By the way, it's bad form to complain about your story submission being rejected.
Re: (Score:2)
Re: (Score:2)
Lego Mindstorm? (Score:4, Informative)
Umm... (Score:5, Informative)
Re: (Score:2)
Here [ms-inc.net] is also some more technical info on it.
Windows only (Score:3, Funny)
Nor does it seem to be open source - so low poosibility of porting it.
God that is sooo 90s.
I'd reccomend Python.Despite the Dupe - I *Hated* BASIC; PASCAL Baby! (Score:5, Insightful)
It was way, way, WAY too limiting and tedious, even for my neophyte 13-year-old self.
I really didn't discover the joy of programming until I discovered Turbo Pascal. It was like somebody unshackling me - even with the crappy PC XT CGA graphics.
Pascal is a *great* learning language. It teaches all the good habits that will be needed for a C/C++/Perl hacker later in life, without all the administrivia involved with C, or the sheer horsepower (with all the syntactic complexity) of Perl.
Go with Pascal as a first language, and you can't go wrong.
DG
Re:Despite the Dupe - I *Hated* BASIC; PASCAL Baby (Score:2)
Started Basic at about 5 or 6, Pascal about 12/13, Perl about 15/16, Java about 17 and never really got that into C or assembly except on embedded stuff.
Ironically i'm now maintaining a VB application, and can put my 2 decades of experience to use.
Subject too long.... (Score:2)
That said, we were taugh Alice Pascal, which was a sandboxed learning addition of Pascal. My vague memmories tell me that the sandbox itself put so many contraints on you, the you as much learned working around alice pascals limits, as you did learning pascal.
Then
Re:Despite the Dupe - I *Hated* BASIC; PASCAL Baby (Score:5, Insightful)
I started out on a C64/C128 as well. Basic is not a good first language.
Frankly, if I wanted to teach my child programming, I'd start with javascript. Here's why:
- It's extremely easy to get started in. You can do a lot with one-liners, and unlike perl you can explain the one-liners to a neophyte. There are many excellent beginner's books.
- On-screen graphical feedback is instantaneous, and you don't have to restrict yourself to console output.
- Every single web-enabled PC has the development tools right there. They don't have to do complicated installs, and they can show off their 1337 skills on their friend's computer.
- And best of all, if you give them a simple hosting account they can place their javascript programs online for all their friends to see.
Re:Despite the Dupe - I *Hated* BASIC; PASCAL Baby (Score:4, Funny)
- I hate loops
- I hate variables
- I hate kids
Re:Despite the Dupe - I *Hated* BASIC; PASCAL Baby (Score:3, Interesting)
It was a catastrophe. When I first started composing this, I was g
BASIC? (Score:2)
You can simply use an OSX terminal and compile with gcc, no fuss.
But if you want to teach a kid programming: HTML and Javascript is the way to go.
They're universally accessible in new computers, and they're a great way to learn to code and to share the results.
All you need is a browser and a text editor.
Yeh... (Score:2, Funny)
Re: (Score:2)
From what I took away from the article, the child seems to be bright enough not to have any need of an old, 8-bit machine capable of running interpreted BASIC. He needs to take the knowledge he has and RUN(pun?) with it.
My personal take on the whole situation is children with sufficient interest in programming will learn it without the tools of yesteryear. In the end, they'll
Slashdot really needs a dupe section (Score:2)
Re: (Score:2)
http://dups.slashdot.org/ [slashdot.org]
I can imagine it would become the largest Slashdot section in about 1 month!
http://dups.slashdot.org/ (Score:3, Interesting)
This is a legitimate concern... (Score:2)
There needs to be some kind of readily available interpretive programmi
Re: (Score:2)
Umm... *cough*Pyhton*cough*
Get a graphing calculator! (Score:2)
When I was a script kiddie... (Score:2)
Re: (Score:2)
Ahhhh... memories... Logo was an awesome learning tool.
A c64 from eBay? (Score:3, Funny)
Good lord man. Why go through all that trouble? [viceteam.org]
The article should be called Why Johnny Can't Freaking Use Google.
Kids are more computer literate than us: too bad. (Score:3, Insightful)
I don't think the antiquification of DOS, and of all things, BASIC, is going to have some negative effect.
We'll always have to suffer the hand-wringing from a generation getting older, and I'll always roll my eyes about it.
idiotic (Score:2)
Why Johnny can't read Salon Magazine. (Score:2)
I've even tried turning off adblock, noscript, flashblock and accepting all their cookies. Still just an endless loop of ads.
I'm sort of assuming that the page can't handle mozilla-based browsers at this point.
Too bad for Salon; I might have subscribed, but if their site can't handle my browser and plug-ins of choice I
Re: (Score:2)
Me either. Just an endless loop of ads. No wonder nobody reads Salon any more.
Re: (Score:2)
The subscription is well worth it for me since I found I was sitting through a flash ad almost every day. They generally offer a bunch of goodies when you subscribe (mostly free magazine subscriptions), so you're not just getting Salon for that. Their reporting is mostly very good and occasionally excellent - it's refreshing to see a news magazine that actually rakes some muck once in a wh
Re: (Score:2)
Maybe it's gotten better, I dunno.
XLogo For Mac Needs Help (Score:2)
Changing World: Low % Who Grow Their Own Code (Score:5, Insightful)
Today it's all different. The OS has become a beast that not even a team of programmers can fully comprehend. IDEs, OOP, and layered architectures try to hide the complexity, but its still there. Moreover, almost any bit of code or application that one might want has a multiple incarnations ready for buying/downloading from commercial/shareware/OSS sources. It's now very easy to find the application you want and much harder to write something that is better than anythign else. In the new days, few grow their own code.
Perhaps its like the change from a subsistence-agrarian world to a world of craftsmen (or industry) where programming is like farming. In the past, everyone grew their own code. Today, no one grows their own food and farming is a very minor part of the global economy. Farmers may lament that most children in the city don't know how to milk a cow or thresh wheat, but perhaps those skills aren't needed in most people. Just as one farmer can now feed some 40 people, one programmer servers the programming needs of a growing number of users. Consider that Microsoft as 60,000 employees whose code runs on at least 600 million operating PCs -- more than 10,000 non-programming users per programmer.
As with farming, we now live in a world where few need to grow their own code. As far as schools are concerned we may be entering a world in which fewer than 1 child per class will ever need to know how to program. That makes me sad at some level, I truly enjoyed learning to program, but it may be an inevitable part of the maturation process for IT and the internet.
David Brin is full of crap. (Score:2)
The Apple ][ had a nice interactive programming environment (BASIC) and, yes, I remember it fondly. Learning about Woz's Programmer's Aid ROM was like discovering that the Emerald City lurked under the hood of my beige w
download this.... (Score:3, Informative)
I still have a few PSION Organisers :-) (Score:2)
The main reason this is interesting is the language: Organiser Programming Language (OPL) was a sort of combination of BASIC and Pascal, quite structured and flexible and, most importantly, because the thing was portable you could code anywhere. It ran fast because source code needed to be 'translated' to a sort of executable (akin to Pascal's original P code).
The
Why you keep old disks (Score:2)
If David had kept his old DOS disks, he could've extracted the QBASIC interpreter from them and used that. I just checked my DOS 6.22 disks and it's there. I believe it'll run in the DOS window on current Windows, and it probably runs under DOSEMU on Linux. Or he could introduce the kid to basic Java using something like Eclipse, if he wants to give the kid an introduction to modern IDEs without too much pain.
David Brin (Score:2)
Anyhow, why can't his kid code? Probably doesn't have the mindset for it, sorry. Not everyone can sit in front of a computer all day long thinking about "imaginary things" and then typing them in. If your mind doesn't work in the right way, it can be almost impossible to learn to program. I've taught introductory CS classes before; they can learn enough to scrape by in the class, but they'll never be good programmers (and they usually forget
Re: (Score:2)
Their search doesn't work, what makes you think they could possibly know they are posting a dup? It's nice like they actually read this site.
Re: (Score:2)
Actually, it's not that bad. Of course, that only makes it more curious as to why these aren't caught beforehand.
Re: (Score:2, Funny)
Get with the vibe, dude (Score:3, Funny)
10 LET ZONK = 1
20 LET EDITOR = 1
30 IF (EDITOR = ZONK) THEN GOSUB 1000
40 GOTO 30
1000 REM DUPE POST
1010 RETURN
Simon
Re: (Score:2)
10 POST DUPE
20 GOTO 10
Re: (Score:2)
while (true){
if(post.num % 2 == 0)
post = zonk.post(dupe);
else
post = zonk.post(!news);
}
Re: (Score:2, Funny)
Oh, wait, shit!
KFG
Flame Baby Flame (Score:5, Funny)
Correction (Score:4, Funny)
20 goto 10
Yes, Perl is good for kids (Score:2)
The nice thing with perl is that all the syntactic
Re: (Score:2)