473,406 Members | 2,894 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,406 software developers and data experts.

Which kid's beginners programming - Python or Forth?

Please forgive me if this is TOO newbie-ish.

I am toying with the idea of teaching my ten year old a little about
programming. I started my search with something like "best FREE
programming language for kids." After MUCH clicking and high-level
scanning, I am looking at Python and Forth. Both have advocates that
say each is a great approach to learning computers.

My programming classes were a long, long time ago in a land far, far
away. My programming muscles, which were never truly developed, have
atrophied even so. That said, I want to learn this as we go. The
PROCESS of research and using net resources for a self-learning
adventure is almost as much of the goal as learning a programming
skill.

That said, a good learning goal for my kid would be to create a
spelling tutor for his little brother. My (simple) vision would be:

1. an input file of this week's word list
2. use a free text-to-speech engine to call out one word at a time
3. in turn, monitor each key press as a particular word is being
typed, beeping on an incorrect keystroke and going to the next word if
correct

I don't care if it takes a year or two to get to this level, I just
want a vehicle that will take us there.

I told my son, who wants to learn how to compute probabilities, that we
have to start with some boring stuff so we can learn how to do the cool
stuff. Adding and subtracting aren't really fun, but figuring odds on
rolling dice IS fun. Learning to program will be kind of like that.
He accepted that explantion.

So, that said... In ~simplest~ terms for the stated goal -- Forth or
Python?
....the goal is NOT the spelling tutor... it is learning how to use a
tool to solve a problem. I am asking which tool is more suited to an
otherwise arbitrary direction of "spelling tutor program."

[NOTE: This is not a troll. I'm geting ready to bark up a tree and I
prefer to avoid the wrong one. I am cross-posting.]

Thanks

Jul 19 '05 #1
38 4746
Hi,

A couple links ...
http://www.summerland.uku.co.uk/
http://pylogo.org/
http://www.python.org/sigs/edu-sig/
BORT wrote:
Please forgive me if this is TOO newbie-ish.

I am toying with the idea of teaching my ten year old a little about
programming. I started my search with something like "best FREE
programming language for kids." After MUCH clicking and high-level
scanning, I am looking at Python and Forth. Both have advocates that
say each is a great approach to learning computers.

My programming classes were a long, long time ago in a land far, far
away. My programming muscles, which were never truly developed, have
atrophied even so. That said, I want to learn this as we go. The
PROCESS of research and using net resources for a self-learning
adventure is almost as much of the goal as learning a programming
skill.

That said, a good learning goal for my kid would be to create a
spelling tutor for his little brother. My (simple) vision would be:

1. an input file of this week's word list
2. use a free text-to-speech engine to call out one word at a time
3. in turn, monitor each key press as a particular word is being
typed, beeping on an incorrect keystroke and going to the next word if
correct

I don't care if it takes a year or two to get to this level, I just
want a vehicle that will take us there.

I told my son, who wants to learn how to compute probabilities, that we
have to start with some boring stuff so we can learn how to do the cool
stuff. Adding and subtracting aren't really fun, but figuring odds on
rolling dice IS fun. Learning to program will be kind of like that.
He accepted that explantion.

So, that said... In ~simplest~ terms for the stated goal -- Forth or
Python?
...the goal is NOT the spelling tutor... it is learning how to use a
tool to solve a problem. I am asking which tool is more suited to an
otherwise arbitrary direction of "spelling tutor program."

[NOTE: This is not a troll. I'm geting ready to bark up a tree and I
prefer to avoid the wrong one. I am cross-posting.]

Thanks


Jul 19 '05 #2
"BORT" <UN**********@spammotel.com> wrote:
So, that said... In ~simplest~ terms for the stated goal -- Forth or
Python?
...the goal is NOT the spelling tutor... it is learning how to use a
tool to solve a problem. I am asking which tool is more suited to an
otherwise arbitrary direction of "spelling tutor program."


Forth is an interesting language. But, as a practical tool, Forth is
somewhat of an orphan. You're going to find a lot more in the way of
Python resources than you're going to find Forth resources (for example,
1945 posts to comp.lang.python vs 236 to comp.lang.forth in the past 2
weeks). I know "most popular" doesn't always mean "best", but in this
case, I think it's an important factor. The more you can find in the way
of tutorials, libraries, and on-line help, the easier it will be to master.

Not to mention, that when you're done learning Python, you will have
learned a modern language which includes concepts common to many languages
in common use today. When you learn Forth, you will have learned Forth.
About the best that can be said about that is that It'll give you a
head-start if your next goal is to learn PostScript :-)
Jul 19 '05 #3
D H
BORT wrote:
So, that said... In ~simplest~ terms for the stated goal -- Forth or
Python?
...the goal is NOT the spelling tutor... it is learning how to use a
tool to solve a problem. I am asking which tool is more suited to an
otherwise arbitrary direction of "spelling tutor program."


Python is easier to learn that most other popular programming languages.

For a games approach, check out this online "book" targeted to kids:
http://staff.easthighschool.net/lee/computers/book/
It uses pygame and Lee Harr's pygsear.

For another graphical approach, playing around with images and sound
files, see the Jython Environment for Students (JES). Jython is python
running on top of java's virtual machine.
http://coweb.cc.gatech.edu/mediaComp-plan/94
http://coweb.cc.gatech.edu/mediaComp-plan/27
http://coweb.cc.gatech.edu/mediaComp-plan

For text-to-speech, if you are using Windows and python, see the pyTTS
module and this link: http://www.cs.unc.edu/~parente/tech/tr02.shtml
If you are using jython, see FreeTTS instead:
http://freetts.sourceforge.net/docs/index.php

