From: Paul Carpenter on
In article <urum26henhq3n11veahou010sf4rb9ettq(a)4ax.com>,
jonk(a)infinitefactors.org says...
> On Wed, 30 Jun 2010 10:37:54 +0100, Paul Carpenter
> <paul(a)pcserviceselectronics.co.uk> wrote:
>
> >In article <o9ck26lng9rcl52m3pvs2071rf68ns74qm(a)4ax.com>,
> >jonk(a)infinitefactors.org says...
> >> On Tue, 29 Jun 2010 07:54:12 -0700 (PDT), steve
> >> <bungalow_steve(a)yahoo.com> wrote:
> >....
> >
......

> >Other half teaches basics of control, looping and animation to
> >13-16 year olds, using Scratch (scratch.mit.edu) quite
> >effectively. Even done some burglar alarm control simulations.
>
> I just went to the web page. I have spent exactly 60 seconds
> looking and stopped. I wasn't able, in that time, to find
> programming source code examples and/or to see how this might
> operate on a tiny embedded micro to control a small movable
> toy without a PC present. If you have some good pointers to
> look at there, or some thoughts about it, I'd enjoy that.

Scratch is good at getting quickly people used to looking
at concepts and seeing results. Too often I have seen people
try to programme something without understanding concepts of a
simple loop or variables. Which you will need even in a functional
language, except Turtle.

This is generally easier than boring paper exercises. In minutes
they can start getting simple things as constructs fairly language
neutral with results they can see.

Very few people between 15 and 75 have seen or even remember
simple programming constructs and then flounderwhen doing more things.

If nothing else those interested in video games can see waht is involved.


> >She can give them tasks and they can mainly quickly do it, some
> >go further. Some have even created little games on their own.
> >
> >There is some external hardware that can be either purchased
> >or made.
>
> Cheaply?

When I last looked yes.

See

http://info.scratch.mit.edu/Sensor_Boards

In particular http://www.picocricket.com/picoboard.html

A USB sensor board with sound and light sensors, slider input
aligator clips for meauring resitance, and USB driven.

Then of course it can interface to the Lego WeDO

http://info.scratch.mit.edu/WeDo

Which includes

Motor
Distance sensor
tilt sensor.

Then possibly transfer totally to Lego Wedo build a motorised unit.

Then again your own motorised unit.

>
> <snip of points not addressed to me>
>
> >> Sights way, way too high. Must take baby steps, first. My
> >> job is to try and make those first steps enough fun, and no
> >> more, to maybe get one or two to take a second step next.
> >
> >Teenagers especially think they are indestructible and can
> >do ANYTHING without training, they always have and always will.
> >
> >If they have not seen any programming before I strongly recommend
> >Scratch as an introduction, if nothing else to find out their abilities.
>
> Just as in a beginning class on pottery, there is very little
> time available to explore capabilities by teaching something
> _else_, first.

It gives them the ability to grasp basic programming concepts QUICKLY
without linkers, debuggers, programmers, knowing language A over B or C
or D. They can play with it at home for free.

By adding sensors/motors get to start doing simple things, that build up.

> I will have very little time, in some cases.
> In a summer class done as a community education extension at
> a community college I may have 4 weeks and probably no more
> than 2 hours per week. As in pottery, the idea is to provide
> a variety of easy to apply tools and get them to start
> playing right away. I want them to actually complete
> something before the end that is fun and worth taking home.
> If I tried to get them through doing a Scratch project (I'm
> guessing here, of course), the class might be over before
> they ever begin.

Considering the other half gets 13-14 year olds in 40 minute lessons
going from nothing to some simple animation/game/programming construct
going that gets their attention as it plays sounds and moves graphics.
That sort of thing especially for the younger ones grabs their attention.

They graphically build loops and conditionals, which say things like
'while' drop in the condition and event or variable or constant. If
statements and others similarly.

It is Java code so easy to run on almost anything. The project can then
sit on a web page and be run from a browser!

There are loads of resources for taking it further at home. even if they
don't come back

That could the first 30-60 minutes then take an example you have into
a micro for a toy, even if it is a simple line follower or not hitting
walls 'bot', then take it further whilst using the concept and
demonstration you started with.

You could use a USB sensor board to drive the graphic on YOUR system to
demonstrate, (that keeps the gamers interested), this you can then use
as the basis of how you then do your embedded micro.

Use it to drive motors and read sensors.

Even if that is your demonstrator, then show them the toy or whatever is
to be controlled by the embedded micro.

> I think I need to focus directly and squarely on the primary
> goal. I want to reach folks who may never do much more, but
> wouldn't mind taking a crack at it and maybe taking a project
> or two home with them and ... never again come back.

