To LUGNET HomepageTo LUGNET News HomepageTo LUGNET Guide Homepage
 Help on Searching
 
Post new message to lugnet.roboticsOpen lugnet.robotics in your NNTP NewsreaderTo LUGNET News Traffic PageSign In (Members)
 Robotics / 23745
23744  |  23746
Subject: 
Re: Robolab as a tool for teaching programming
Newsgroups: 
lugnet.robotics
Date: 
Fri, 18 Mar 2005 15:32:26 GMT
Viewed: 
951 times
  
On Thu, March 17, 2005 5:27 pm, John Hansen said:
In lugnet.robotics, Steve Hassenplug wrote:
wow.  I guess I don't have a reply to that.  My wife (not a programmer) has
used Robolab.  She said it was like making a flowchart.

The text where I said why Robolab requires people with previously acquired
flowcharting skills to unlearn some of their skills and break standard
flowcharting rules was deleted.


Sorry for my aggressive use of editing.  I assumed anyone still reading this thread
has either read previous posts, or can go back and look at what was posted, if they
do not follow the text.  I didn't think my editing altered the meaning of the
statements.


Flowcharting rules require that there be only one type of icon used to represent
a decision and that that icon should have a different shape from the type of
icon used to represent a normal process step.  Flowcharting rules require that
all lines show the direction of process flow using arrows.  If the flow of logic
loops back (or forward) then flowcharting rules require that there be a line
showing the flow of logic with an arrow showing the direction and connecting the
point in the flow where a decision causes the looping to occur to the point in
the flow of logic where the process begins again.

I could enumerate many more points of departure between the flowcharting skills
a person would learn outside the Robolab world and the sort of skills a person
learning Robolab would develop.  If anyone reading this believes I am wrong
about these specific rule differences please point out where, exactly, I have
made my mistakes.  Does what is done in Robolab actually follow all the standard
flowcharting rules contrary to my assertions?  If Robolab does break those rules
as I have asserted does that rule breakage benefit the child learning to program
or does it teach them skills they may need to unlearn (or has it no positive or
negative effect whatsoever)?


It appears I didn't explain myself well when I said "Programming with Robolab is
much like creating a flow-chart".  Sorry.  I was NOT trying to say programming with
Robolab is exactly like creating a flowchart.  There are several differences.

Flowcharting uses different shapes with text to represent different functions;
Robolab uses the same shape, but different pictures inside the shape.

Flowcharting uses lines with arrows to connect shapes; Robolab just uses lines, and
users must know which direction to 'flow'

Flowcharting uses lines with arrows to indicate when and where a user must jump in
the flow; Robolab uses matching colored arrows.

Flowcharting uses ovals with text for starting & stoping of the flow;  Robolab uses
start and stop lights for starting and stoping of the flow

Flowcharts usually go top to bottom; Robolab usually goes left to right

And, I suspect there are other differences.

Personally, I don't find any of these to be a big difference that must be unlearned
when switching from one to the other.  But, I can accept that others do.



I assume you're suggesting Robolab has no flow of logic, decision making, or
procedural steps.  I don't agree.  But I have no way to support my opinion.

I clearly did not say or anywhere suggest such a thing.  I said that Robolab
breaks flowcharting rules so it is not a natural progression from the
flowcharting world to the Robolab world.  If anyone out there disagrees with my
assertions please argue against them - not against things I have never even
thought let alone posted in messages here.  If anyone out there believes that I
am right about Robolab breaking several standard flowcharting rules but that I
am nit-picking and that such rule breakage is inconsequential then say as much.

I seem to have misunderstood what you said here:

--(previous post)
I don't think pre-existing flowcharting skills will benefit a Robolab newcomer
because the only substantial commonality is the drawing of lines between boxes.
In flowcharting, however, these lines are always directional and the flow can be
(and usually is) in any direction.  The rules of flowcharting are consistently
broken in Robolab.  Anyone interested can consult Google for information about
good flowcharting skills and compare that information to the images of many
sample Robolab programs on the official Robolab website to see where the two
bodies of knowledge diverge in non-trivial ways.  In other words, to learn
Robolab coming from a standard flowcharting world you will have to forget much
of what you know and do things that were formerly forbidden in order to write
nearly all non-trivial Robolab programs.

On the other hand, pre-existing flowcharting skills will benefit an NQC newcomer
in exactly the same way that they will benefit any person learning a traditional
programming language.  The flow of logic, decision making, and procedural steps
that would be familiar to a person experienced with flowcharting will translate
directly to programming in traditional text-based languages such as NQC.  And
they can use their skills exactly as they learned them to design, code, and test
their NQC programs.
--(end previous post)

Looking at this:

I don't think pre-existing flowcharting skills will benefit a Robolab newcomer • ...
On the other hand, ... The flow of logic, decision making, and procedural steps
that would be familiar to a person experienced with flowcharting will translate
directly to programming in traditional text-based languages such as NQC.

I thought you were suggesting

"On the other hand ... The flow of logic, decision making, and procedural steps that
would be familiar to a person experienced with flowcharting will [not] translate
directly to programming in [robolab]."

I hope you understand how I was mistaken.



Does anyone out there believe that requiring or encouraging a child to use
"magic numbers" all over his programs is a good thing?

I'm not totally sure what you mean by "magic numbers".  Previously, you spoke of
using a magic number in Robolab's loop structure.  In that case, this line has a
"magic number" of 5:

|   for(i=0;i<5; i++)

The 5 is a parameter of the for loop.  I think the numbers you're talking about are
just parameters, and they are required in all programs.


NQC offers NO advantage to teams.

I should clarify this.  I intended to say "NQC offers NO advantage to OUR team."
That may have been more obvious in the original context.


I also meant to ask how you would write this in Robolab:

| int x[10];  // global to all tasks
| int* y = &x; // pointer to global variable
|
| task main()
| {
|   int i;  // task local
|   int j;  // ditto
|
|   for(i=0;i<5; i++)
|   {
|     *y = i+1; // indirect global variable access
|     y++;
|     for(j=0;j<4; j++)
|     {
|       PlayTone(x[i]*100+j*10, 50); // arrays & temporary variables
|       Wait(100);
|     }
|   }
| }

I'm not totally sure what you're trying to do here, so I'm not sure I could create
the functional equivalent in Robolab.  I am sure *I* couldn't create the byte-code
equivalent using Robolab, and I assume from previous posts that you're not just
looking for something that functions the same, but produces the exact same
byte-code.

It shouldn't be a shock if Robolab produces different bytecode than NQC or
Mindscript.  Few compilers produce the exact same output.  I'd be willing to bet
most of the kids in FLL don't even know what byte-code is.  They don't need to.
Some kids DO want to know.  I encourage them to learn.

I did teach NQC to one of the smartest kids that's ever been on my team.  I must
have done a bad job, because now he uses Robolab on his Mac.

John, if you really want help learning Robolab, I'll be glad to do anything I can to
help you.  But, I've seen your work.  I doubt you need my help.  It appears (to me)
you're more interested in pointing out what can not be done in Robolab, than
learning what can.  If I've misunderstood your intent, I'm sorry.

Steve



1 Message in This Thread:

Entire Thread on One Page:
Nested:  All | Brief | Compact | Dots
Linear:  All | Brief | Compact
    

Custom Search

©2005 LUGNET. All rights reserved. - hosted by steinbruch.info GbR