But since your son is only 10 years old, I'd really recommend first some
non-python development environments that are even more geared to kids:
- Lego Mindstorms, which has a graphical programming environment to
control robots you build (you connect a flow chart to describe the
program instead of having to type and indent everything perfectly). It
is targetted specifically for kids his age, but it is a bit expensive.
- http://agentsheets.com/ - Very neat java-based authoring tool, but
unfortunately costs money too. Trial version only lasts 10 days, but
you can learn a lot in that time using this tool.
- NetLogo (and the older version StarLogo):
http://ccl.northwestern.edu/netlogo/ Uses Logo to script hundreds of
"turtles" in parallel. This is a free tool.
- http://e-slate.cti.gr/ really awesome authoring tool, but hasn't been
updated in a couple of years because I guess the funding ran out.
Jul 19 '05 #4
Hi All--

Roy Smith wrote:
When you learn Forth, you will have learned Forth.
About the best that can be said about that is that It'll give you a
head-start if your next goal is to learn PostScript :-)


In which case, you should start with PostScript;-) I learned it by
plugging a glass tty into the serial port on one of the very first
AppleWriters and typing away. None of this fancy-shmancy '>>>'
business;-) But what a great reward, having graphics come out the
printer when you typed 'show'.

Seriously, PostScript is a lot more fun to learn than Forth, and more
directly useful. Since the rewards are so immediate, a kid's attention
could be gained and kept pretty easily.

But I'd still recommend Python as a first programming language. Keep to
the standard stuff--ignore list comprehensions and so on--until he or
she has the basic control flow down pat.

Metta,
Ivan
----------------------------------------------
Ivan Van Laningham
God N Locomotive Works
http://www.andi-holmes.com/
http://www.foretec.com/python/worksh...oceedings.html
Army Signal Corps: Cu Chi, Class of '70
Author: Teach Yourself Python in 24 Hours
Jul 19 '05 #5


BORT wrote:
Please forgive me if this is TOO newbie-ish.

I am toying with the idea of teaching my ten year old a little about
programming. I started my search with something like "best FREE
programming language for kids." After MUCH clicking and high-level
scanning, I am looking at Python and Forth. Both have advocates that
say each is a great approach to learning computers.

You may find RUR interesting
http://rur-ple.sourceforge.net/
("Learning Python: Child's Play with RUR-PLE!")

Jul 19 '05 #6
BORT said unto the world upon 27/06/2005 23:16:
Please forgive me if this is TOO newbie-ish.

I am toying with the idea of teaching my ten year old a little about
programming. I started my search with something like "best FREE
programming language for kids." After MUCH clicking and high-level
scanning, I am looking at Python and Forth. Both have advocates that
say each is a great approach to learning computers.
<snip>
[NOTE: This is not a troll. I'm geting ready to bark up a tree and I
prefer to avoid the wrong one. I am cross-posting.]

Thanks

Hi,

I don't know a thing about Forth. I'm a hobbyist programmer with
enough Python , and a "tourist's" level of a few other languages. So,
no pro here :-) Qualifying done:

A great thing about Python is the community. Roy Smith's stats
comparing mailing list activity is useful data. I would also add that
with the leading and closing bits of your post, it seems like perhaps
you've seen an ugly flame or two in the past, no? Well, this is a very
friendly place by 'net standards. One can get flamed in
comp.lang.python, but you have to work at it. Hard.

Another good community resource would be the Tutor mailing list --
there are a core group of posters who are very good at explaining
things in a patient and novice-friendly way (and a number of
intermediate folks like myself who sometimes ask, sometimes answer):
<http://mail.python.org/mailman/listinfo/tutor>.

A useful (and free) book aimed at high school students is How to Think
Like a Computer Scientist: Learning with Python
<http://greenteapress.com/thinkpython/>. Though an adult when I came
to Python, I found it useful while first starting and a bit
intimidated by the prospect. It quickly got me to a place where
reading "grown up" books like Learning Python was easy enough.

Best,

Brian vdB

Jul 19 '05 #7


Ivan Van Laningham wrote:
[...]

Seriously, PostScript is a lot more fun to learn than Forth, and more
directly useful. Since the rewards are so immediate, a kid's attention
could be gained and kept pretty easily.
PostScript is easy, but I'm afraid some technical details could get in
the way of enjoyable exploration, e.g. font types or scaling.
PostScript is also a single purpose language: it can print static
graphics and with a slightly more complex setup it can display static
graphics on the screen, period. No interactivity, no files, no network,
no general computation or data structures.
But I'd still recommend Python as a first programming language. Keep to
the standard stuff--ignore list comprehensions and so on--until he or
she has the basic control flow down pat.


Python is general purpose; it can do graphics with a path/stroke model
like Postscript's and a whole world of other things. There are many
complex features in Python that shouldn't be introduced before the need
arises.
List comprehensions, however, *are* the basic control flow; loops are
much more verbose and they should be used only when necessary.

Lorenzo Gatti

Jul 19 '05 #8
BORT wrote:
I told my son, who wants to learn how to compute probabilities, that we
have to start with some boring stuff so we can learn how to do the cool
stuff. Adding and subtracting aren't really fun, but figuring odds on
rolling dice IS fun. Learning to program will be kind of like that.
He accepted that explantion.


I'm not sure that you actually have to start with the boring stuff.
Imagine that you have a small, but complete program that executes some
random function a thousand times and plots the distribution. Your son
could probably
* start to change parameters to the function
* try out the different distributions in the library
* combine them to form new distributions (e.g. roll two n-sided dice)
* build more complex simulations (pit two Dungeons&Dragons fighters
against each other by rolling simulated dice)