There are loads of resources for taking further at home. even if they
don't come back

> If I were trying to find out their programming abilities, for
> example, I might start them out with this:
>
> http://pleasingfungus.com/

That is awful

> But most folks would run from that, screaming insanely all
> the way home. And I want to reach people, not send them away
> to come back with pitch forks to drive me out of town!

Drop me a line and see some simple ones that have been made
from a URL I cannot give out here for various reasons.

I should be able to get from other half her step by step movies
on how to do these things in Scratch.

> Jon
>

--
Paul Carpenter | paul(a)pcserviceselectronics.co.uk
<http://www.pcserviceselectronics.co.uk/> PC Services
<http://www.pcserviceselectronics.co.uk/fonts/> Timing Diagram Font
<http://www.gnuh8.org.uk/> GNU H8 - compiler & Renesas H8/H8S/H8 Tiny
<http://www.badweb.org.uk/> For those web sites you hate
From: -jg on
On Jul 1, 5:42 am, Jon Kirwan <j...(a)infinitefactors.org> wrote:
> On Wed, 30 Jun 2010 10:37:54 +0100, Paul Carpenter
> <p...(a)pcserviceselectronics.co.uk> wrote:
> >Other half teaches basics of control, looping and animation to
> >13-16 year olds, using Scratch (scratch.mit.edu) quite
> >effectively. Even done some burglar alarm control simulations.
>
> I just went to the web page.  I have spent exactly 60 seconds
> looking and stopped.  I wasn't able, in that time, to find
> programming source code examples and/or to see how this might
> operate on a tiny embedded micro to control a small movable
> toy without a PC present.  If you have some good pointers to
> look at there, or some thoughts about it, I'd enjoy that.

Scratch mentioned some slave IO choices, but nothing standalone,
and IO does not seem to be their 'focus'.

Looks similar to Lego, without the expensive HW lock-in.

Could have a place for early lessons on conditional decisions, and
timing ?

But I think it's hard to go past the TI system, and some
dual-language handling (as in Basic to C to allow apparent Source-Step-
Debug)

example: with some minor preprocessor legwork, this compiles in a C
compiler, and illustrates what can be done to lower 'culture shock' in
a dual language
debug pathway.

char nibble(void)
Begin
if (( ch=getchar() )>'9') Then
return ch-55;
Else
return ch-48;
End_If
End_Function


-jg
From: Albert van der Horst on
In article <i0d7tv$6rc$1(a)news.eternal-september.org>,
hamilton <hamilton(a)nothere.com> wrote:
>On 6/29/2010 9:24 AM, Micke wrote:
>
>>
>> Since you are considering using Forth, I would suggest
>> FlashForth
>>
>> Cheers Mikael
>> http://flashforth.sourceforge.net
>
>Please do not force children to understand RPN at such a young age.

Bloody nonsense. RPN is more natural than formula's.
This is how I started addition in first grade:

5
6
-- +
11

Then in grade 3 or so the children have to learn complicated rules
like "meneer van dalen wacht op antwoord" to understand how
5+6*3 is calculated.

-----------

It is very natural to do
5 \ the computer has remembered a number for you
6 \ the computer has remembered another number for you
..S
[ 6 5 ] OK \ See?
+ \ The computer has added the last two numbers it remembered
.. 11 OK \

>
>They will have problems with regular math forever after that.

This is in view of the foregoing arguably false.
This is a totally unfounded claim and I dare you to back that up
with some data.

It only reflects your inability to cope with RPN after years
of seeing formula's like (a+b*c). You can't invert the argument
and claim that children who retain their ability to understand
RPN would have problems.

Look at recipes.

"Mix the eggs and the butter." is for the more advanced.


Break three eggs in a bowl.
Add 3 spoons of butter.
Mix until it is homogeneous.

>
>The Logos people have it fairly right, look at the software they have
>for children.
>
>The hardware is almost insignificant, get the software right and you
>will keep their interest.
>
>Software that will get them running and some simple projects.

Forth is tried and proven effective in robot projects, e.g.
Lego Mindstorm.

>
>good luck
>
>hamilton
>

Groetjes Albert

--
--
Albert van der Horst, UTRECHT,THE NETHERLANDS
Economic growth -- being exponential -- ultimately falters.
albert(a)spe&ar&c.xs4all.nl &=n http://home.hccnet.nl/a.w.m.van.der.horst

From: Walter Banks on


