Teaching Smalltalk (Dolphin) to a child 11 yrs

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

Teaching Smalltalk (Dolphin) to a child 11 yrs

Sanjay Minni-3
My son (11-12 yrs) wants to learn Smalltalk
No merits, no syllabus, no recommendations
- just fate (he sees me battling it and he did a bit of LOGO)

1. I have a copy of Dolphin4 PRO
2. I am not proficient in ST at all
    (but otherwise a seasoned programmer)

How to go about it or to abandon it ?

Regards
Sanjay Minni


Reply | Threaded
Open this post in threaded view
|

Re: Teaching Smalltalk (Dolphin) to a child 11 yrs

Sean Malloy-6
> How to go about it or to abandon it ?

Definitely don't abandon it. I would be pretty confident in saying he will
have more success programming with Smalltalk than just about any other
language you could possibly throw at him.

You could try and get him onto the Squeak etoy stuff (worlds of squeak etc)
and as he learns some of the environment have him try and map some of it
back into the Dolphin env...

But I can't see why any of the ways the average person may learn Smalltalk
(by sitting down and just playing breaking changing) should be any different
for a kid/teenager?


Reply | Threaded
Open this post in threaded view
|

Re: Teaching Smalltalk (Dolphin) to a child 11 yrs

frank.lesser
> How to go about it or to abandon it ?

Definitly give it a try.
My son ( now 10 years old ) played with Smalltalk since he was 5 years old  ( a PARTS like enviroment where he could assemble GUI
components by wiring them together ).
Now he became an important tester for our Development environment ( LSWVST ) and a lot of tools where improved on his demand.
Dolphin is interfaces very nicely with Windows which is important when children later want to make something real.
As I remember Andy Bower wrote some interface to LEGO Mindstorms for an older version of Dolphin - maybe this is a good start.

regards,
Frank Lesser, www.lesser-software.com


Reply | Threaded
Open this post in threaded view
|

Re: Teaching Smalltalk (Dolphin) to a child 11 yrs

rush
In reply to this post by Sanjay Minni-3
"Sanjay Minni" <[hidden email]> wrote in message
news:[hidden email]...
> My son (11-12 yrs) wants to learn Smalltalk
> No merits, no syllabus, no recommendations
> - just fate (he sees me battling it and he did a bit of LOGO)
>
> 1. I have a copy of Dolphin4 PRO
> 2. I am not proficient in ST at all
>     (but otherwise a seasoned programmer)

I have introduced Dolphin to my nephew at that age if I recall correctly. I
think playground example can be nice place to start. Then dolphin interface
to that windows animated characters I forgot their name, but you can iussue
them some basic commands like speak, wave, sit etc ..,  gave him so much
fun. But concept of classes is bit hard to grasp at that age I think, so it
will be mostly playing in workspace with basic sequences, ifs and loops.

rush
--
http://www.templatetamer.com/


jas
Reply | Threaded
Open this post in threaded view
|

Re: Teaching Smalltalk (Dolphin) to a child 11 yrs

jas
In reply to this post by Sanjay Minni-3
Sanjay Minni wrote:
> My son (11-12 yrs) wants to learn Smalltalk
> No merits, no syllabus, no recommendations
> - just fate (he sees me battling it and he did a bit of LOGO)
>
> 1. I have a copy of Dolphin4 PRO
> 2. I am not proficient in ST at all
>     (but otherwise a seasoned programmer)
>
> How to go about it or to abandon it ?

Second part first - if you want to abandon it, do it NOW.
This stuff is extraordinarily addictive.

No?  Still interested?  Ok - here goes...

Imagine that instead of the entire LOGO environment
having direct access to the turtle graphics routines,
those routines are completely encapsulated in, and
known only to, this one thing called 'turtle'.
In other words, 'turtle' is an object.

You are used to specifying graphics routines
something like this:

do penDown().
do forward(2).
do rotate(90).
etc...

You tell the system to 'do' a 'procedure',
then another, etc.


Now, if you had the aforementioned 'turtle' object,
you would instead program it thus:

turtle penDown.
turtle forward: 2.
turtle rotate: 90.
etc...

You send a message to the turtle object,
telling it what to do.

That's the motivational set up - now for a place to start.

Fire up Dolphin, and figure out which of the windows
is a 'workspace'.  If there isn't one, hunt around in
the menus until you find something that sounds like it
might create a workspace, and create one.

Type this as a line, somewhere in the workspace:

   'Sanjay Minni'

Now, with the cursor on that line, right click,
and select 'inspect it'.  You'll get a new window
showing you that the object on that line is a string.
Dismiss the window.

Change that line so it looks like this:

   'Sanjay Minni' inspect