It's a bit more work for you as you'll have to decide on each step how
much of the infrastructure you implement without taking away all the
challenges.

Python vs. FORTH: what you learn from Python is more easily transferred
to other programming languages. And if you happend to speak German,
there is "Python für Kids"
<http://www.amazon.de/exec/obidos/ASIN/3826609514/qid%3D1119950457/302-9800191-4449651>

Daniel
Jul 19 '05 #9
ga***@dsdata.it wrote:
List comprehensions, however, *are* the basic control flow; loops are
much more verbose and they should be used only when necessary.


List comprehensions are probably a bad idea for entry level programmers:
- for and while loops are much easier to debug as you can insert print
statements everywhere
- list comprehensions don't allow you to break complex expressions into
several simpler ones by using local variables, everything has to happen
in one expression

Daniel
Jul 19 '05 #10
Ivan Van Laningham <iv*****@pauahtun.org> wrote:
In which case, you should start with PostScript;-) I learned it by
plugging a glass tty into the serial port on one of the very first
AppleWriters and typing away.
Same here. I had the RedBook and remember reading it and not quite
believing it would work. Then I plugged in a terminal, typed in the first
example in the book, and it blew my mind when a piece of paper came out
with a square drawn on it.
Seriously, PostScript is a lot more fun to learn than Forth, and more
directly useful. Since the rewards are so immediate, a kid's attention
could be gained and kept pretty easily.


There is something to be said for that. On the other hand, PostScript is
not easy to debug. If you blow the stack, you mostly just get programs
that mysteriously (and perhaps silently) don't work. It was frustrating
enough for me; it'll probably just turn a kid off from the whole idea of
programming. But then again, little kids seem to not have any problem
programming VCRs, so maybe their brains just work differently :-)
Jul 19 '05 #11
On 27 Jun 2005 20:16:12 -0700, "BORT" <UN**********@spammotel.com>
wrote:
Please forgive me if this is TOO newbie-ish.

I am toying with the idea of teaching my ten year old a little about
programming. I started my search with something like "best FREE
programming language for kids." After MUCH clicking and high-level
scanning, I am looking at Python and Forth. Both have advocates that
say each is a great approach to learning computers.


FORTH is 'way outside the mainstream of current programming, while
Python is, if anything, excessively buzz-word compliant. If you want
to teach your kid something that will a basis for learning anything
about current practices in programming, teach him Python.
Matt Feinstein

--
There is no virtue in believing something that can be proved to be true.
Jul 19 '05 #12
ga***@dsdata.it writes:
Ivan Van Laningham wrote:
[...]

Seriously, PostScript is a lot more fun to learn than Forth, and more
directly useful. Since the rewards are so immediate, a kid's attention
could be gained and kept pretty easily.
PostScript is easy, but I'm afraid some technical details could get in
the way of enjoyable exploration, e.g. font types or scaling.
PostScript is also a single purpose language: it can print static
graphics and with a slightly more complex setup it can display static
graphics on the screen, period. No interactivity, no files, no network,
no general computation or data structures.


PostScript is _not_ limited to static stuff, and it _does_ support
interactivity. See eg.

http://www.cs.technion.ac.il/~wagner...files/aaa.html

Of course, this is just academic fun(?). PostScript is mostly used for
printers, and as for yet, quite few papers support animated graphics :->

And yes, I also encourage to try Python.
List comprehensions, however, *are* the basic control flow; loops are
much more verbose and they should be used only when necessary.


Hm. My experience is that people find loops easier to understand - varies
somewhat, though. For some, 'more verbose' is 'more easy to understand'.

--
# Edvard Majakari Software Engineer
# PGP PUBLIC KEY available Soli Deo Gloria!

$_ = '456476617264204d616a616b6172692c20612043687269737 469616e20'; print
join('',map{chr hex}(split/(\w{2})/)),uc substr(crypt(60281449,'es'),2,4),"\n";
Jul 19 '05 #13
Philippe C. Martin wrote:
Hi,

A couple links ...
http://www.summerland.uku.co.uk/
http://pylogo.org/
http://www.python.org/sigs/edu-sig/
BORT wrote:

Please forgive me if this is TOO newbie-ish.

I am toying with the idea of teaching my ten year old a little about
programming. I started my search with something like "best FREE
programming language for kids." After MUCH clicking and high-level
scanning, I am looking at Python and Forth. Both have advocates that
say each is a great approach to learning computers.

My programming classes were a long, long time ago in a land far, far
away. My programming muscles, which were never truly developed, have
atrophied even so. That said, I want to learn this as we go. The
PROCESS of research and using net resources for a self-learning
adventure is almost as much of the goal as learning a programming
skill.

That said, a good learning goal for my kid would be to create a
spelling tutor for his little brother. My (simple) vision would be:

1. an input file of this week's word list
2. use a free text-to-speech engine to call out one word at a time
3. in turn, monitor each key press as a particular word is being
typed, beeping on an incorrect keystroke and going to the next word if
correct

I don't care if it takes a year or two to get to this level, I just
want a vehicle that will take us there.

I told my son, who wants to learn how to compute probabilities, that we
have to start with some boring stuff so we can learn how to do the cool
stuff. Adding and subtracting aren't really fun, but figuring odds on
rolling dice IS fun. Learning to program will be kind of like that.
He accepted that explantion.