Jon Kirwan wrote:
>
> On Wed, 30 Jun 2010 08:09:17 -0400, Walter Banks
> <walter(a)bytecraft.com> wrote:
>
> >Jon Kirwan wrote:
> >>
> >> I'm also
> >> considering something along the lines of Lego's dev semantics
> >> or ZZT (it's a game thing) like approach. Also, Paul has
> >> mentioned XMOS' XC language, which has some tempting syntax
> >> and semantics, as well.
> >
> >High expectations are always a problem in introductory
> >programming courses. For short courses functional
> >languages like LEGO work quite well. The primary reason
> >is the language core has a very simple metaphor but
> >you can use it to teach most programming concepts without
> >overwhelming detail.
>
> I think I broadly agree with this and I need to give this
> some more thought and actual testing effort to verify.
>
> >The nice thing about functional languages is for
> >a reasonably simple implementation the core interpreter
> >is very short maybe 300 lines.
>
> Hmm. Any particular pointers here that I may examine to
> elaborate the details here? (In no way am I disputing your
> point, it's just that I'm lazy enough to want any help I can
> get.)
>

The 300 line comment comes from personal experience implementing
a parallel functional language that Byte Craft uses to control
the processor simulators we use for compiler development.
The syntax we use is similar to lisp

(name arg list)

There are about a dozen core primitives. Functions and
primitives use the same syntax. The interpreter is a simple
recursive character string consumer evaluating innermost
brackets first. Execution is surprisingly quick. We still
use it.

There are several logo's written in java script including
the following link
http://www.calormen.com/Logo/

To use your pottery example. Everyone who goes to a
pottery workshop has some idea what is involved in making a
bowl. My point is for teaching a computer course the only
thing most new students know is the relationship between user
interface and behavior. Build on that reference with a
simple metaphor.


Regards

--
Walter Banks
Byte Craft Limited
http://www.bytecraft.com

--- news://freenews.netfront.net/ - complaints: news(a)netfront.net ---
From: Jon Kirwan on
On Fri, 02 Jul 2010 06:42:06 -0400, Walter Banks
<walter(a)bytecraft.com> wrote:

>Jon Kirwan wrote:
>>
>> On Wed, 30 Jun 2010 08:09:17 -0400, Walter Banks
>> <walter(a)bytecraft.com> wrote:
>>
>> >Jon Kirwan wrote:
>> >>
>> >> I'm also
>> >> considering something along the lines of Lego's dev semantics
>> >> or ZZT (it's a game thing) like approach. Also, Paul has
>> >> mentioned XMOS' XC language, which has some tempting syntax
>> >> and semantics, as well.
>> >
>> >High expectations are always a problem in introductory
>> >programming courses. For short courses functional
>> >languages like LEGO work quite well. The primary reason
>> >is the language core has a very simple metaphor but
>> >you can use it to teach most programming concepts without
>> >overwhelming detail.
>>
>> I think I broadly agree with this and I need to give this
>> some more thought and actual testing effort to verify.
>>
>> >The nice thing about functional languages is for
>> >a reasonably simple implementation the core interpreter
>> >is very short maybe 300 lines.
>>
>> Hmm. Any particular pointers here that I may examine to
>> elaborate the details here? (In no way am I disputing your
>> point, it's just that I'm lazy enough to want any help I can
>> get.)
>
>The 300 line comment comes from personal experience implementing
>a parallel functional language that Byte Craft uses to control
>the processor simulators we use for compiler development.
>The syntax we use is similar to lisp
>
>(name arg list)

Okay.

>There are about a dozen core primitives. Functions and
>primitives use the same syntax. The interpreter is a simple
>recursive character string consumer evaluating innermost
>brackets first. Execution is surprisingly quick. We still
>use it.

Reuse is good.

>There are several logo's written in java script including
>the following link
>http://www.calormen.com/Logo/
>
>To use your pottery example. Everyone who goes to a
>pottery workshop has some idea what is involved in making a
>bowl.

The following addition isn't meant to be a dispute. More to
help provide some boundaries that come to mind when reading
what you just wrote here.

I had no idea about "throwing" (or even so much as the word,
itself, either.) I had started the class with a plastic
baggy of odd tools I'd been ordered to buy when I entered the
classroom and I probably only recognized the "sponge" in
there, and even then I had no idea what I would soon learn as
its purpose. Had I tried to guess beforehand, I would have
been almost entirely wrong.

Of course I now have a more refined understanding and a
better sense of my own lacks and skills.

So I suppose it depends on what you mean by "some." I would
probably say I had a vanishingly small but not quite absolute
zero value. It still amounted to zero, for all practical
purposes.

You might quibble here. But my point is that I'd like to
create something that assumes about the same level from any
one placing themselves in my hands as the pottery class
teacher expected from me. No ability to even _recognize_ the
tools, let alone know how they are properly applied.

>My point is for teaching a computer course the only
>thing most new students know is the relationship between user
>interface and behavior. Build on that reference with a
>simple metaphor.

Sincere thanks for your thoughts.

Jon