Earlier quoted context omitted.
Scratch is definitely a cool introduction to the world of programming. But I worry that in its attempt to make programming accessible sets up kids for a rude awakening. Most "real" programming isn't like that at all. Yet the kind of code I wrote in the 80s in Apple BASIC isn't so different "in kind" from a lot of the code I write professionally today. Sorry for posting so many comments: I'm a teacher so the issue of…
How is scratch so different from other programming environments ?
Why kids don't program
41–50 of 96 posts
Re: Why kids don't program
#42I wonder, is Logo still relevant for children (was it ever)? I know Netlogo or StarLogo are still in active use in academia (for artificial life/complex systems research). I have been toying with the idea to write a Javascript LOGO for the Canvas Element. There used to be Online-Logo Applets, but I think they were all Java. At least it might be a fast way to draw nice things programmatically.
Here are a few programs I made with it (note that the default is to 'run normally'. You might want to click 'stop program' and then 'run fast'):
* Sierpinski triangle: http://logo.twentygototen.org/83EGZPPC
* Sierpinski carpet: http://logo.twentygototen.org/4c5iy9iU
* Sierpinski arrowhead curve: http://logo.twentygototen.org/hYDSZt8h
* Hilbert curve: http://logo.twentygototen.org/CFyUSzqG
* Hexaflake: http://logo.twentygototen.org/AJeuVkKc
Re: Why kids don't program
#43Earlier quoted context omitted.
And I disagree with you here. Writing declarative HTML and writing a simple interactive computer game are two activities that could not be more different. Like it or not, the act of programming has become much more difficult than it once was. 1988 I could reboot my Apple IIgs, hold down a couple of keys, and I could start writing a BASIC program immediately.
I don't see that it is that much harder now. Boot your mac, open a terminal, type python, and start programming. Does it take one more step? Maybe, but it is a joke to say that is somehow more difficult.
Apple basic graphics was one of two commands:
GR or HGR
Re: Why kids don't program
#44For me it was exactly the opposite. I started learning programming at 13 reading the zx spectrum manual chapter after chapter until I came to sin and cos which I did not know. My parents hadn't studied, so they could not tell me. Instead of just skipping that chapter, I gave up programming. Much later I studied economics. Working as an economist I discovered the fun of programming with visual basic, and then decided…
I can see how. In fact I had the same reaction initially (and my parents are graduates, but they don't know the first thing about maths, so they were no help to me either).
I have no idea why I wrote the program to plot a circle that made it obvious what sin and cos were.
In fact I think I might have misremembered my own story. I had a ZX81 first, and I don't think that had a circle function, so it may be that the ZX81 manual explained how you could use SIN and COS to do that.
But I think we can agree that google and wikipedia are wonderful things. The upcoming generations of programmers and mathematicians are going to be Gods. How could they not be with a library like that!
Re: Why kids don't program
#45For me it was exactly the opposite. I started learning programming at 13 reading the zx spectrum manual chapter after chapter until I came to sin and cos which I did not know. My parents hadn't studied, so they could not tell me. Instead of just skipping that chapter, I gave up programming. Much later I studied economics. Working as an economist I discovered the fun of programming with visual basic, and then decided…
I found out about SIN/COS a while before I really understood what they were. :) I treated them as magic keywords and used to just plug in weird functions to see what turned out (sin(x)+cos(x), sin(cos(x)) etc).
Sometimes we take things like portability and platform-independence so far that we end up complicating things. As an example, with Turbo Pascal and DOS, I could just treat the video buffer as an array and write to it. Under Linux (even in the old days), I wasn't able to figure out how to access the console display as a array. The "right way" was to wrestle with Curses. I declined the invitation and stuck to network/command line programs. :)
Re: Why kids don't program
#46It's actually fairly easy to do what he wants today. ipython -pylab [...boilerplate...] In [1]: n = arange(255) In [2]: plot(n, 88+80*sin(n*pi/128)) http://imgur.com/oSd62.png As for the "imaginary diffusion equation" (I assume he means the Schrodinger equation), here is a simple program which solves it on the torus: from pylab import * from numpy.fft import * def freeSchrodingerSolver(input, dx, dt): np = input.shap…
I disagree, it was much easier back then. In my case: I started on basic in dos 5 or dos 6 when I was 10 or so, and every function I had to my disposal was listed in the help file. Alphabetically and by sorted by category. Sooner or later you find the SETPIXEL function, then discover screen 13, then discover how to draw lines and so on. You can discover that "one more thing" pretty easily, and at no point can you get…
I also started using QBASIC in DOS at age 10 or so. But I really don't see how it was easier. I don't think being being preinstalled is that big a deal; plenty of kids download and install games, level editors and the like. They also manage to program for games, e.g. Warcraft or Quake.
Learning to program differently than we did is not the same as being harder.
Re: Why kids don't program
#47It has a graphing mode, where you can put in functions and it'll draw them for you. And it has a programming mode, with a very BASIC-like syntax that I wrote simple graphing programs, ridiculous text-based rpgs, and my own version of the oh-so popular Drug Wars.
Having no idea what a ZX Spectrum is, I can only assume that the likelihood of the author having one 30 years ago is about the same as the likelihood my having a TI-83 in high school, especially because the calculator was pretty much required for some of the math classes I was in.
Re: Why kids don't program
#48It's actually fairly easy to do what he wants today. ipython -pylab [...boilerplate...] In [1]: n = arange(255) In [2]: plot(n, 88+80*sin(n*pi/128)) http://imgur.com/oSd62.png As for the "imaginary diffusion equation" (I assume he means the Schrodinger equation), here is a simple program which solves it on the torus: from pylab import * from numpy.fft import * def freeSchrodingerSolver(input, dx, dt): np = input.shap…
Well, actually, sudo apt-get ipython sudo apt-get install ipython ipython -pylab sudo apt-get install pylab sudo synaptic ( And then the program works. Actually, thanks for that, I didn't know about that stuff, and it looks really useful. If I can figure out how to get the drawings to move then it will do what I want. (to visualize the action of unitary matrices on Hilbert spaces) But my point was that in 1982, my no…
Re: Why kids don't program
#49I wonder, is Logo still relevant for children (was it ever)? I know Netlogo or StarLogo are still in active use in academia (for artificial life/complex systems research). I have been toying with the idea to write a Javascript LOGO for the Canvas Element. There used to be Online-Logo Applets, but I think they were all Java. At least it might be a fast way to draw nice things programmatically.
This JS-based Logo works nicely: http://logo.twentygototen.org/ Here are a few programs I made with it (note that the default is to 'run normally'. You might want to click 'stop program' and then 'run fast'): * Sierpinski triangle: http://logo.twentygototen.org/83EGZPPC * Sierpinski carpet: http://logo.twentygototen.org/4c5iy9iU * Sierpinski arrowhead curve: http://logo.twentygototen.org/hYDSZt8h * Hilbert curve: htt…
Re: Why kids don't program
#50It's actually fairly easy to do what he wants today. ipython -pylab [...boilerplate...] In [1]: n = arange(255) In [2]: plot(n, 88+80*sin(n*pi/128)) http://imgur.com/oSd62.png As for the "imaginary diffusion equation" (I assume he means the Schrodinger equation), here is a simple program which solves it on the torus: from pylab import * from numpy.fft import * def freeSchrodingerSolver(input, dx, dt): np = input.shap…
Well, actually, sudo apt-get ipython sudo apt-get install ipython ipython -pylab sudo apt-get install pylab sudo synaptic ( And then the program works. Actually, thanks for that, I didn't know about that stuff, and it looks really useful. If I can figure out how to get the drawings to move then it will do what I want. (to visualize the action of unitary matrices on Hilbert spaces) But my point was that in 1982, my no…
I think the issue is mainly just lack of knowledge that truly newbie friendly environments exist. Perhaps the solution is simply better advertising of squeak, or perhaps having it come preinstalled (as OLPC did)?
Incidentally, the animation info you seek (admittedly, not suitable for newbies):
http://www.scipy.org/Cookbook/Matplotlib/Animations
Or, if you want to generate movie files:
for i in range(numframes):
[...code to make frame...]
savefig("framedir/" + str(framenumber).rjust(8,"0")+".png")
os.system("mencoder -ovc lavc -lavcopts vcodec=mpeg1video:vbitrate=1500 -mf type=png:fps=16 -nosound -of mpeg -o movie.mpg mf://framedir/\*.png")