With the cursor on that line, right click,
and select 'evaluate it'.  You'll get the same
thing as before, because when you evaluate that
line, the message 'inspect' gets sent to the
receiver (an object), which is a string.
The string knows what that message means.

When you selected 'inspect it', you caused
an #inspect message to be sent to the object
on the line; when you selected 'evaluate it'
you caused a #compileAndExecuteYourself
message to be sent to the object on line.
[Note - not really true, but virtually true].

Ok, now change that line to look like this:

   'Sanjay Minni' includes: $a

Put your cursor on the line, and evaluate it.
Hmmmm, nothing happened.
Put your cursor on that line again, but this
time select 'display it'.  The word 'true'
will be added to the line.  Why?
Well, 'display it' really means
    'first evaluate it, then print the result'.
The code is understood like this:

   Send the message 'includes: $a'
   to the string 'Sanjay Minni'.

   In other words, ask the string
   whether it includes the character a.
   { The string responds -- true. }

The first time, we said 'evaluate it'.
So the message was sent, and responded to.
But we couldn't see the response - it was
no longer needed for anything and so it was
thrown away; i.e. it was garbage, and the
garbage collector found it, and got rid of
it for us.

The second time, we said 'display it'.
So the message was sent, and responded to.
And the response was printed.  After which,
it was no longer needed for anything and so
it was thrown away.

Ok, so you get the idea.

You can open up some other windows,
to browse the system in various ways.
You can learn a lot by doing so.

Reading the tutorials on the Dolphin
web site will help too.

For a little help in translating what
you know into Smalltalk form, google for
'Reading Smalltalk'.

For help with the 'tone' of the language,
find the song "Alice's Restaurant" by Arlo Guthrie.

As a final hint as to where you're headed,
change that original line to look like this:

   'Sanjay Minni' reverse collect: [:ch| ch asUppercase]

Put your cursor on that line, and either inspect it,
or display it.  Have your son explain what happened.


Regards,

-cstb


Reply | Threaded
Open this post in threaded view
|

Re: Teaching Smalltalk (Dolphin) to a child 11 yrs

sanjay minni-4
Is there any equivalent to "turtle" in Dolphin
or something interested to get a child started
What "interesting" things can be begun with

The only thing he likes is games and I thing
somewhere he's cooked up the idea that
he can write *one* here...eventually...

most of the work I do is drab

> Imagine that instead of the entire LOGO environment
> having direct access to the turtle graphics routines,
> those routines are completely encapsulated in, and
> known only to, this one thing called 'turtle'.
> In other words, 'turtle' is an object.
>

Sanjay


---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.745 / Virus Database: 497 - Release Date: 27/08/04


Reply | Threaded
Open this post in threaded view
|

Re: Teaching Smalltalk (Dolphin) to a child 11 yrs

rush
"Sanjay Minni" <[hidden email]> wrote in message
news:[hidden email]...
> Is there any equivalent to "turtle" in Dolphin
> or something interested to get a child started
> What "interesting" things can be begun with
>
> The only thing he likes is games and I thing
> somewhere he's cooked up the idea that
> he can write *one* here...eventually...

Take a look at his post from Andy about playing with MS Agents from
Smalltalk. It is definitely something a kid will like especially if you
download some more charactes (agents) for him to play with. My nephew
certanly liked it.

http://groups.google.com/groups?q=agent&hl=hr&lr=&ie=UTF-8&group=comp.lang.s
malltalk.dolphin&selm=9j95lg%24mfskc%241%40ID-51044.news.dfncis.de&rnum=1

(this url should be in one line unbroken. or seach c.l.s.d for keyword
"agent")

rush
--
http://www.templatetamer.com/


Reply | Threaded
Open this post in threaded view
|

Re: Teaching Smalltalk (Dolphin) to a child 11 yrs

Christopher J. Demers
In reply to this post by sanjay minni-4
"Sanjay Minni" <[hidden email]> wrote in message
news:[hidden email]...
> Is there any equivalent to "turtle" in Dolphin
> or something interested to get a child started
> What "interesting" things can be begun with

Canvas has some simple drawing methods.  One could write a Turtle class to
draw on a canvas.  Here is a quick way to play with a canvas.
==================
shell := Shell show.
canvas := shell view canvas.
canvas erase.
canvas moveTo: 10@10.
canvas lineTo: 200@200.
canvas pen: Pen green.
canvas lineFrom: 10@25 to: 150@250.
==================

> The only thing he likes is games and I thing
> somewhere he's cooked up the idea that
> he can write *one* here...eventually...

Have a look at my simple space ship game here
http://www.mitchellscientific.com/smalltalk/CJDSimpleGame.htm .  The Dolphin
Smalltalk source code is included.

Chris