I am blessed with a *very* gifted nine-years old daughter for whom I
have recently installed an old GNU/Linux Mandrake 7.2 on an equally old
Pentium Pro box. She is enjoying it tremendously and has no problems
understanding simple desktop operations and the file system basics
(Needless to say - she has already mastered the 30 or so games I
installed for her).
Now, I would like to teach her programming basics using Python (because
I believe it is best suited for this purpose and, yes, also because it
is my favorite language). The only tutorial I have found so far is
"How to Think Like a Computer Scientist - Learning with Python" which,
while very good indeed, is geared towards adult newbie students.
Is there something out there like "Python for kids" which would explain
*basic* programming concepts in a way which is accessible and
entertaining for kids aged 10-14 (that about where her brain is right
now) and which would allow them to "play around" and have fun solving
small problems?
Many thanks in advance,
TN
Let her mess around with it on her own. I'm 15 and have been using
Python for 2-3 years and had nothing to really go on. Give her Dive Into
Python or How to Think Like a Computer Scientist and let her ask
questions if she needs help.
--
--------------------------
Lucas Raab
lvraab located at earthlink.net
dotpyFE located at gmail.com
AIM: Phoenix11890
MSN: dotpyfe "@" gmail.com
IRC: lvraab
ICQ: 324767918
Yahoo: Phoenix11890
If she's a real nerd, just give her the regular Python tutorial and
turn her loose. Maybe you could give her a Logo book to go along with
it. The book I used at that age was "IBM Fortran IV with WATFOR and
WATFIV" and I don't see how any Python book could be unfriendlier than
that for a kid. But I still became computer-obsessed from it and have
stayed that way ever since.
http://www.livewires.org.uk/ run use python to teach programming at
their camp. They have their course material on their website under a
Free license.
--
Stephen Thorne
Development Engineer
"""
Aoccdrnig to a rscheearch at Cmabrigde Uinervtisy, it deosn't mttaer in
waht oredr the ltteers in a wrod are, the olny iprmoetnt tihng is taht
the frist and lsat ltteer be at the rghit pclae. The rset can be a
toatl mses and you can sitll raed it wouthit porbelm. Tihs is bcuseae
the huamn mnid deos not raed ervey lteter by istlef, but the wrod as a
wlohe.
"""
the algo whold be something like
openfile
for word in file
tmp=word[0]
tmp+=permut(tmp[1:-2])
tmp+=word[-1]
print word
She could enjoy sending letters like this, neat secrete codes for a
nine year old ;)
Linky http://www.mrc-cbu.cam.ac.uk/personal/matt.davis/Cmabrigde/
G'Luck
- Haz
P.S. I just had my friend read it and his native tongue is chinese, so
might work for other languages too.
It is widely held that the intellectual capabilities of children
are inferior to the capabilities of adultes. Nevertheless,
I wonder to which extent this is true.
There is no doubt that the critical sense is much less developed
in children than in adults: for instance, as a child, I would never
had thought of questioning the existence of Santa Klaus ;)
But here I am discussing other kind of intellectual capabilities,
in particular the ability to learn a programming language.
I think the problem most kids face is *not* lack of intellectual
capability, but lack of concentration. Most kids cannot keep
their concentration focused on a single topic for a long period
of time, so they start one thing and never finish it, since
they have a thousand other little things to do in the mean time.
Becoming older, the ability to discipline themselves increases,
so it is probably easier to learn a programming language for a
15 year old than for 9 year old.
This as a general rule. There are, of course, exceptions. Many
people will never have the needed discipline to learn a programming
language. On the other hand, some people are able to maintain their
concentration focused for a long period of time even in early age.
When I was 2-3 years old I was able to spend whole *days* working
on my Lego construction set. The problem was to keep me out of
my work and explain me that it was time to eat! ;)
I am pretty much convinced I could have mastered Python at the age
of nine. Of course, I cannot prove it, since when I was nine
I had no computer, I did not know English, and Python was not
yet invented. But apart for this minor circumstances, I don't
thing I was dumber as a child than as an adult.
Actually, one could even make the case that children are much better
than adults at learning new things. Adults are better at understand
things, seing the correlations between them, and the inconsistencies
(if any).
The problem teachers face when explaining computers to kids, is
to keep them interested, so they prepare courses about graphics,
videogames, etc. But if you get the right kid, he/she will be
interested even on "IBM Fortran IV with WATFOR and WATFIV" ;)
Personally, at that age I knew everything about the solar system
planets, distances from the Sun, masses, diameters, albedos, etc.
Fortunately, now I have forgot nearly everything ;)
Michele Simionato
In the case of natural languge it has been pretty much proven that
children are (much) better/faster at learning then adults. Now it is
left to be shown if this carries over to programing languages.
- Haz
<snip>
>I am pretty much convinced I could have mastered Python at the age
>of nine. Of course, I cannot prove it, since when I was nine
>I had no computer, I did not know English, and Python was not
>yet invented. But apart for this minor circumstances, I don't
>thing I was dumber as a child than as an adult.
At the age of nine at school, two guys from a French computer-making
company named as "Loup" (in french) or "Lupo" (in Italian), can't
remember which --if either is correct--, came and gave us a demo of one
of their models. They wrote a simple BASIC program on the blackboard
and proceeded in explaining what the program did, and then asked for a
kid to type it. I was chosen randomly, and I managed to do that, but I
*didn't* understand a thing. See, I didn't either know English (we had
French at school), and I had no contact with computers earlier. I had a
good knowledge of how things work in the surrounding world, even knew a
lot about electricity and how it works (I had played a lot with
batteries, buttons, wires and lights in order to make some amazing
devices to use with my friends when we were playing "Galactica" or
"Space 1999" or "Star Trek"...), but *this* I couldn't grok.
This was the challenge that marked my life, I can say. Next year I
managed to get my parents into buying me a ZX Spectrum 16K, the year
after that I managed to get them into buying me the 32K RAM upgrade
(first hw upgrade I ever did!), and one year and a half later, I managed
to get the Sinclair QL, with better BASIC, multitasking capabilities,
and something more like an OS than any other home computer till then.
And man, wasn't 68k assembly a joy :)
<snip>
>The problem teachers face when explaining computers to kids, is
>to keep them interested, so they prepare courses about graphics,
>videogames, etc. But if you get the right kid, he/she will be
>interested even on "IBM Fortran IV with WATFOR and WATFIV" ;)
The second book on computers I *bought* was "Artificial Intelligence on
the Sinclair QL" (age 12 --I bought the book *before* I got the QL :).
The first was "1001 Games for the ZX Spectrum" (age 11). We had lots of
computer magazines though, with lots of source code in them to keep a
kid interested then (the age of home computers)...
>Personally, at that age I knew everything about the solar system
>planets, distances from the Sun, masses, diameters, albedos, etc.
>Fortunately, now I have forgot nearly everything ;)
Unless you play trivial pursuit with friends, in which case such
knowledge is very useful (and doesn't get forgotten :)
--
TZOTZIOY, I speak England very best.
"Be strict when sending and tolerant when receiving." (from RFC1958)
I really should keep that in mind when talking with people, actually...
Christos> (first hw upgrade I ever did!), and one year and a half
Christos> later, I managed to get the Sinclair QL, with better
Christos> BASIC, multitasking capabilities, and something more
Christos> like an OS than any other home computer till then. And
Christos> man, wasn't 68k assembly a joy :)
Linus Torvalds also bought Sinclair Ql back in the day - I was
quite surprised to find out that it had a 32bit CPU (according to his
autobiography).
--
Ville Vainio http://tinyurl.com/2prnb
68008 at 8 MHz with 32bit architecture, 16bit ALU (long operations took
2 cycles), 8bit external bus (to communicate with cheap memory and other
ICs), 20bit max address space, but with complete compatibility with
68000 machine code. For example, one could issue the following *single*
instruction:
MOVE.L ($18000), ($18004)
to copy the long from address 98304 to address 98308. Intel provided
such functionality much later; I am not sure if even the 386 could use
memory indirect on both operands...
If only IBM had chosen Motorola for its new PC, 64KiB memory segments
would be something to laugh at, not something to remember and cry
about...
On Thu, 23 Mar 2005 tn...@yahoo.com wrote:
> I am blessed with a *very* gifted nine-years old daughter for whom I
> have recently installed an old GNU/Linux Mandrake 7.2 on an equally old
> Pentium Pro box.
FWIW. Given a reasonable amount of RAM (256MB should suffice), newer
Mandrakelinux versions (the latest being 10.1 with 10.2 almost out) will
run nicely on that Pentium Pro. The advantage would be a much more
modern user interface, security updates (important if it's connected to
the internet) and of course, a recent Python package out of the box.
regards,
--
Reinout van Schouwen student of Artifical Intelligence
email: rei...@cs.vu.nl mobile phone: +31-6-44360778
Good idea.
1) Have u noticed that whn yu raed that srcamled text luodly, it sounds
like spoken by a deaf person. (because severe loss of hearing makes it
hard to learn correct pronunciation).
2) Is this the same fennomena like in the (ancient Hebrew language?)
that in written form uses consonant letters only. The reader then fills
in the missing vowels (aeioyäö). Like: kck th bll nt wall nd ctch t bck.
hmm, maybe not!
3) Anyway, gnna love that srcmbled format simply because rerrors do not
appear, show up ;-). (having English as a foreign language)
// moma
http://www.futuredesktop.org/AsteriskPBX.html <-
http://www.futuredesktop.org/hpc_linux.html
Why run one PC obi when you can hvae a cluster ?
> At the age of nine at school, two guys from a French computer-making
> company named as "Loup" (in french) or "Lupo" (in Italian), can't
> remember which --if either is correct--, came and gave us a demo of one
> of their models.
OT/trivia : if it was between mid-eighties and early nineties, the company
could be "Goupil" (ancien french for "Fox").
--
YAFAP : http://www.multimania.com/fredp/
I don't know about kid's tutorials, but I can recommend that you try
the turtle module. It's great for kids. It gives really good immediate
feedback, You can start out using it interactively:
>>> import turtle
>>> turtle.forward(100)
>>> turtle.left(90)
>>> turtle.forward(100)
>>> turtle.left(90)
>>> turtle.forward(100)
>>> turtle.left(90)
>>> turtle.forward(100)
>>> turtle.left(90)
Then you can put this into a script, and run that. Then you might
introduce loops:
import turtle
for i in range(4):
turtle.forward(100)
turtle.left(90)
Then build some simple functions, like 'square':
def square():
for i in range(4):
turtle.forward(100)
turtle.left(90)
square()
Then add arguments to your functions:
def square(size):
for i in range(4):
turtle.forward(size)
turtle.left(90)
square(100)
square(50)
And so on. At each stage, you can see what's happening.
--
Cheers,
Simon B,
si...@brunningonline.net,
http://www.brunningonline.net/simon/blog/
In the chess world, people have long learnt to take young prodigies
seriously. Most of the grandmasters start to play chess at age 4 or
earlier. Bobby Fisher became the US chess champion at age 14, and a
grandmaster at 15. And that's considered old by modern standard: Sergei
Karjakin became grandmaster at age 12.
http://www.chessbase.com/newsdetail.asp?newsid=310
http://members.lycos.co.uk/csarchive/gilbert.htm
Sure, programming's skill set is a bit broader than chess playing or
ice-skating, but young hackers have plenty of contacts and resources
through internet, and many of them live (will be living) in Brazil,
Russia, India and China (the so-called BRIC countries.) So, a thorny
question for matured programmers is: what's your value in face of this
competition? :)
Modern RISC-structured machines have at most one memory operation,
so the instruction is simply completed or not, and can safely be
re-executed if it is not complete.
--Scott David Daniels
Scott....@Acm.Org
Michael
If she's really gifted i hope she dumps that obsolete monolithic kernel
as soon as she realizes that such beautiful language as python shouldn't
be used on top of ugly, badly designed software.
Did somebody say off-topic?
Anyway, I myself am 14 years old and I can make simple python scripts already by
learning it off the official tutorial that comes with it. My tip: let her take
her time with a normal adult tutorial, and give her small assignments every few
chapters just so she gets it.
I guess that depends on how you measure value of human beings and competition ;-)
What is best to teach children about that?
If you imply that any child's "value" is measured only by their competitive
performance rank in some arena, or that their OWN value as a human being
is insignificant compared to the value of their prodigious talent,
that may be an effective motivational framework for some of them,
but I'm not sure it's not ultimately cruel to celebrate the gift if
ignoring whose burden or blessing it actually is.
Emotionally, they may grow to see themselves as ugly, with their own gift
being a stunningly beautiful sister who gets all the attention.
Or they may identify with their gift and become insufferable narcissistic
egotists as a refuge from human isolation and emotional starvation.
Or they may become wonderful human beings after all, happy stewards of
what becomes a gift to humanity, not just an advantage to exploit meanly.
Regards,
Bengt Richter
> Jot <jot <at> nad.com> writes:
>
>> If she's really gifted i hope she dumps that obsolete monolithic
>> kernel as soon as she realizes that such beautiful language as python
>> shouldn't be used on top of ugly, badly designed software.
>
> Did somebody say off-topic?
I'd say it's a "Troll -1". Anyway, that'd be my moderator response over
at Slashdot. As had been said so many times; GNU/Hurd is still a
pipe-dream. Those who think that the Linux kernel is based on faulty
concepts should really get their act together and produce their own
microkernel. Personally, I don't care about the kernel architecture as
long as I've got a system that works right here, now.
> Anyway, I myself am 14 years old and I can make simple python scripts
> already by learning it off the official tutorial that comes with it.
> My tip: let her take her time with a normal adult tutorial, and give
> her small assignments every few chapters just so she gets it.
If I may ask, do you think that the "How to think like a Computer
Scientist" is a good starter? I'm 52 years old and learned my basics
with Swan's "Mastering Turbo Pascal 5.5" way back when, but I'm
sincerely wondering what your generation think are hi-class tutorials.
I've got a thirteen-year old daughter to whom I have recently taught the
HTML basics, but she doesn't readily take to actual programming. If
you've got any idea what I should push to her to get her fascinated
about _real_ programming, I'd be obliged. Or maybe her head isn't
screwed together that way, what do I know.
--
Leif Biberg Kristensen
http://solumslekt.org/
Bengt> Or they may identify with their gift and become
Bengt> insufferable narcissistic egotists as a refuge from human
Bengt> isolation and emotional starvation.
Bengt> Or they may become wonderful human beings after all, happy
Bengt> stewards of what becomes a gift to humanity, not just an
Bengt> advantage to exploit meanly.
Or they may determine to be exactly what they feel like being at the
moment, independent of what their parents or the surrounding world
feel they should be.
(urgh, way too serious to be pythonic, but it's 5:14am here)
I wouldn't push. She can figure out for herself what fascinates her.
> Is there something out there like "Python for kids" which would explain
> *basic* programming concepts in a way which is accessible and
> entertaining for kids aged 10-14
It's not what you asked for, but you should consider Squeak Smalltalk and
eToys. The GUIs that we use today are largely the work of Alan Kays's
group at Xerox in the 1970s. Dr. Kay has spent the last 35 years trying to
make computers educational and fun for children. If you're interested, see
http://www.squeak.org/ (The Squeak Smalltalk site)
http://www.squeakland.org/ (The eToys site)
Squeak runs on Linux, MacOS, and even Windows, and it's free.
Speaking of which, I should have mentioned the book "Mindstorms" (for
TN, not his daughter), by Seymour Papert. The intro is online:
I found "How to Think Like a Computer Scientist" a very good book. It
was very well written and didn't push too many things onto you at once.
--
--------------------------
Lucas Raab
lvraab located at earthlink.net
dotpyFE located at gmail.com
AIM: Phoenix11890
MSN: dotpyfe "@" gmail.com
IRC: lvraab
ICQ: 324767918
Yahoo: Phoenix11890
> I don't know about kid's tutorials, but I can recommend that you try
> the turtle module. It's great for kids. It gives really good
immediate
> feedback, You can start out using it interactively:
FWIW there is a German Book called called "Python für Kids" by Gregor
Lingl which is mostly based on the turtle module. My little brother (13
then) actually learned Python with it.
Carl Friedrich Bolz
Aaarrrrggggghhh. I've been using python on and off for six years now,
and I didn't even know that it had a turtle module. :)
Turtle was the first experience I had with programming!
Joal
> On 23 Mar 2005 21:03:04 -0800, tn...@yahoo.com <tn...@yahoo.com> wrote:
>
>> Is there something out there like "Python for kids" which would explain
>> *basic* programming concepts in a way which is accessible and
>> entertaining for kids aged 10-14 (that about where her brain is right
>> now) and which would allow them to "play around" and have fun solving
>> small problems?
>
>
>
> I don't know about kid's tutorials, but I can recommend that you try
> the turtle module. It's great for kids. It gives really good immediate
> feedback, You can start out using it interactively:
<snip>
Couldn't help myself. I had to write the Dragon Fractal in python.turtle
:)
That's part of it. Another issue is that general problem-solving skills
do increase with experience. I also think that programming ability
tracks reading/writing ability to at least some extent, and while there
are child prodigies with language, they seem to be rarer than smaller
skillsets.
--
Aahz (aa...@pythoncraft.com) <*> http://www.pythoncraft.com/
"The joy of coding Python should be in seeing short, concise, readable
classes that express a lot of action in a small amount of clear code --
not in reams of trivial code that bores the reader to death." --GvR
Take a look at http://www.python.org/moin/BeginnersGuide/NonProgrammers
where there are a couple of bits oriented toward younger people and lots
of bits oriented toward adults. I'm sure something there will strike
your daughter's fancy.
I again take the opportunity to raise a hand in protest.
Going to these sites I learn that Kay is the "Father of the Personal
Computer" working from "a deep understanding of how children learn".
He also may be someone who married himself to a bad idea 30 years ago,
in which he has invested too much, thereby crippling his ability to
confront scientific evidnce in an evenhanded manner.
He is also someone ex of Disney, now of HP, who lectures us on the
destructive infleunce of the profit motive on the development of
computer science and its capacity to enhance our world.
I understand better how Xah Lee got to be Xah Lee when confronted with
the cult of Kay.
Art
That's nice. I ported it to use the pygsear Turtle class.
http://www.nongnu.org/pygsear/
--- Dragon.py 2005-03-27 08:48:13.000000000 -0500
+++ pDragon.py 2005-03-27 16:33:48.000000000 -0500
@@ -1,9 +1,14 @@
"""Generates the L-System for the Dragon Fractal, using
-the turtle module."""
+the pygsear.Drawable.Turtle class."""
-import re, turtle
+import re
+#import turtle
+from pygsear.Drawable import Turtle
from math import sin, pi
+turtle = Turtle()
+#turtle.visible = False
+
"""The default L-System rules for the dragon fractal are:
Angle 45 degrees
Starting Axiom FX
@@ -65,7 +70,7 @@
red = 1.0
green = 0.0
blue = 1.0 - fract
- return red, green, blue
+ return red*255, green*255, blue*255
# The default is that the turtle will only move one pixel
def parser(parsestring, distance=1, angle=45):
@@ -73,13 +78,14 @@
newstring = re.sub("X", "", parsestring)
newstring = re.sub("Y", "", newstring)
# Clear the screen
- turtle.clear()
+ #turtle.clear()
strlen = len(newstring)
colorinc = 1.0 / float(strlen)
- turtle.color(colorator(0))
+ turtle.set_color(colorator(0))
for i in range(strlen):
value = newstring[i]
- turtle.color(colorator(float(i) * colorinc))
+ color = colorator(float(i) * colorinc)
+ turtle.set_color(color)
if value == "+":
turtle.right(angle)
elif value == "-":
@@ -87,7 +93,7 @@
elif value == "F":
turtle.forward(distance)
# Hide the cursor
- turtle.color(1.0,1.0,1.0)
+ turtle.uclear()
def run(count=15, distance=1, angle=45, width=1):
string = "FX"
@@ -96,14 +102,15 @@
count -= 1
# "Hide" the cursor while we are moving it.
## print string
- turtle.width(width)
- turtle.color(1.0,1.0,1.0)
+ turtle.set_width(width)
+ #turtle.color(1.0,1.0,1.0)
# Move the cursor so the turtle won't go off the screen.
# You might want to resize the turtle screen while the program is doing this
- turtle.setx(100)
- turtle.sety(-200)
+ #turtle.setx(100)
+ #turtle.sety(-200)
parser(string, distance=distance, angle=angle)
if __name__ == "__main__":
run(15)
+ raw_input()
Exactly! That was it... it was October or November 1981, though (early
eighties).
--
TZOTZIOY, I speak England very best.
"Be strict when sending and tolerant when receiving." (from RFC1958)
I really should keep that in mind when talking with people, actually...
>>OT/trivia : if it was between mid-eighties and early nineties, the
>>company could be "Goupil" (ancien french for "Fox").
>
> Exactly! That was it... it was October or November 1981, though (early
> eighties).
Oh... probably a "G2" model then, with a 68000 CPU from pre-IBM-PC days..
(http://www.silicium.org/france/goupil/goupil2.htm)
--
YAFAP : http://www.multimania.com/fredp/
That's nice. I ported it to use the pygsear Turtle class.
Nice. I still have to download a version of pygame to try this out, but
the fact that you can't hide the turtle in python.turtle was bugging me
out with my version. (A fair bit of copy/paste in gimp, I can tell you!)
Joal
> Nice. I still have to download a version of pygame to try this out, but
> the fact that you can't hide the turtle in python.turtle was bugging me
> out with my version. (A fair bit of copy/paste in gimp, I can tell you!)
What was wrong with hiding the turtle? 'turtle.tracer(False)' usually does
it nicely and speeds things up a lot.
Maybe she'll go on to write that oft-proposed pure Python
operating system, and give us a computing environment
that's truly elegant from the ground up! :-)
--
Greg Ewing, Computer Science Dept,
University of Canterbury,
Christchurch, New Zealand
http://www.cosc.canterbury.ac.nz/~greg
Ahhah! Thanks for that.
I also noticed that I got severe speed hits if the Xwindows mouse was
over the turtle tk window while the program was running.
BTW. How do I move the turtle to a new location without drawing anything?
Joal
Whoop. That WAS a speedup!!! :)
Joal
> I've got a thirteen-year old daughter to whom I have recently taught the
> HTML basics, but she doesn't readily take to actual programming. If
> you've got any idea what I should push to her to get her fascinated
> about _real_ programming, I'd be obliged.
If she's interested in creating web sites, maybe you could
introduce her to some simple CGI programming?
Now, is there a way to embed the turtle window into a scrollable canvas,
preferably with arbitrary runtime size?
Joal