8/21 Wanna teach programming language to my cousin (10 year old). Should
I teach LISP or Java first? Also, is it advisable to teach more than
one language at a time?
\_ http://www.toontalk.com -mogul
\_ Get a Mac, have 'em try HyperCard. When they get bored with that,
Pascal. I tried this, and it was fun -brg
\_ I would say the cool stuff for 10 yr olds is Perl cgi. They
can write stuff that other people can look at over the web.
\_ I concur. -tom
\_ i VIOLENTLY DISAGREE. There is enoguh disgusting
perl out there, without another 10yearold with
no programming experience adding to the mess.
Teach them how to program PROPERLY first.
\_ i VIOLENTLY ABSTAIN.
\_ Teach a 10 yr old to enjoy programming and
they will learn good programming over the
course of a career.
\_ Which is why there's so much crap code out there
right now. No. You're wrong. Programming
properly requires discipline and being told how.
You don't magically become good at something just
because you like it and do it for money.
\_ Don't confuse what's "formally" there with what the language was
built for. If you think the CLOS is intuitive to the average
10-year-old (relative to Java, that is), you need serious help.
All alternatives to CLOS that I've seen are no better. Think
Intuitiveness.
\_ I did it for the sex appeal, and have since
become a great programmer. (Only the elegance
of my code can now approach my attractiveness.)
\_ I agree with brg on this one. A great many of the people I
know that have a love of computer science started with HyperCard.
I've also seen a correlation between having clue now, and using
HyperCard when young. Obviously I'm not implying that HyperCard
bestows clue and a love of CS. More likely, it offers a fun
love of computer science as a discipline
way for people to learn a programming mindset. -dans
\_ Interesting observation, I started with hypercard and
I love CS. Before HC I had done logo and basic though.
The other possibilitiy is that I decided on CS since
my mom was CS also.
\_ Shut up, dans. You are an idiot. Go away. You are not
qualified to give advise on sneezing, let alone computer
science.
\_ Sod off. And sign yer posts. -dans
\_ learn a programming mindset in a fun
love of computer science as a discipline [motd formatting god]
\_ Python or pascal.
\_ Lemme explain about python: python is scripting
(immediate feedback, no compile) very clean of syntax,
and very powerful. Its only annoyance is that it requires
proper whitespacing, but it's good to learn proper indenting in
a first language anyway. If you don't know python, learn it
THEN teach it to your cousin.
\_ Python is Perl's poor cousin. Python is still longing
to be what Perl was back in version 3.0
\_ But it does *look* nicer on a printed page. :-)
\_ korn shell
I'm NOT KIDDING!!! It's simple to start, but has a LOT of
features. Functions, vars, lots of optional odd tricks.
\_ David Korn is a prick, I refuse to use his shell. Either
Bourne shell or BASH.
\_ so is RMS. So do you refuse to use gcc, emacs, or any
other of his stuff?
\_ RMS isn't as much of a prick as DK. DK's great
contribution was /bin/ksh and he goes around
like he invented computing (just like Al Bore
invented the internet). Without K&R,SRB,KT,BJ
DK wouldn't have amounted to a hill of beans.
The other thing is that he's also in bed with
M$.
\_ So what? If the technology is good, use it. Do
you not surf websites backed by Oracle because Larry
Ellison is a prick too? You're being an idiot.
\_ I don't use ksh mostly because there are just
so many other better alternatives. The fact
that DK is a prick doesn't make me want to
use it either.
\_ name 3, "so many others".
Perl is great if you want to
access a database or do network stuff,
but otherwise it's mostly overkill.
\_ Bourne Shell, BASH, Perl, Awk, Sed,
C, C++, TCL/TK, Java, Fortran, PL/1,
ALGOL, Basic, even DOSHELL! Ksh is
just a copy of SRB and BJ's work.
\_ Java is probably better; LISP may be best for a CS student to start
from, but it doesn't yield "pretty" results immediately. OOP has
a more tangible link to the real world (ie "objects and their
interaction"). More than one language at a time should be absolutely
out of the question. You will confuse the fuck out him/her.
\_ LISP is object oriented, and in fact had objects before Java.
At any rate, most modern languages provide a way to program with
objects or object like entities (with the only 2 notable
exceptions being C, which is too low level to have objects as
anything else but gobs of memory, and prolog, which can be
used to implement any object system of your choice trivially).
\_ Don't confuse what's "formally" there with what the language
was built for. If you think the CLOS is intuitive to the
average 10-year-old (relative to Java, that is), you need
serious help. All alternatives to CLOS that I've seen are
no better. Think Intuitiveness.
\_ C-like syntax isn't intuitive. In actuality, scheme's
syntax is far cleaner, and CLOS is a far better object
system than java's if for no other reason than because
classes are first class objects themselves. Want to teach
java's alternative (reflection) to a newbie? And drop this
lecturing tone, you haven't gotten enough clue to assume it
yet.
\_ Listen buddy. I've probably taught Java to more
10-year-olds than you've met in your life. And I've
tried the alternatives. If you don't believe what I am
saying, go find a sample of a few 10-year-olds and see
how you fare with your lisp fantasies. I have the utmost
respect for {lisp,scheme,yermom}, but none of them are
suitable for 10-year-olds.
\_ Which alternatives have you tried? See, friend,
you are something people in the know like to call
'Java-drone.' Would you like to guess why?
\_ Read first before spewing garbage. I don't
endorse Java as The Best And Last Real Programming
Language. As a matter of fact, I think little to
none commercial-grade code should be in Java.
Getting 10-year-olds interested is an entirely
different story. As for the alternatives --
I've tried Scheme, C, BASIC several times, and
perl, lisp, linkway (bad hypercard clone),
turing, and some obscure ancient shit you've
never heard of a couple of times
\_ What about my favorite language, assembly? *ducks*
\_ i learned to program in 6502 assembler when i was 10.
\_ m68k assembler @ age 12.
\_ 4004 at age 17.
\_ eniac circuit codes at age 5
\_ babbage gears @ age 4
\_ trained the wet-nurse @ age 6 mos.
\_ I think alot of people in our CS dept (well... at least Harvey
and Clancy) would say to teach Logo with the intention of quickly
transitioning to something more practical. I think Java would be
a good start in that it is really powerful with all the hard stuff
abstracted away... and thus can yield some rewarding results for
a 10-year-old failry quickly.
\_ If you want to hook someone on programming, you really cant
beat "Hey, I make make funny colored shapes in 30 seconds".
Logo rules for bringing them in.
(then when they're hooked, we move them up to the heavier
stuff. And THEN we start ch... Ummmm.. forget that last bit)
\_ I'd suggest teaching Smalltalk. That's what it was made for,
after all.
\_ So what? Doesn't mean it's any good for that.
\_ But it actually was a good teaching language. Supposedly
they were getting 9-12 year olds programming things like
paint programs pretty quickly with Smalltalk.
\_ The first language I learned to program in was BASIC. Even
though I liked programming, BASIC was annoying because there
were lots of strange syntax rules you had to remember. Based
on this experience I would recommend starting with a language
that has a simple, clean, and consistent syntax. LISP and Tcl
are 2 good examples. I've never used python, but I suspect that
the idea of using white space to indicate scope is the kind of
thing that would scar a young programmer for life. As for C, C++
and Java, all I can say is that if decent programmers find things
like x <<= y ^ *x++ && 0x32 hard to undrstand, think how a kid
would feel. Good luck, and let us know how things go. -emin
\_ if you code like that that's YER fucking problem |