So, that said... In ~simplest~ terms for the stated goal -- Forth or
Python?
...the goal is NOT the spelling tutor... it is learning how to use a
tool to solve a problem. I am asking which tool is more suited to an
otherwise arbitrary direction of "spelling tutor program."

[NOTE: This is not a troll. I'm geting ready to bark up a tree and I
prefer to avoid the wrong one. I am cross-posting.]

Thanks


Over on comp.python.education, David Handy recently announced his book
with a fairly long message (excerpted here):
...
Written by a homeschooling Dad and professional software developer,
"Computer Programming is Fun!" fills a need for a book that teaches
computer programming to teenage youth.
...
208 pages, $29.95 plus taxes and shipping if applicable
Order from the author's web site:
http://www.handysoftware.com/cpif/
...
"Why teach computer programming to teenagers? For the same reason
you would teach them piano or any other musical instrument. Consider
the computer an instrument for the mind."

I've not seen the book myself, but it seems like it is targeted
to very nearly your situation, so I'd investigate it.

--Scott David Daniels
Sc***********@Acm.Org
Jul 19 '05 #14
On Tue, 28 Jun 2005 08:18:55 -0400, Matt Feinstein <no****@here.com>
declaimed the following in comp.lang.python:
FORTH is 'way outside the mainstream of current programming, while
Unless one is coding low-level objects on a MUCK (and even that,
on the MUCKs I sometimes visit, requires sysop approval to access the
MUF interpreter -- the mundanes make do with MPI, a LISP-like language).

-- ================================================== ============ <
wl*****@ix.netcom.com | Wulfraed Dennis Lee Bieber KD6MOG <
wu******@dm.net | Bestiaria Support Staff <
================================================== ============ <
Home Page: <http://www.dm.net/~wulfraed/> <
Overflow Page: <http://wlfraed.home.netcom.com/> <

Jul 19 '05 #15
Dennis Lee Bieber wrote:
On Tue, 28 Jun 2005 08:18:55 -0400, Matt Feinstein <no****@here.com>
declaimed the following in comp.lang.python:

FORTH is 'way outside the mainstream of current programming, while

Unless one is coding low-level objects on a MUCK (and even that,
on the MUCKs I sometimes visit, requires sysop approval to access the
MUF interpreter -- the mundanes make do with MPI, a LISP-like language).


Not "unless"... perhaps "because"? Whatever a MUCK is, it's definitely
not part of the "mainstream of current programming", even if you're the
one doing it...

-Peter
Jul 19 '05 #16
BORT wrote:
I am toying with the idea of teaching my ten year old a little about
programming. I started my search with something like "best FREE
programming language for kids." After MUCH clicking and high-level
scanning, I am looking at Python and Forth. Both have advocates that
say each is a great approach to learning computers.


Kids your backwards talking like if forth love will they then.
Jul 19 '05 #17
BORT wrote:
I am toying with the idea of teaching my ten year old a little about
programming. I started my search with something like "best FREE
programming language for kids." After MUCH clicking and high-level
scanning, I am looking at Python and Forth. Both have advocates that
say each is a great approach to learning computers.


Call me biased, but I'd recommend Python, and it all comes down to a
single concept: Transferability.

As others have mentioned, Forth programming is in somewhat of it's own
class. It's not really imperative, object oriented, or declarative. It's
based on an interesting, but rarely used, principle of stack programing.
Great for someone who is expanding their horizons, but not a lot of
value for a beginning programmer who might want to branch out to
C/Visual Basic/Java/etc.

Also, due to the stack-based nature of the beast, the base way of
specifying mathematical operations doesn't transfer to/from elsewhere,
unless you're talking about old HP calculators. Python uses the standard
mathematical notation, and even uses mathematical precedents (i.e.
multiplication before division).

So for Math you'd do something like:

y = b + mx + cx^2

(Where ^2 is a superscript 2)

For Python it would be:

y = b + m*x + c*x**2

IIRC, for Forth it would be something like (please excuse the mistakes
in operator notation):

x 2 ^ c * m x * + b + 'y' setvar

Where you read from left to right, and imagine pushing items onto a
stack, and when you encounter an operator, you pop the appropriate
number of items, act on them, and push the result back onto the stack.

Granted, you can get Forth dialects with the ability to do infix
(mathematical) notation, but that leads to another transferability
issue, that between interpreters. There is one "official" Python
interpreter, and the developers work dang hard to make sure it runs on
every commonly used platform. The other interpreters are usually special
purpose, and tend to be up front about where they differ from the
"official" Python. Thus, if you see Python code somewhere, it is highly
likely it will run on your Python interpreter

Forth, as it has been around much longer, is a much more fragmented
community, with many more interpreters. What works on one may not work
on another, and a particular interpreter is likely to be available only
for a single platform. With Forth it is *very* easy to extend the
language, and so an interpreter-specific piece of code that someone
posts may not work for you on your interpreter, especially if you're
using a free interpreter for Windows, which tends to be the bastard step
child of free stuff.

There are ANS and IEEE standards for Forth, but official standards tend
to leave things implementation dependent, especially in platform
specific things like file access. To further compound the issue, a Forth
system tends to be self contained and insular - interaction with the
surrounding environment may be minimal at best. Python, where possible,
tries to shield the user from platform specifics, while still allowing
full access to the environment. There are a number of Python bindings to
C libraries which give near complete control to the desktop/screen/sound
system, etc. Forth-bound libraries will likely be rarer, and again,
interpreter specific.

It's been quite some time since I've looked at Forth, and the reference
material that I used then was probably outdated anyway, so someone with
more recent experience can correct me if I'm wrong. However, I would
think it's highly likely that the experience you receive with Forth is
going to depend heavily on which interpreter you choose to use.

P.S. Any 10 year old getting into programing would likely love a library
like PyGame (www.pygame.org) - I'd suggest seeing if the Forth you're
considering has something similar before deciding.
Jul 19 '05 #18
Rocco Moretti wrote:
It's been quite some time since I've looked at Forth, and the reference
material that I used then was probably outdated anyway.


Sorry, thought of one more thing Python has going for it vs. Forth -
reference material. Check the catalog of your local library. I'd guess
that there is more choice for Python programming books vs. Forth
programming books. If your local library does have a Forth book, it's
likely that it'll be discussing some 1970's interpreter that ran on a
now-defunct timesharing system, if mine is any indication.

If you can afford to buy books, the selection at a new or used
bookseller is going to be *much* better with Python than with Forth. My
local new bookseller has at least a shelf of Python books. I don't think
I saw any Forth ones last time I was there - they might have had a
single title that I missed.
Jul 19 '05 #19
On 6/29/05, Rocco Moretti <ro**********@hotpop.com> wrote:

Sorry, thought of one more thing Python has going for it vs. Forth -
reference material. Check the catalog of your local library. I'd guess
that there is more choice for Python programming books vs. Forth
programming books.


I just checked, and you're quite right: the State Library of Tasmania
has only one Forth book -- but it has two Python books (Python
Essential Reference and Python Pocket Reference). Not that the local
booksellers are any better -- I've only found one place that had
anything better than the dreadful "Teach yourself Python in 24 hours",
and since I bought Python in a Nutshell from them a year ago, they've
not got any more in stock. Thank goodness for Amazon, especially as
it's cheaper to order from Amazon than to get the bookstore to order a
book in for me...
Jul 19 '05 #20
Ivan Van Laningham <iv*****@pauahtun.org> writes:
In which case, you should start with PostScript;-) I learned it by
plugging a glass tty into the serial port on one of the very first
AppleWriters and typing away. None of this fancy-shmancy '>>>'
business;-) But what a great reward, having graphics come out the
printer when you typed 'show'.


This is why Logo came with "turtle graphics". Something very simple,
but very powerfull - and the kids could get immediate results from it.

I'm surprised the OP missed Logo in his search. It's one of the few
languages designed to teach computing to children. There are free
implementations for most popular platforms.

Someone has already provided a link to pylogo. That might be a good
starting place.

<mike
--
Mike Meyer <mw*@mired.org> http://www.mired.org/home/mwm/
Independent WWW/Perforce/FreeBSD/Unix consultant, email for more information.
Jul 19 '05 #21
On Tuesday 28 June 2005 10:22 pm, Mike Meyer wrote:
Ivan Van Laningham <iv*****@pauahtun.org> writes:
In which case, you should start with PostScript;-) I learned it by
plugging a glass tty into the serial port on one of the very first
AppleWriters and typing away. None of this fancy-shmancy '>>>'
business;-) But what a great reward, having graphics come out the
printer when you typed 'show'.


This is why Logo came with "turtle graphics". Something very simple,
but very powerfull - and the kids could get immediate results from it.


I suppose it's worth mentioning then, that Python has it's own
implementation of turtle graphics? I think it's in the standard
library, isn't it? The "Live Wires" graphics module is also a good
start --- very similar to the kind of graphics interface that I had
when I was learning on my TRS-80 Color Computer with BASIC. ;-)

--
Terry Hancock ( hancock at anansispaceworks.com )
Anansi Spaceworks http://www.anansispaceworks.com

Jul 19 '05 #22
All,

The Forth-Python pull was heading to a conclusion just like "Tastes
Great" vs. "Less Filling" or Ford-Chevy. However, friendly folks at
comp.lang.forth pointed me to Amazon.com and _Mindstorms: Children,
Computers, and Powerful Ideas_
by Seymour Papert. The book is by Logo's inventor and, according to
the reviews, addresses the larger goal I most want to achieve.

I now want to read the book. Period. However, my kids both love Legos
which uses a Logo implementation for their robotics toys. I could
probably capture both the 10 yr old AND the 7 yr old if we can spring
for the $200 Lego Mindstorm set. Sort of blows away my specification
of "free," but...

In my earlier browsing, I eliminated Logo early on, thinking we would
hit its capability ceiling too quickly and then backtrack in order to
make a transition to a "REAL" language.

uh... I've been browsing on Logo tonight and, even without the Lego
robots, I may go that route. Shoot, I thought Logo was just moving
hokey sprites in increasingly complex patterns until I saw the book
list at:

http://el.media.mit.edu/logo-foundat...cts/books.html

Hmm... When all is said and done, maybe the choice is kind of like
physical exercise. I can spend weeks choosing the most effective work
out and diet combination. But, until I cut back on biggie size grease
brugers with double shakes and get off of the couch every now and then,
the choice of workout is moot. In fact, one I use is better than the
"best" that I don't use.

Gentle folk of comp.lang.python, I heartily thank you all for your
input. I think I'm taking the boys through the door marked "Logo." We
may be back this way, though. We will likely need MORE in the nebulous
future. I am impressed with the outpouring of support here!

Thanks to all!

Jul 19 '05 #23
On Tue, 28 Jun 2005 14:36:40 -0400, Peter Hansen <pe***@engcorp.com>
declaimed the following in comp.lang.python:

Not "unless"... perhaps "because"? Whatever a MUCK is, it's definitely
MUCK, MUD, MOO

Though what MUCK is an acronym of is up for grabs... As I
recall, MUD was "Multi-User Dungeon/Domain", MOO is MUD Object Oriented.
Between them are MUCKs, which were less game (ie, scoring) oriented and
more social. I've seen MUCK expanded as Multi-User, C-Kernel (as MUDs
originated in LISP-like languages, MUCKs used compiled C for the core,
then used MUF -- Multi-User Forth -- as a built-in extension language).

Of course, I've also seen MPI (the LISP-like macro language of
FurryMUCK and Furtoonia) expanded as "My Personal Insanity".

-- ================================================== ============ <
wl*****@ix.netcom.com | Wulfraed Dennis Lee Bieber KD6MOG <
wu******@dm.net | Bestiaria Support Staff <
================================================== ============ <
Home Page: <http://www.dm.net/~wulfraed/> <
Overflow Page: <http://wlfraed.home.netcom.com/> <

Jul 19 '05 #24
On Wed, 29 Jun 2005 10:40:18 +1000, Andrew Durdin <ad*****@gmail.com>
declaimed the following in comp.lang.python:

I just checked, and you're quite right: the State Library of Tasmania
has only one Forth book -- but it has two Python books (Python
Try searching for "threaded interpreted languages", which was a
generic term for Forth-like language interpreters. "threaded" as
practically all operators and functions were "pointers" to other
interpreted objects...

-- ================================================== ============ <
wl*****@ix.netcom.com | Wulfraed Dennis Lee Bieber KD6MOG <
wu******@dm.net | Bestiaria Support Staff <
================================================== ============ <
Home Page: <http://www.dm.net/~wulfraed/> <
Overflow Page: <http://wlfraed.home.netcom.com/> <

Jul 19 '05 #25
BORT wrote:
In my earlier browsing, I eliminated Logo early on, thinking we would
hit its capability ceiling too quickly and then backtrack in order to
make a transition to a "REAL" language.

uh... I've been browsing on Logo tonight and, even without the Lego
robots, I may go that route. Shoot, I thought Logo was just moving
hokey sprites in increasingly complex patterns until I saw the book
list at:


It's probably ideal for ages 7 and 10. Note that even the name _logo_
is Greek for _word_. There's plenty of "non-hokey sprite" stuff you can
do with Logo, it's just that the turtle graphics are the most visually
obvious form of Logo and what most people who had any exposure to Logo
remember most easily. The language itself shares a great deal with Lisp.

There are numerous modern Logo interpreters, so you shouldn't have any
problem finding something both you and the kids can use, like UCBLogo
for Unix or MSWLogo for Windows (based on UCBLogo). If you want to go
that route, there's even a set of computer science texts based on Logo,
called _Computer Science Logo Style_ by Brian Harvey, maintainer of UCBLogo.

--
Erik Max Francis && ma*@alcyone.com && http://www.alcyone.com/max/
San Jose, CA, USA && 37 20 N 121 53 W && AIM erikmaxfrancis
Does the true light / Of love come in flashes
-- Sandra St. Victor
Jul 19 '05 #26
On 28 Jun 2005 22:42:33 -0700, "BORT" <UN**********@spammotel.com>
declaimed the following in comp.lang.python:
I now want to read the book. Period. However, my kids both love Legos
which uses a Logo implementation for their robotics toys. I could
probably capture both the 10 yr old AND the 7 yr old if we can spring
for the $200 Lego Mindstorm set. Sort of blows away my specification
of "free," but...
Well, to add to that, at one time (I don't know if it is still
available) one could get a compiler module for AdaGIDE to let one write
integer/non-tasking Ada programs for the Mindstorms system.

-- ================================================== ============ <
wl*****@ix.netcom.com | Wulfraed Dennis Lee Bieber KD6MOG <
wu******@dm.net | Bestiaria Support Staff <
================================================== ============ <
Home Page: <http://www.dm.net/~wulfraed/> <
Overflow Page: <http://wlfraed.home.netcom.com/> <

Jul 19 '05 #27
BORT ha scritto:
All,

The Forth-Python pull was heading to a conclusion just like "Tastes
Great" vs. "Less Filling" or Ford-Chevy. However, friendly folks at
comp.lang.forth pointed me to Amazon.com and _Mindstorms: Children,
Computers, and Powerful Ideas_
by Seymour Papert. The book is by Logo's inventor and, according to
the reviews, addresses the larger goal I most want to achieve. <snip>

I thought you were limiting the choice to python/forth.
Logo is a nice dialect of lisp, so I think you're making a good choice ;)

But I'd consider Squeak. It is the best educational-but-not-only
environment I've seen (which does not mean there are not better, but
I've seen quite a bit of them)

Squeak not only has programming at the hand but it also provide you with
a complete educational system, with music, painting, animations etc. And
there is nothing that could get a kid involved like making a rabbit explode.

I now want to read the book. Period. However, my kids both love Legos
which uses a Logo implementation for their robotics toys. I could
probably capture both the 10 yr old AND the 7 yr old if we can spring
for the $200 Lego Mindstorm set. Sort of blows away my specification
of "free," but...

In my earlier browsing, I eliminated Logo early on, thinking we would
hit its capability ceiling too quickly and then backtrack in order to
make a transition to a "REAL" language.

uh... I've been browsing on Logo tonight and, even without the Lego
robots, I may go that route. Shoot, I thought Logo was just moving
hokey sprites in increasingly complex patterns until I saw the book
list at:

http://el.media.mit.edu/logo-foundat...cts/books.html

Hmm... When all is said and done, maybe the choice is kind of like
physical exercise. I can spend weeks choosing the most effective work
out and diet combination. But, until I cut back on biggie size grease
brugers with double shakes and get off of the couch every now and then,
the choice of workout is moot. In fact, one I use is better than the
"best" that I don't use.

Gentle folk of comp.lang.python, I heartily thank you all for your
input. I think I'm taking the boys through the door marked "Logo." We
may be back this way, though. We will likely need MORE in the nebulous
future. I am impressed with the outpouring of support here!

Thanks to all!

Jul 19 '05 #28
BORT wrote:
Gentle folk of comp.lang.python, I heartily thank you all for your
input. I think I'm taking the boys through the door marked "Logo." We
may be back this way, though. We will likely need MORE in the nebulous
future. I am impressed with the outpouring of support here!


Others in the thread mentioned it briefly, but when you do come back to
the door marked "Python", someone has eased the transition slightly:

http://pylogo.org/

'''PyLogo is a Logo interpreter written in Python. Its implementation is
small, and is based on the language as implemented by UCBLogo. The Logo
language is a learning language, intended for children for which more
"complete" languages aren't appropriate. Many of Logos language design
choices are driven by this, and differ from Python.'''

Although given it's 0.1 version status, it may be a little rough around
the edges.
Jul 19 '05 #29
In article <11**********************@g43g2000cwa.googlegroups .com>,
BORT <UN**********@spammotel.com> wrote:

Gentle folk of comp.lang.python, I heartily thank you all for your
input. I think I'm taking the boys through the door marked "Logo." We
may be back this way, though. We will likely need MORE in the nebulous
future. I am impressed with the outpouring of support here!

Thanks to all!


You're welcome. I want to leave you with one parting comment:

I first started programming when I was nine years old, in the mid-1970s.
We used TTYs with a timeshared HP1000 and BASIC. Given modern computers
and editors I think that any programming language that isn't excessively
baroque will do fine for young people. They can always unlearn bad
habits later.
--
Aahz (aa**@pythoncraft.com) <*> http://www.pythoncraft.com/

f u cn rd ths, u cn gt a gd jb n nx prgrmmng.
Jul 19 '05 #30
Forth clarifications below...

Rocco Moretti wrote:

So for Math you'd do something like:

y = b + mx + cx^2

IIRC, for Forth it would be something like (please excuse the mistakes
in operator notation):

x 2 ^ c * m x * + b + 'y' setvar
Assuming these are all VALUEs:

x DUP * c * m x * + b + TO y
[Portability]
Much Forth code you find on the net is written to the ANS standard, and
is thus portable. Free standard Forth systems are available for all
platforms.
There are ANS and IEEE standards for Forth, but official standards tend
to leave things implementation dependent, especially in platform
specific things like file access.
Standard I/O and file I/O are part of the ANS standard.
To further compound the issue, a Forth
system tends to be self contained and insular - interaction with the
surrounding environment may be minimal at best. Python, where possible,
tries to shield the user from platform specifics, while still allowing
full access to the environment. There are a number of Python bindings to
C libraries which give near complete control to the desktop/screen/sound
system, etc. Forth-bound libraries will likely be rarer, and again,
interpreter specific.


That is unfortunately true. There are FFI (foreign function iterfaces)
available for the most popular Forth systems, but how they work is not
standardized. Forth has nothing like the module libraries of Python.
Graphics, object-orientation, and data-types are all available or
easily implemented in a particular Forth, but those batteries are not
included as they are in Python.

Ian

Jul 19 '05 #31
> Gentle folk of comp.lang.python, I heartily thank you all for your
input. I think I'm taking the boys through the door marked "Logo." We
may be back this way, though. We will likely need MORE in the nebulous
future. I am impressed with the outpouring of support here!


Before you commit totally to the LOGO idea, take a look at Guido van
Robot:
http://gvr.sourceforge.net/
http://gvr.sourceforge.net/about.php
http://gvr.sourceforge.net/lessons/rfrank/

Cheers,
Nick.

Jul 19 '05 #32
Rocco Moretti <ro**********@hotpop.com> wrote:
So for Math you'd do something like:

y = b + mx + cx^2

(Where ^2 is a superscript 2)

For Python it would be:

y = b + m*x + c*x**2

IIRC, for Forth it would be something like (please excuse the mistakes
in operator notation):

x 2 ^ c * m x * + b + 'y' setvar


In FORTH you don't generally use variables unless you really have to -
that is what the stack is for, so you'd write a word like this...

variable c 10 c !
variable m -2 m !
variable b 14 b !

: quad ( x -- b + m*x + c*x**2 )
dup dup ( x x x )
* c @ * swap ( cx**2 x )
m @ * + ( m*x + c*x**2 )
b @ + ( b + m*x + c*x**2 )
;

And now we test

7 quad . 490 ok

Was that easy? Not really! Compared to python...
c = 10
m = -2
b = 14
def quad(x): return b + m*x + c*x**2 .... quad(7)

490

Was it fun? Well yes it was! FORTH is much lower level than python
and you learn different things from it. At each step you have to
worry about what is on the stack which attention to detail is
important for a programmer. Its a lot of work to do even the simple
stuff though.

Its much easier to understand how FORTH works, and even implement your
own from scratch.

I learnt FORTH a long time ago, and I haven't used it for many many
years! Its major pull back then was that it was fast, and easier to
write than assembler. I don't think that really matters now though,
Python is just as fast thanks to the 3 GHz machine I'm running it on
(rather than the 4 MHz one I ran FORTH on then!) I think FORTH would
be an interesting supplimentary language for anyone to learn though...

*However* I reckon Python would make a much better first language than
FORTH. The batteries included approach make a young programmers life
much, much more fun, rather than starting from almost nothing (in
modern terms) with FORTH.

And like FORTH, Python has the interactive console which is essential
when starting out.

--
Nick Craig-Wood <ni**@craig-wood.com> -- http://www.craig-wood.com/nick
Jul 19 '05 #33
Nick Craig-Wood <ni**@craig-wood.com> wrote:
In FORTH you don't generally use variables unless you really have to -
that is what the stack is for


Exactly. Every language has its natural way of doing things. You can
usually bludgeon a language into doing things some other way, and newcomers
to a language usually try to do exactly that. Eventually they catch on to
the idioms.

Storing temporary values in variables in a stack language is like iterating
through the items of a list in Python by incrementing an integer and using
it as an index.
Jul 19 '05 #34
There's a reprint this morning on slashdot of a 1984 review Byte did
on the brand-new Macintosh (executive summary: cool machine, needs
more memory). The first four software packages available for the new
machine?

MacWrite/MacPaint (they seem to count this as one package)
Microsoft Multiplan
Microsoft BASIC
CSI MacForth

No mention of Python :-(
Jul 19 '05 #35
ro*@panix.com (Roy Smith) writes:
There's a reprint this morning on slashdot of a 1984 review Byte did
on the brand-new Macintosh (executive summary: cool machine, needs
more memory). The first four software packages available for the new
machine?

MacWrite/MacPaint (they seem to count this as one package)
Microsoft Multiplan
Microsoft BASIC
CSI MacForth

No mention of Python :-(


That's because the time machine doesn't work that far into the
past. It's primary use is to retroactively fix bugs in Python, so the
design spec only called for the ability to go back to the first public
release of Python.

<mike
--
Mike Meyer <mw*@mired.org> http://www.mired.org/home/mwm/
Independent WWW/Perforce/FreeBSD/Unix consultant, email for more information.
Jul 19 '05 #36
BORT wrote:
Please forgive me if this is TOO newbie-ish.

I am toying with the idea of teaching my ten year old a little about
programming. I started my search with something like "best FREE
programming language for kids." After MUCH clicking and high-level
scanning, I am looking at Python and Forth. Both have advocates that
say each is a great approach to learning computers.

My programming classes were a long, long time ago in a land far, far
away. My programming muscles, which were never truly developed, have
atrophied even so. That said, I want to learn this as we go. The
PROCESS of research and using net resources for a self-learning
adventure is almost as much of the goal as learning a programming
skill.

That said, a good learning goal for my kid would be to create a
spelling tutor for his little brother. My (simple) vision would be:

1. an input file of this week's word list
2. use a free text-to-speech engine to call out one word at a time
3. in turn, monitor each key press as a particular word is being
typed, beeping on an incorrect keystroke and going to the next word if
correct

I don't care if it takes a year or two to get to this level, I just
want a vehicle that will take us there.

I told my son, who wants to learn how to compute probabilities, that we
have to start with some boring stuff so we can learn how to do the cool
stuff. Adding and subtracting aren't really fun, but figuring odds on
rolling dice IS fun. Learning to program will be kind of like that.
He accepted that explantion.

So, that said... In ~simplest~ terms for the stated goal -- Forth or
Python?
....the goal is NOT the spelling tutor... it is learning how to use a
tool to solve a problem. I am asking which tool is more suited to an
otherwise arbitrary direction of "spelling tutor program."

[NOTE: This is not a troll. I'm geting ready to bark up a tree and I
prefer to avoid the wrong one. I am cross-posting.]

Thanks

As a pre-learning-Python stage you might use the Firefox browser:
1. Set up a text file with correctly spelled words.
2. Open that file with Firefox.
3. Ctrl F to open the search window at the bottom of the screen.
4. Enter each word to test.

Fun? for the younger brother and a suggestion as to the functionality
you might build into the second stage of your Python program.

Colin W.
Jul 19 '05 #37
On Tue, 28 Jun 2005 12:58:21 -0700, rumours say that Dave Benjamin
<ra***@lackingtalent.com> might have written:
BORT wrote:
I am toying with the idea of teaching my ten year old a little about
programming. I started my search with something like "best FREE
programming language for kids." After MUCH clicking and high-level
scanning, I am looking at Python and Forth. Both have advocates that
say each is a great approach to learning computers.
Kids your backwards talking like if forth love will they then.


I have a nephew that would love Forth only for that.

The perfect language for many kids I know would be Python with boolean
operators reversed. Oh, and 'print' should be 'do_NOT_print'.
--
TZOTZIOY, I speak England very best.
"Dear Paul,
please stop spamming us."
The Corinthians
Jul 19 '05 #38
Scanning quickly through the various response, I noticed that at least
one person suggested rur-ple (rur-ple.sf.net), hence Python. I would
second that ;-) ... but then, I am biased as the author of rur-ple!

rur-ple is intended to be a complete learning environment for learning
programming and Python for complete beginners. At the core of it are a
set of lessons (about 40 so far). Before the end of the summer,
rur-ple should include a complete tutorial on writing games using
Python (and pygames). My goal is for rur-ple to be usable by 10 years
old (with guidance) and young adults (by themselves) to learn about
programming.

Check it out ... and let me know what appeals to you (if anything) and
what doesn't.

It's free :-)

André

Jul 19 '05 #39

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

3
by: yps | last post by:
as a new learner of python,which book in <python in a nutshelland <programming pythonis more suitable? and recommend several books? thanks best regards pase.Y
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.