Searching \ for '[OT] Programming for kids...' in subject line. ()
Make payments with PayPal - it's fast, free and secure! Help us get a faster server
FAQ page: www.piclist.com/techref/microchip/devprogs.htm?key=programming
Search entire site for: 'Programming for kids...'.

Exact match. Not showing close matches.
PICList Thread
'[OT] Programming for kids...'
2004\12\17@000839 by William Chops Westfield

face picon face
So what does one use for teaching basic programming to kids these days.
(pre-algebraic 5th graders, to be specific.)  I haven't heard anything
about LOGO in a long time, and Pascal seems a bit dated and uncommon.
Java?  Are there any good java books and/or environments aimed at kids
this age?

BillW
____________________________________________

2004\12\17@002924 by David P Harris

picon face
William Chops Westfield wrote:

> So what does one use for teaching basic programming to kids these days.
> (pre-algebraic 5th graders, to be specific.)  I haven't heard anything
> about LOGO in a long time, and Pascal seems a bit dated and uncommon.
> Java?  Are there any good java books and/or environments aimed at kids
> this age?
>
> BillW
> ______________________________________________

2004\12\17@030920 by Ben Hencke

picon face
As ugly, malformed, and abused as basic is, I think it is the best
language to teach to 5th graders.

Java, smalltalk or any OO language is probably not the best place to
start. The concepts that are required to make good OO programming is
too complex and are in addition to the basic coding of the methods
themselves. I think even C & derivatives are too complex in syntax,
kids get buggy eyed with all the curly braces really easily.

I have a 10 year old, and he seemed to pick up basic but I think
anything more complex would be too tough especially to start with. I
imagine teaching a room full of kids would be much more difficult.

You gota remember that basic programming is still going to have a lot
of concepts that are totally new to them (at least most of them).

- Ben
____________________________________________

2004\12\17@034620 by Wouter van Ooijen

face picon face
> As ugly, malformed, and abused as basic is, I think it is the best
> language to teach to 5th graders.

I very much doubt that you should teach programming to that level, but
if I had to I would choose (or at least start with) a simple subset (no
arrays, no procedures/functions, just one iteration construct). Now it
does not matter much which language you choose, basic, pascal, or maybe
even C. The compiler implementation (especially the accuracy of the
error messages) will be much more important.

Wouter van Ooijen

-- -------------------------------------------
Van Ooijen Technische Informatica: http://www.voti.nl
consultancy, development, PICmicro products
docent Hogeschool van Utrecht: http://www.voti.nl/hvu


____________________________________________

2004\12\17@035600 by Shawn Tan Ser Ngiap

flavicon
face
part 1 1542 bytes content-type:multipart/signed; (decoded 7bit)

--nextPart1171147.BWW5NH8ivx
Content-Type: text/plain;
 charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

On Friday 17 December 2004 05:08, William Chops Westfield wrote:
> So what does one use for teaching basic programming to kids these days.
> (pre-algebraic 5th graders, to be specific.)  I haven't heard anything
> about LOGO in a long time, and Pascal seems a bit dated and uncommon.

I would just skip LOGO.. it doesn't teach you anything that BASIC can't... =
I=20
would recommend doing some BASIC and later PASCAL... Oh, PASCAL is far from=
=20
dead... hehe... Borland Delphi is currently at v10 I think... You can even=
=20
get the FreePascal compiler... That one can even compile code for 68K, PPC,=
=20
ARM and others... But then, I've always been partial to Pascal.. It's a=20
beautiful language (if a language could be beautiful)...

I don't think that there are many books of this sort... I would suggest tha=
t=20
you just teach the basics... no subroutines or such... just the basic jump=
=20
here and there, do some loops... get some input and output... and then, lea=
ve=20
the rest to the child...

=2D-=20
with metta,
Shawn Tan


--nextPart1171147.BWW5NH8ivx
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.6 (GNU/Linux)

iD8DBQBBwqAlUgUYbQRKphMRAioXAKCCn6OtZY0GXjAvavY9RDw+pPkJtwCggrfO
t99VTq5HFkczsQEcCr3dDCA=
=eS5u
-----END PGP SIGNATURE-----

--nextPart1171147.BWW5NH8ivx--


part 2 79 bytes content-type:text/plain; charset="us-ascii"
(decoded 7bit)

____________________________________________

2004\12\17@042353 by Randy Glenn

picon face
Java for kids sort of has "bas experience" written all over it. No
need to jump in head-first to Object Oriented stuff when control
structures are probably a new concept.

You might take a look at Python - free, cross platform, and the syntax
makes a great deal of sense (to me, at least). Plus, it forces them to
indent their code. The number of assignments - 4th year University! -
that I've helped people on where EVERY LINE is left-justified...

Python's interactive mode might also be helpful - type in a line, see
the result. Instant gratification.

On Thu, 16 Dec 2004 21:08:29 -0800, William Chops Westfield
<spam_OUTwestfwTakeThisOuTspammac.com> wrote:
> So what does one use for teaching basic programming to kids these days.
> (pre-algebraic 5th graders, to be specific.)  I haven't heard anything
> about LOGO in a long time, and Pascal seems a bit dated and uncommon.
> Java?  Are there any good java books and/or environments aimed at kids
> this age?
>
> BillW
> ______________________________________________

2004\12\17@054532 by David P Harris

picon face
Ben Hencke wrote:

>As ugly, malformed, and abused as basic is, I think it is the best
>language to teach to 5th graders.
>
>Java, smalltalk or any OO language is probably not the best place to
>start. The concepts that are required to make good OO programming is
>too complex and are in addition to the basic coding of the methods
>themselves. I think even C & derivatives are too complex in syntax,
>kids get buggy eyed with all the curly braces really easily.
>
>I have a 10 year old, and he seemed to pick up basic but I think
>anything more complex would be too tough especially to start with. I
>imagine teaching a room full of kids would be much more difficult.
>
>You gota remember that basic programming is still going to have a lot
>of concepts that are totally new to them (at least most of them).
>
>- Ben
>_____________________________________________

2004\12\17@060349 by Russell McMahon

face
flavicon
face
Shawn Tan

(I'll send this onlist as well as a guide to others).

Did you know that about half the PICList members do not see your message in
the body of the email but have to open an attachment to see it?
Many don't bother doing so, so your messages don't get read by them.

5 out of the 8 messages you sent to list this month had this problem. It is
caused by adding a PGP signature to your messages. When you don't add them
there is no problem. AFAIK most people using Outlook Express and some using
Outlook have this problem with your messages.

Another list member had this problem recently, which is how i know about the
cause and approximate statistics.
All people see who have this problem is

2004\12\17@072114 by Stef Mientki

flavicon
face

{Quote hidden}

I just had a look at Squak,
because I'm always on the hunt for environements that can be handled by
non-technician (including children).
Is  Squak really simple ??
NO.
Yes, maybe for people who can think analytical and in hierarchiecal
structures.
But most of the non-technician cann't, and children still have to learn
that.
For children, it's just trial and error, and although they will have fun
(having control over something (or someone) seems to be fun always),
I doubt if the learn anything from it.

The only really simple thing I found in years was RIS (Robot Invention
System) from Lego.
This is a real event-driven program environement, that can be handeld by
kids from the age of 8 or so.

I've seen a few other programs, cann't remember their names, but
something like "MindMapper" ?
that allow non-technical people to organize information and generate
docs from it.

So if anyone really knows a simple programming environement,
I would love to hear it.

Stef Mientki



>
____________________________________________

2004\12\17@080748 by Russell McMahon

face
flavicon
face
> So if anyone really knows a simple programming environement,
> I would love to hear it.

If I were wanting a general purpose language for relatively young children
I'd have a very close look at traditional BASIC.
Using a small subset of instructions I suspect that you could teach a bright
7 year old to program. How old are the children to be.

The "trouble" with "real" languages is the complexity required to make them
simple. Strong typing, predeclaration of variables etc.

BASIC can pretty much survive on LET (implied usually), GOTO, IF-THEN-ELSE
(or even just IF THEN, ) plus some I/O and arithmetic/operators. Line and
area drawing commands and colour commands are optional and desirable.
(FOR-NEXT and WHILE DO type constructs may be added if desired but IF THEN
plus LET handles most things.

HOWEVER

If you don't want a general purpose language and want to introduce
programming concepts then the Battling Robots type games may do well.
Commands are provided to set direction, speed, shields and firing. Robots
are created and then tested against each other. I have seen versions with no
true conditional looping structures but I consider them too limited. Lots of
fun.



       Russell McMahon



--
No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.296 / Virus Database: 265.5.4 - Release Date: 15/12/2004

____________________________________________

2004\12\17@083405 by Ian Smith-Heisters

flavicon
face
I would start with something that the students can see tangible results
of immediately. SuperCollider is heavily based on SmallTalk, so it has
all the meant-for-teaching OO goodness, but then you hit a key and sound
comes out. Pure Data might also be good, it's a graphical MUSIC V
language, which would help them visualize the program flow, plus you get
audio results immediately. But Pd might not be as communicable to other
languages, as they advance.

On the other hand a scripting language like SH (or maybe Perl or Python)
might be a good foot in the door, where you can teach basic concepts,
without having to gloss over more complex ones for the sake of simplicity.

I guess the direction I'm headed in with all this is that a compiled
language will just add a layer of complexity, which is the last thing
you need. And BASIC is an outdated morass that should be avoided at all
costs. Bringing up children on BASIC is like bringing up children on
crack. If you just sort of introduced them to the UNIX shell they would
get some useful skills and an introduction to a meta-language that would
be very helpful as they move on, but it's not really a programming
language, so maybe no.

Cheers,
Ian

William Chops Westfield wrote:
> So what does one use for teaching basic programming to kids these days.
> (pre-algebraic 5th graders, to be specific.)  I haven't heard anything
> about LOGO in a long time, and Pascal seems a bit dated and uncommon.
> Java?  Are there any good java books and/or environments aimed at kids
> this age?
>
> BillW
> ______________________________________________

2004\12\17@084842 by VICTORF57

picon face
try here
it is free and then you can move up to liberty basic.
http://www.justbasic.com/
regards
victor
{Quote hidden}

> ______________________________________________

2004\12\17@101120 by Morgan Olsson

flavicon
face
I think programming for most pupils need to be made interesting in more ways than the programming language itself, it need to accomplish something, even with small effort.

The tools have to be clean, not complex, easy to manouver
I seem to always have much more problem with the tools than the language itself...
The best beginner system i have seen was the old home computers like Sinclair that was my first.
Just power on, enter your program, press RUN.

Target?  It is always more fun for the pupils if their program can really DO something.  I had a basic computer class as high scool level, and part of the class suddenly went of programming in StarBasic more than I intended, but of course I let them go and learn that.  So one idea is to let your class program "macro programs" in OpenOffice.  For both beginners and experienced, it is quite fun to see your program manipulate your text document when you press a button, and that may be an incentive to do more advanced things.  Also it runs on several operating system and is freely downloadable also to their home computer.  (and does not cost school anything)  Also they can do lot of other school work on OOo; text document, drawing, presentation, spreadsheet, math - and export to pdf, flash, html, and inport/export Microsoft proprietary formats.
 http://www.openoffice.org http://www.ooomacros.org/

For a completely different programming, you may consider the many small PLC:s where you draw the schematic on PC graphically, simulate on the PC, and download to a small controller.  They can then control lamps, motors, or experiment in physics class.  I would recommend Mistubishi Alpha 2, Crouzet Millenium II+, or Siemens LEGO.  Google.

/Morgan
--
Morgan Olsson, Kivik, Sweden

____________________________________________

2004\12\17@101548 by Herbert Graf

flavicon
face
On Fri, 2004-12-17 at 13:21 +0100, Stef Mientki wrote:
> So if anyone really knows a simple programming environement,
> I would love to hear it.

Don't know about environment, but I was writing basic in grade 3 and
loved it (good old c64...). I'd say Basic is probably your safest bet
for 5th graders, it's pretty linear in operation, the words "make sense"
and there are TONS of examples out there. TTYL


-----------------------------
Herbert's PIC Stuff:
http://repatch.dyndns.org:8383/pic_stuff/

____________________________________________

2004\12\17@102955 by Mcgee, Mark

flavicon
face
I owe my entire career (software engineer) to the C64...Started with BASIC,
and then moved on to 6510 assembler.

> {Original Message removed}

2004\12\17@104748 by M. Adam Davis

flavicon
face
You should consider talking to a few teachers and find out what skills
the kids are expected to have by the time they enter 5th grade, and what
is being taught at this level.

A reason basic is such a strong contender at this age is that following
instructions carefully, exactly, and in order is constantly taught and
revisited throughout elementary school.  Further it has very low
requirements for typesetting - no braces, special indentation, etc.  
Even the control statements make sense in english.

The other reason is that it has instant gratification.  Press a button
or two and it runs the program, pausing when done.  Only logo does this
better, with a native graphical output where you can see the results of
your 'run'.  Using an environment that requires more than two steps to
run a program is going to be a disincentive.

I'm certian that simplified Java, C, Python could be taught at this
level, but you need to discuss skills and teaching topics with a
knowledgabe instructor so you can find common ground.  Object oriented
and event triggered programming is not overly intellectual, but you need
to find skills the kids already have that can be applied so they
understand quickly what an object is, methods and data, and
inheritance.  "The grocerystore object has a shopping cart that you can
put things into and out of, and a checkout method that returns the total
value."  Even when simplified it may take some serious thought on your
part to make it click for them.

Strongly typed languages are a hinderance - they shouldn't need to know
if a variable is supposed to hold a number of a letter, it should be
whatever type of data they assign to it.  It becomes confusing when they
have to remember that there are even 2-3 different types of variables
and you can't mix them arbitrarily.

Likewise they will constantly be running into {}; problems and == vs =
problems in most 'modern' languages.

But it really depends on what you're trying to teach them, and what they
already know.

-Adam

William Chops Westfield wrote:

> So what does one use for teaching basic programming to kids these days.
> (pre-algebraic 5th graders, to be specific.)  I haven't heard anything
> about LOGO in a long time, and Pascal seems a bit dated and uncommon.
> Java?  Are there any good java books and/or environments aimed at kids
> this age?
>
> BillW
> ______________________________________________

2004\12\17@113503 by Morgan Olsson

flavicon
face
OK, here another plug

http://gambas.sourceforge.net/

Free, capeable but not fast, Linux

/Morgan

.....victorf57KILLspamspam.....cox.net 14:48 2004-12-17:
>try here
>it is free and then you can move up to liberty basic.
>http://www.justbasic.com/

--
Morgan Olsson, Kivik, Sweden

____________________________________________

2004\12\17@115757 by Bob Ammerman

picon face
My 14 y.o. son programs in the following environments:

1) TI Basic on his calculator.

2) Using GameMaker - a development environment using an object oriented
model and C-like syntax to design computer games.

3) Visual Basic.

4) Some neural network thing(!) he picked up off the web and has been
playing with.

5) A robot war sort of program where you program your robots in a language
called 'small' (another C-like language) and they battle (in 3-D!) with
robots driven by other people's programs).

I consider him a better developer than many of the professionals I know (he
thinks a problem through, factors it reasonably, etc.) . If he can be
motivated by something other than gaming I'll get him doing some PIC stuff
(MPASM) and C++ (or C#??).

Bob Ammerman
RAm Systems


{Original Message removed}

2004\12\17@124541 by Bob Ammerman

picon face
Oh yeah...

And LEGO Mindstorms using both the (dumb) original software that came with
it, and also the  NQC (not quite C) development environment.

Bob Ammerman
RAm Systems

{Original Message removed}

2004\12\17@125032 by Ben Hencke

picon face
On Fri, 17 Dec 2004 02:41:29 -0800, David P Harris <EraseMEdpharrisspam_OUTspamTakeThisOuTtelus.net> wrote:

> >
> Ben-
> I hate to differ, but whereas you and I were trained with

I love to differ! :-) If we did not have differing opinions I would
not get to hear about this kind stuff.

> Basic/Fortran/C etc, Smalltalk and its OO basis is actually more
> friendly towards kids.  They learn to send messages to objects to get
> them to do their bidding.  There is a good video about this at
> http://www.squeakland.org/sqmedia/sqmediahome.html (clips at least)
> which won 4 Emmys.
>
> David
>


I agree that OO has concepts that are simple to understand and
important to real programming problems, but they do add complexity esp
for 5th graders. With any OO you will still have to learn stuff like
variables, conditions, loops, etc the messaging, encapsulation, and
inheritance, factories, etc just adds layers that might take away from
the significant task of learning the basics.

I don't suggest that they stay on basic for too long, after the basics
(har har) are mastered, and more syntactive OO language will be easier
to understand and definitely more useful.

I think some of the decision needs to be based on how much time is
available to teach the kids. It is important to get to a point where
the kids understand what is going on so they can start experimenting
and making their own programs as fast as possible, this is the only
way to keep their interest. You don't want to turn out a new
generation of people that can only modify an existing program, they
should be able to write their own from scratch too.

A more mature audience could probably sit through a few weeks of intro
and theory, but I think 5th graders will lose interest quickly and
when that happens it turns into a memorization task instead of
discovery and invention.

- Ben
____________________________________________

2004\12\17@130009 by William Chops Westfield

face picon face

On Dec 17, 2004, at 8:56 AM, Bob Ammerman wrote:

> My 14 y.o. son programs in the following environments:
>
> 2) Using GameMaker - a development environment using an object
> oriented model and C-like syntax to design computer games.

"Gamemaker" sounds interesting.  Is that
   http://www.cs.uu.nl/people/markov/gmaker/ ?

I'm not overly picky about (for instances) basic's "improper teaching
of fundamental concepts (gotos considered evil!)", but I was hoping for
something that would create programs more like the programs kids today
actually use.  Being constrained to a TTY-like I/O system would not be
good.

I'll have to look at that smalltalk environment;   I bounced off
smalltalk
circa 1985 when I noticed how inefficiently it used the then-SOTA sun
workstation,
but I guess a modern PC might have enough horsepower to change things
:-)

And thanks to whoever mentioned open office macros; A neat idea, again
putting the programming into the more "typical" environment.  She's
already
fiddling with raw HTML, Office macros that make that easier might be
right
up her alley...

BillW
____________________________________________

2004\12\17@145751 by Stef Mientki

flavicon
face


Bob Ammerman wrote:

> Oh yeah...
>
> And LEGO Mindstorms using both the (dumb)

I maybe dumb, but it's that's only software I've seen,
that's really easy to start for kids !!
I know a number of 14 year old guys, still writing their programs in it ;-)

Stef Mientki

>
____________________________________________

2004\12\17@150221 by Stef Mientki

flavicon
face


William Chops Westfield wrote:

{Quote hidden}

Interesting link !
This is the guy who wrote Bricxcc first (now it's maintained by John
Hansen).
Brixcc is the most used IDE for almost all available languages for the
Lego RCX.
So maybe we should look what Fred Martin (the developper of the
RIS-software) right now ?
I assume there aren't many French guys around in this newsgroup,
because they must have a lot a good software/software development tools
for kids (as their governement is stimulating it actively)

Stef Mientki

>
____________________________________________

2004\12\17@151037 by Stef Mientki

flavicon
face

>inport/export Microsoft proprietary formats.
>  http://www.openoffice.org http://www.ooomacros.org/
>
>  
>
[OT] thanks very much for the last link !!!
I've been searching for this and asking around in about 10 newsgroups
for more then half year,
"Openoffice automation with Delphi" !!

Stef Mientki

>  
>
____________________________________________

2004\12\17@162353 by David P Harris

picon face
Ben Hencke wrote:

{Quote hidden}

>_____________________________________________

2004\12\17@164628 by Bob Ammerman

picon face

----- Original Message -----
From: "Stef Mientki" <@spam@s.mientkiKILLspamspammailbox.kun.nl>
To: "Microcontroller discussion list - Public." <KILLspampiclistKILLspamspammit.edu>
Sent: Friday, December 17, 2004 3:02 PM
Subject: Re: [OT] Programming for kids...


{Quote hidden}

Yes. My son has a lot of fun with it. The latest version has some basic
support for 3D, so now he is dealing with concepts the coordinate
transformations, viewpoints, texture mapping and the like. Pretty cool!

Bob Ammerman


____________________________________________

2004\12\17@164907 by Peter L. Peres

picon face

On Thu, 16 Dec 2004, William Chops Westfield wrote:

> So what does one use for teaching basic programming to kids these days.
> (pre-algebraic 5th graders, to be specific.)  I haven't heard anything
> about LOGO in a long time, and Pascal seems a bit dated and uncommon.
> Java?  Are there any good java books and/or environments aimed at kids
> this age?

Logo is alive and well, and available on my platforms of choice, for
free, and in several flavors:

<http://klogoturtle.sourceforge.net/> - KDE/Linux
<http://education.mit.edu/starlogo/> - Windows, Mac, Unix, Other ...
<http://www.cs.berkeley.edu/~bh> - ucb logo
<http://www.cs.berkeley.edu/~bh/logo-sample.html> - sample program for
above (hey, it's actually prologish ;-)
<http://edu.kde.org/kturtle/> - another kde logo for Linux

<http://vpython.org/> - 3D logo, they say '3D Programming for Ordinary
Mortals' - cool graphics - also in Pythonish dialect but very powerful
<http://vpython.org/vpythonprog.htm> - sample program

<http://ianbicking.org/docs/PyLogo_lightning.html> - in Python i.e.
cross platform, but not really standard logo

A short write-up about LOGO with many links, including to a list of the
original papers at MIT (on the bottom, very interesting):

<http://c2.com/cgi/wiki?LogoLanguage>

Peter
____________________________________________

2004\12\17@183828 by Byron A Jeff

face picon face
On Fri, Dec 17, 2004 at 12:09:16AM -0800, Ben Hencke wrote:
> As ugly, malformed, and abused as basic is, I think it is the best
> language to teach to 5th graders.

Both the University professor and the programming language designer in me
are both screaming: NOOOO!!!!!!

>
> Java, smalltalk or any OO language is probably not the best place to
> start. The concepts that are required to make good OO programming is
> too complex and are in addition to the basic coding of the methods
> themselves. I think even C & derivatives are too complex in syntax,
> kids get buggy eyed with all the curly braces really easily.

The problem with pure BASIC are threefold:

1) Virtually no structure. GOTO/GOSUB are the order of the day.
2) Lack of declaration of variables.
3) No parameter passing mechanism to speak of.

BASIC will get a kid from 0 to 10 (mph/kph). But after that?

>
> I have a 10 year old, and he seemed to pick up basic but I think
> anything more complex would be too tough especially to start with. I
> imagine teaching a room full of kids would be much more difficult.
>
> You gota remember that basic programming is still going to have a lot
> of concepts that are totally new to them (at least most of them).

True. But since you get the concepts in any language, you may as well get
them in a better structure.

The most important thing to understand is that kids do better with examples
than they do with abstractions. Most programming is an abstraction. For
kids it's always better to show them something concrete, then have them
abstract the concept after they get it.

So I'm going to throw out two suggestions associated with the comments
above:

1) Python. It's simple. Clean. Structured. Has OO but you're not obligated
to use it. Enforces indentation, which is a lifesaver. Real simple to start
but robust enough to generate real applications.

2) Guido van Robot (http://gvr.sf.net) is a visual manipulation language
based on python. With it you can teach the concepts and structure of
programs while manipulating a visual world in the process. The language is
a subset of Python, so once a kid gets the hang of it, (s)he can graduate
to the real deal without too much trouble.

GVR type worlds are the best thing to use to teach programming. That's why
the LOGO turtle, Karel, GVR, and others are useful. I wrote a simple one
named MILO the monkey using the same concept. If you can get kids to
understand why you need variables, why you need selection, why you need
repetition, why you need procedures/functions, then they'll know how apply
it in any programming language forever.

Just my two cents.

BAJ (Who started with TRS-80 Model 1 basic but quickly graduated to Z80 ML)
____________________________________________

2004\12\17@200228 by Martin K

flavicon
face


>
>>Java, smalltalk or any OO language is probably not the best place to
>>start. The concepts that are required to make good OO programming is
>>too complex and are in addition to the basic coding of the methods
>>themselves. I think even C & derivatives are too complex in syntax,
>>kids get buggy eyed with all the curly braces really easily.
>
>
> The problem with pure BASIC are threefold:
>
> 1) Virtually no structure. GOTO/GOSUB are the order of the day.
> 2) Lack of declaration of variables.
> 3) No parameter passing mechanism to speak of.
>
> BASIC will get a kid from 0 to 10 (mph/kph). But after that?
>

I learned BASIC when I was in 4th grade. It probably wasn't possible for
me to understand something more complicated at least until 6th grade.
When I got into 7th grade I started to try a little C programming
because BASIC was slow (my homemade games ran really slow!)


>>You gota remember that basic programming is still going to have a lot
>>of concepts that are totally new to them (at least most of them).
>
>
> True. But since you get the concepts in any language, you may as well get
> them in a better structure.

I know that, in 4th grade, I would have had a REAL hard time with C syntax.


Martin Klingensmith
http://infoarchive.net/
____________________________________________

2004\12\17@203655 by Byron A Jeff

face picon face
On Fri, Dec 17, 2004 at 08:02:27PM -0500, Martin K wrote:
{Quote hidden}

All languages have the same basic elements. Enumerated:

1) Variables/Types
2) Computation
3) I/O
4) Selection
5) Repetition
6) Some form of encapsulation (procedures/functions, objects)

The fact of the matter is that most of these are the same. An if is an if is
and if and a while is a while is a while.

Flat out BASIC is a dirty language. The use of the GOTO/GOSUB, the lack of
local variables, and lack of parameters makes it a poor example. Unix shell
scripts are just as simple and infinitely cleaner than BASIC. As is Python.

{Quote hidden}

Who said C? I certainly didn't. Python doesn't have braces, begin/end, or
any other syntatic sugar. I like the fact that it enforces indentation.

When you are starting you want to be simple, but restrictive. That way when
you open up to another language, you use good techniques instead of poor ones.

BAJ
____________________________________________

2004\12\18@050330 by Peter L. Peres

picon face


On Fri, 17 Dec 2004, Stef Mientki wrote:

{Quote hidden}

Take a look at this:

<http://www.go2share.net/z_videogame/A_the_incredible_machine_ev-B00005KB3J.htm>

Peter
____________________________________________

2004\12\18@083154 by Richard Benfield

flavicon
face
But what wrong with teaching a structured BASIC ? just don't mention goto
and gosub.


{Quote hidden}

> ______________________________________________

2004\12\18@085636 by Byron A Jeff

face picon face
On Sat, Dec 18, 2004 at 01:32:16PM -0000, Richard Benfield wrote:
> But what wrong with teaching a structured BASIC ? just don't mention goto
> and gosub.

Nothing. But when talking about BASIC, the structured variety is rarely
what is referred to. BASIC with structure, local variables, predefined
variables and parameters, is no different than Pascal, Python, or at a
fundamental level C.

So really on boths sides of the fence BASIC loses. If you use traditional
BASIC with gotos/gosubs then you have poor form. If you use structured
basic then you have just another programming language.

BASIC brings nothing to the table except nostalgia, and all of its limitations
that got us away from it to begin with.

There are so many other languages that are so much more appropriate. Why not
examine them?

BAJ
{Quote hidden}

> >_______________________________________________

2004\12\18@104037 by Morgan Olsson

flavicon
face
Byron A Jeff 14:56 2004-12-18:
>On Sat, Dec 18, 2004 at 01:32:16PM -0000, Richard Benfield wrote:
>> But what wrong with teaching a structured BASIC ? just don't mention goto
>> and gosub.
>
>Nothing. But when talking about BASIC, the structured variety is rarely
>what is referred to. BASIC with structure, local variables, predefined
>variables and parameters, is no different than Pascal, Python, or at a
>fundamental level C.

Whatever you call it...
Anyway, with most Basic packages you can do both the linenumber and -GOTO-GOSUB style, and the structured style.

I think this is an advantage or teaching as it can be used to show the differences in programming method, and a good starting point to get pupils interested in differen tlanguages, and what they are good for.

You can give a short example
10 LET a=0
20 PRINT a
30 LET a=a+1
40 GOTO 20

And most pupils will follow.

Then discuss how many lines a normal program have, and how would the programmer remember all gotos?

Then make an example of structured program :)

/Morgan

--
Morgan Olsson, Kivik, Sweden

____________________________________________

2004\12\18@121331 by jrem

picon face
I've skipped over a few posts so I hope this isn't redundant, but I
have been trying to get my kids into programming of any type for years.
I have finally hit pay dirt with my 13 year old daughter and html, as
she took to building her own website.  I showed her some basic commands
and she went to town.  I'm running a server on my lan, my router wan is
broadband, so she doesn't have to deal with ftp, she just saves her
files over the network.  

On the other hand, our public schools teach robotics to only 'select'
kids, and it's messed up.  They only teach some fundamentals of
robotics, and have absolutely no electronic cirriculum underneath, so
the kids don't have a clue about resistors, caps, transistors, asics,
etc.  When they're in my basement the are amazed at stupid circuits I
build.  Then I hand them my "Lectron" set from when I was a kid (well,
I had to buy it on Ebay) and let them build up circuits on their own.


               
__________________________________
Do you Yahoo!?
Yahoo! Mail - now with 250MB free storage. Learn more.
http://info.mail.yahoo.com/mail_250
____________________________________________

2004\12\18@122742 by Byron A Jeff

face picon face
On Sat, Dec 18, 2004 at 04:39:55PM +0100, Morgan Olsson wrote:
- Byron A Jeff 14:56 2004-12-18:
- >On Sat, Dec 18, 2004 at 01:32:16PM -0000, Richard Benfield wrote:
- >> But what wrong with teaching a structured BASIC ? just don't mention goto
- >> and gosub.
- >
- >Nothing. But when talking about BASIC, the structured variety is rarely
- >what is referred to. BASIC with structure, local variables, predefined
- >variables and parameters, is no different than Pascal, Python, or at a
- >fundamental level C.
-
- Whatever you call it...

- Anyway, with most Basic packages you can do both the linenumber and
-GOTO-GOSUB style, and the structured style.  -

- I think this is an advantage or teaching as it can be used to show the
- differences in programming method, and a good starting point to get pupils
- interested in differen tlanguages, and what they are good for.


In the beginning you don't want to show differences in programming method.

In the beginning you want to show students the right way to do it.

People tend to latch on to whatever they see first. So teach them the
right way first.

-
- You can give a short example
- 10 LET a=0
- 20 PRINT a
- 30 LET a=a+1
- 40 GOTO 20
-
- And most pupils will follow.

I would NEVER give this example to beginning programmers. This is the type
of code that I'm railing about.

- Then discuss how many lines a normal program have, and how would the
- programmer remember all gotos?

Learning how to program is confusing enough. Don't complicate it by presenting
alternatives.


-
- Then make an example of structured program :)

I'd only do an example of a structured program. Let new students learn the
right way first, then you can explore other options.

The 4 line example above is exactly why I wouldn't teach BASIC to new
students. Of course this is an age old argument.

BAJ
____________________________________________

2004\12\18@122941 by Byron A Jeff

face picon face
On Sat, Dec 18, 2004 at 09:13:30AM -0800, jrem wrote:
> I've skipped over a few posts so I hope this isn't redundant, but I
> have been trying to get my kids into programming of any type for years.
>  I have finally hit pay dirt with my 13 year old daughter and html, as
> she took to building her own website.  I showed her some basic commands
> and she went to town.  I'm running a server on my lan, my router wan is
> broadband, so she doesn't have to deal with ftp, she just saves her
> files over the network.  

HTML isn't a programming language. Javascript is a programming language.
HTML is a markup language used to describe text.

BAJ
____________________________________________

2004\12\18@125443 by jrem

picon face

--- Byron A Jeff <RemoveMEbyronTakeThisOuTspamcc.gatech.edu> wrote:

> On Sat, Dec 18, 2004 at 09:13:30AM -0800, jrem wrote:
> > I've skipped over a few posts so I hope this isn't redundant, but I
> > have been trying to get my kids into programming of any type for
> years.
> >  I have finally hit pay dirt with my 13 year old daughter and html,
> as
> > she took to building her own website.  I showed her some basic
> commands
> > and she went to town.  I'm running a server on my lan, my router
> wan is
> > broadband, so she doesn't have to deal with ftp, she just saves her
> > files over the network.  
>
> HTML isn't a programming language. Javascript is a programming
> language.
> HTML is a markup language used to describe text.
>
> BAJ


well, IMO when it's my kids entrance to the programming world, code is
code.  "Programming" vs "markup language" is semantics.



               
__________________________________
Do you Yahoo!?
Yahoo! Mail - 250MB free storage. Do more. Manage less.
http://info.mail.yahoo.com/mail_250
____________________________________________

2004\12\18@132447 by Robert B.

flavicon
face
You might try slipping in a little PHP along with the HTML.  It's easy to
integrate, and she could get used to variables and control loops instead of
just tags.  Certainly getting them hooked on *anything* is better than
nothing.  If you've never used it, PHP is very C-ish, but without most of
the pains.  There is no need to declare variables, type-casting is done
automagically, and strings magically expand to hold whatever you put in
them.  Some people might argue that these are all bad, but I insist that it
allows the youngsters to focus on the logic and flow of the code instead of
bizarre overflow errors.  And she might like it to add counters and dynamic
content to her web page.

Robert B.

--------------------------------------------
Robert B.
email:  spamBeGonerobertbspamBeGonespamnerdulator.net
http://www.christmascheese.com


{Original Message removed}

2004\12\18@154627 by Jose Da Silva

flavicon
face
On Saturday 18 December 2004 09:13 am, jrem wrote:
> I've skipped over a few posts so I hope this isn't redundant, but I
> have been trying to get my kids into programming of any type for years.
>  I have finally hit pay dirt with my 13 year old daughter and html, as
> she took to building her own website.  I showed her some basic commands
> and she went to town.  I'm running a server on my lan, my router wan is
> broadband, so she doesn't have to deal with ftp, she just saves her
> files over the network.

A friend of mine sent me this, possibly an html idea for her to look at ;-)
http://www.fluffytails.ca/christmas.asp

> On the other hand, our public schools teach robotics to only 'select'
> kids, and it's messed up.  They only teach some fundamentals of
> robotics, and have absolutely no electronic cirriculum underneath, so
> the kids don't have a clue about resistors, caps, transistors, asics,
> etc.  When they're in my basement the are amazed at stupid circuits I
> build.  Then I hand them my "Lectron" set from when I was a kid (well,
> I had to buy it on Ebay) and let them build up circuits on their own.

I know what you mean.  I jokingly refer to a friend of mine as a catalogue
engineer since all the stuff he does comes out of product catalogues.

In terms of Byron...
I recall learning Apple BASIC and assembler in school plus flowcharting and
pseudo-code.

I still think BASIC is a fine learning language.
BASIC introduces someone to the concepts of programming without having them
get lost in the clutter of trying to setup, initialize variables, having to
deal with alien concepts such as variable rules such as static, ownership,
int/float/char/string/array/etc. At this point in time, if a student hasn't
even touched a computer, BASIC is the easiest entry point while the other
languages have too much overhead of having to hunt down bugs - which BTW
introduces students to bad habits of sitting at the computer recompiing and
recompiling to "fix" something versus having coded it correctly on paper
"away" from a computer. Going from one thing to another is fairly easy with
the GOTO while in some other languages, they had to adopt the GOTO since
there is no easy way to exit easily.
Plus if you or someone wants to code something quick-n-dirty, you either take
10 seconds coding it in BASIC or 10 minutes coding it in another language.
There's nothing more disappointing than coding your very first program that
does something extremely simply like "hello world" and having it fail
because you forgot to initialize something or other.  Hello world is a bit
too simple as an example, but as students get more sophisticated, you want
to introduce other things as well. The commands in BASIC are also obvious,
so print means print as well as the other commands.

Today, I run into "programmers" that say flowcharts are wrong then whip out
these ummmm.... interesting arts, meanwhile, their programs don't work as
well as they should. I run into programs all the time that if seen easily
via a flowchart type of attitude doesn't take care of the "what-if"s.

Today's programmers are introduced to templates and graphic interfaces
without much understanding of what lies beneath, instead of coding something
on paper first, they are sitting at the keyboard composing, and then
recomposing their programs to run.... if they got a bug... their first
solution is to go get the latest updated compiler or worse yet, instead of
making a workaround for customers, telling the customers they got to upgrade
their machines.

Byron stated this:
>>The problem with pure BASIC are threefold:
>>
>>1) Virtually no structure. GOTO/GOSUB are the order of the day.
>>2) Lack of declaration of variables.
>>3) No parameter passing mechanism to speak of.

>1) Virtually no structure. GOTO/GOSUB are the order of the day.
Flowcharting and BASIC is almost a one-to-one match.
As a student who never touched a computer, flowcharting is very graphical in
nature, very easy to follow, very easy to reconstruct. GOTO/GOSUB is as
natural in flowcharting as it is in BASIC.

Pascal and other structured languages lean more towards pseudo code, and as
anyone knows, a "picture is worth a thousand words", therefore a graphical
representation of "your first program" has way more meaning than pseudo
code.
At this point in time, reconstructing a flowchart program is as simple as
redrawing the lines to point elsewhere, or striking out stuff by the stroke
of a pencil. Pseudo code, on the other hand, takes more work to insert
something that was forgotten, or to modify it.
A student is way more likely not to re-modify a pseudo code program since
everything is knitted together into a tight bundle.... they will workaround
it, on the other hand, flowcharting, you simply draw a line to something you
forgot, insert it, draw a line to continue where you left-off, and
strike-out the old flowline.

In a classroom of perhaps 30 students, you could probably have 2 BASIC
computers to enter the program, test it run it. In a classroom teaching a
higher level language, you need more computers simply becuse you got to
bug-hunt "more".

What are we teaching students in a BASIC class?
Flowcharting. Do your planning away from the machine first, then go code it.

What are we teaching the exact same students in a non BASIC class?
Well...we're getting them into the habits of sitting at the keyboard all day
versus planning first... instead of taking 10seconds coding, then coming
back to your paper, the students are taking 10minutes hunting bugs, they are
spending way more of their allotted time at the keyboard. than necessary

>>2) Lack of declaration of variables.
For a student who never programmed before... that only makes a flowchart more
complex, therefore less likely to get remodified. At this point in time, you
want a student to be willing to strike-out things to put something better in
place. All the extra clutter on a flowchart or psuedo code means a person is
less willing to throw-out a page versus something less "weighty".

Variable declarations is a detail which is something you fill-in "after"
getting the main flow of the program right. An advanced student will see
that, and fill in the details afterwards, not during the initial planning
stages. BASIC == flowchart in this regard.

>>3) No parameter passing mechanism to speak of.

A new student has to struggle with the concept of planning their work on
paper first. That is an advanced concept for students.


>>>>BASIC will get a kid from 0 to 10 (mph/kph). But after that?

When a student gets to 10mph/kph, they have gotten some concepts of doing
their program on paper first.
At the "paper" stage, things can be reconfigured quickly or struck out
completely by the stroke of a pencil.
"Now" that they are walking at 10mph, it's time to introduce them to running
using Pascal, C or other structured languages.
____________________________________________

2004\12\18@155458 by William Chops Westfield

face picon face

On Dec 18, 2004, at 5:56 AM, Byron A Jeff wrote:

> BASIC with structure, local variables, predefined variables and
> parameters,
>  is no different than Pascal, Python, or at a fundamental level C.
>
Don't forget that even at college level, what is taught in introductory
programming classes is usually a subset of the language.  So you have
(had)
things like WatFor and PL/C and don't learn about named common areas or
the
"unspec" "function", I/O tends to be rather minimal, and even pointers
are
barely mentioned.  (all circa 1980, so YMMV.)

The interesting problem these days, IMHO, it to be able to have the
"introductory programming" have any visible connection at all to the
sorts of things one normally uses a computer for.  Sort of like "New
Yankee
Workshop" vs "The Woodright's Shop."  Circa 1980 college, it was pretty
rare for the student computers to be used for much other than writing
programs or a glorified calculator.  "Applications" were a bit limited
compared to today.  (microcontrollers might actually show up in this
context.  It's a lot easier to do something interesting with a tiny
board
containing a bunch of LEDs than it is to do something interesting with
that
1920x1200 color screen.  For certain definitions of "interesting.")

BillW
____________________________________________

2004\12\18@160829 by William Chops Westfield

face picon face
On Dec 18, 2004, at 9:29 AM, Byron A Jeff wrote:

>
> HTML isn't a programming language.
> HTML is a markup language used to describe text.
>
Yes, but they have a lot in common at a beginner level.
1) The concept of needing to "instruct" the computer
2) reserved keywords, odd punctuation, and obscure sytax
3) RULES that MUST BE FOLLOWED

HTML has a more proximate goal than most programming languages.  Being
able to make a cooler webpage is probably a strong motivator these days.
It is my daughter's interest in (and success with) HTML fiddling that is
leading me to suspect that she might be ready/interested in programming.

>  Javascript is a programming language.
>
Hmm.  So how does Javascript rate as a introductory programming
language?
Are there any tutorials or environments aimed at teaching javascript to
people who don't know anything about computers yet?

BillW
____________________________________________

2004\12\18@161557 by Byron A Jeff

face picon face
On Sat, Dec 18, 2004 at 09:54:42AM -0800, jrem wrote:
{Quote hidden}

But it's not simply semantics.

Simple example. Write a program that generates a table of squares from 1 to
the number input from the user. Write it using only HTML.

In bash shell script off the top of my head.

#---------------------------
echo -n "Enter the table size: "
read size
i=1
while [ $i -lt $size ] ; do
  i=$[i+1]
  echo n=$i n^2=$[i*i]
done
#-------- End of script ------

Now exactly how do you accomplish a task like this in HTML.

Once again: HTML isn't a programming language.

BAJ
____________________________________________

2004\12\18@161802 by Byron A Jeff

face picon face
On Sat, Dec 18, 2004 at 01:24:20PM -0500, Robert B. wrote:
> You might try slipping in a little PHP along with the HTML.

Or javascript.

{Quote hidden}

That's a possibility.

BAJ
____________________________________________

2004\12\18@162248 by Byron A Jeff

face picon face
On Sat, Dec 18, 2004 at 01:08:24PM -0800, William Chops Westfield wrote:
{Quote hidden}

Probably not too good. It's event driven, and since it's usually interspersed
among the HTML tags it reads rather disjoint.

> Are there any tutorials or environments aimed at teaching javascript to
> people who don't know anything about computers yet?

Not sure. But it could bring some advantages due to the fact that virtually
everyone has the required interpreter and it fits into a very visual
manipulative interface.

It certainly could be worth considering.

BAJ
____________________________________________

2004\12\18@170604 by Byron A Jeff

face picon face
On Sat, Dec 18, 2004 at 12:48:00PM -0800, Jose Da Silva wrote:
> On Saturday 18 December 2004 09:13 am, jrem wrote:

[snip]
{Quote hidden}

I am steadfastly going to disagree. Each and every item you describe here is
trivial to do in Python, and doesn't require the GOTO.

Python is also pseudo interpreted and doesn't require compilation. It has
an immediate mode so you can try stuff on the command line. But it enforces
the critial concepts about structure and indentation that you want to teach
early.

Before you critique take a 1/2 hour and try it out. Here is a crash course
that will give you a very quick overview:

http://www.hetland.org/python/instant-python.php


You can download python here:

http://www.python.org/download

Try it out, then compare to BASIC.

Just a quick example of your hello world:

---------------------------------
~$ python
Python 2.3.4 (#2, Aug 18 2004, 13:18:19)
[GCC 3.3.4 (Debian 1:3.3.4-9)] on linux2
Type "help", "copyright", "credits" or "license" for more information.

>>> print "Hello world."
Hello world.

>>>
:~$
---------------------------------

How much simpler than that can you get?

>
> Today, I run into "programmers" that say flowcharts are wrong then whip out
> these ummmm.... interesting arts, meanwhile, their programs don't work as
> well as they should. I run into programs all the time that if seen easily
> via a flowchart type of attitude doesn't take care of the "what-if"s.

Flowcharts, structure charts, or pseudo code are all fine for design.

That's not what we're talking about here. Programming language is an
implementation issue, not design.

All I'm saying that in the years since we've all learned BASIC, there are
better tools for the job.

>
> Today's programmers are introduced to templates and graphic interfaces
> without much understanding of what lies beneath, instead of coding something
> on paper first, they are sitting at the keyboard composing, and then
> recomposing their programs to run.... if they got a bug... their first
> solution is to go get the latest updated compiler or worse yet, instead of
> making a workaround for customers, telling the customers they got to upgrade
> their machines.

Again that's a design issue. That's one of the reasons I don't care for
visual languages such as VB because of the disjoint segments that are created
without a coherent design theme.

{Quote hidden}

So are flowcharting and C, and flowcharting and Pascal. The difference is that
the automatic control structures improves the safety of applications over Basic because it doesn't give the programmer the opportunity to screw it up.

{Quote hidden}

OK then. Why not have have a flowchart compiler? I know they exist because
I worked on a project more than 15 years ago auto generating code from
flowcharts.

We all use assemblers and compilers to do the grunt work of translating
ideas into usable code. I have no problem with a direct translation of
flowcharts as a starting point for this.

{Quote hidden}

These two are orthogonal activities. You can code BASIC at the keyboard. You
can design applications in other languages away from the keyboard. Personally
I like to teach problem solving skills without dealing with computers at all.

But once I'm ready for students to get to programming, then I want a language
that supports and enforces good programming constructs.

And BASIC ain't it.

>
> >>2) Lack of declaration of variables.
> For a student who never programmed before... that only makes a flowchart more
> complex, therefore less likely to get remodified. At this point in time, you
> want a student to be willing to strike-out things to put something better in
> place. All the extra clutter on a flowchart or psuedo code means a person is
> less willing to throw-out a page versus something less "weighty".

You've never had a student who struggled with a program that didn't work
simply because they misspelled a variable name have you?

>
> Variable declarations is a detail which is something you fill-in "after"
> getting the main flow of the program right. An advanced student will see
> that, and fill in the details afterwards, not during the initial planning
> stages. BASIC == flowchart in this regard.

You've never had a student who struggled with a program that didn't work
simply because they misspelled a variable name have you?

Yes. I repeated it.


>
> >>3) No parameter passing mechanism to speak of.
>
> A new student has to struggle with the concept of planning their work on
> paper first. That is an advanced concept for students.

But when they get there, and as I always point out they always get there,
it makes for a big difference.

>
>
> >>>>BASIC will get a kid from 0 to 10 (mph/kph). But after that?
>
> When a student gets to 10mph/kph, they have gotten some concepts of doing
> their program on paper first.

You can do any program, in any language, on paper first. BASIC has no
corner on that market.

> At the "paper" stage, things can be reconfigured quickly or struck out
> completely by the stroke of a pencil.
> "Now" that they are walking at 10mph, it's time to introduce them to running
> using Pascal, C or other structured languages.

Frankly that's backwards. You add a lot of complexity to the process by adding
what is essentially a third language to the mix.

You spent a whole message talking about process. I'm fine with the process.

I'm talking about implementation languages. i still contend that as a
beginning programm langauage, BASIC brings nothing to the table except for
the nostalgia of the intructors that teach it.

BAJ
____________________________________________

2004\12\18@174906 by jrem

picon face
great point, I run PHP on the same machine all the time so it won't be
an issue to get her using some simple routines.


--- "Robert B." <RemoveMErobertbspamTakeThisOuTnerdulator.net> wrote:

{Quote hidden}

> {Original Message removed}

2004\12\18@185828 by Ian Smith-Heisters

flavicon
face
From there you can move into Perl Mason. http://www.masonhq.com/ which
provides a very (very) powerful means of dynamic content creation. PHP
is based on Perl's syntax, so it will be easy to learn when she's ready.

-Ian

jrem wrote:
{Quote hidden}

____________________________________________

2004\12\18@211131 by Jose Da Silva

flavicon
face
On Saturday 18 December 2004 02:06 pm, Byron A Jeff wrote:
{Quote hidden}

Fair enough, it's your opinion now, but odds are you are a very good programmer for being on this forumn, and odds are you "first" learned programming in BASIC and flowcharting, not psuedo code and not a structured language.

> Each and every item you describe here
> is trivial to do in Python, and doesn't require the GOTO.

GOTO is a very english common sense word and that is how people think.
Likewise for all the other very english type words within BASIC.
Before people learn to program, they think in "flowchart" without even realizing it, people don't think in indented/structured thoughts like say in psuedo code, or Pascal, C or other structured languages.
Flowcharting is simply putting what they got in their head on paper, and BASIC is about as english to flowcharting as what you got on paper.
You get a class full of students who've never programmed in their life, and you can get them thinking "flowcharting" on the first day's homework assignment. they are quickly scratching out bad routines and substituting better procedures using this quick easy flowcharting method. you're not going to have that happen in another teaching method because they will busy trying to see the forest despite having all the trees in front of them.
for example:
1st assignment, please describe how to start a car. Your START is standing inside your house, your END is when the car has the engine running.

Every kid is thinking GOTO when they draw their flowcharts.
When it comes to programming, they get a bunch of bonuses thrown in their favour when coding their first program... GO do this GO do that....

I don't recall START, but I do recall END in Basic, which is quite different from End in Pascal... did you mean end or end?

> Python is also pseudo interpreted and doesn't require compilation. It has
> an immediate mode so you can try stuff on the command line. But it
> enforces the critial concepts about structure and indentation that you
> want to teach early.

Can't see the forest for the trees. You're trying to teach kids to plan on paper, now you start throwing these foreign words at them like compile, indentation, structure.

2nd assignment, now more complex, describe your day at school, bonus points if you can use the GOSUB

flowchart:
START
goto homeroom
goto classA
goto classB
....
END

try again, with this improved for subroutines, this flowchart converts to BASIC pretty easily:
START
goto hallway
gosub homeroom
gosub classA
gosub washroom
gosub classB
....
END



{Quote hidden}

thanks, but I'm one of those people that are of the opinion that if you have learned to flowchart correctly, the matter of whatever language used for the job doesn't really matter much "anymore". To me, it's just "yet another programming language"  (YAPL)
http://www.google.ca/search?q=%22yet+another+programming+language%22&btnG=Search&hl=en&ie=ISO-8859-1


{Quote hidden}

Simple yes, but if you're teaching kids that you got to "command" the computer to do something, then where's the command? Where's the instruction?
At least with BASIC, you tell the computer to PRINT it on the screen, and with further advancement, you can tell the computer to PRINT it to a printer or to a file. No confusion.

When I first saw that, I said yes, simple, but sort of goes under that joke:
"Hello, tech support?"
"I'd like to stop my computer."
"well you go to start"
"no, you don't understand, I want to stop my computer"
"well, like I said first...go to start"
"no...




{Quote hidden}

Yes, there are better tools, and you are familiar with them, however, students with "no" background have got to learn how to walk before they learn how to run. BASIC has a lot of what the others failed at:
en.wikipedia.org/wiki/BASIC_programming_language
---quote---
BASIC was intended to address the complexity issues of older languages with a new language designed specifically for the new class of users the time-sharing systems allowed — that is, a "simpler" user who was not as interested in speed as in simply being able to use the machine.
---</quote>---
plus, following that quote, there are 8 points in favour of B.A.S.I.C.

-snip-

> > >1) Virtually no structure. GOTO/GOSUB are the order of the day.
> >
> > Flowcharting and BASIC is almost a one-to-one match.
>
> So are flowcharting and C, and flowcharting and Pascal. The difference is
> that the automatic control structures improves the safety of applications
> over Basic because it doesn't give the programmer the opportunity to screw
> it up.

Not quite, with C you got details to deal with, you have to link libraries using includes and a printf() is not as obvious as one would like.
Right there you just made it more complex: libraries? include?
Pascal, has nicer syntax but not so obvious in some cases such as write() and writeln()
A new student thinks GOTO and GOSUB, they don't think While or Loop.
I GOTO class
I GOTO desk
I GO...
With time and experience, they convert to thinking the way you like, which is structured, indented, etc... but the first attempts, you should be able to allow what kids do, and kids don't always color with their crayons within the lines and boundaries.

{Quote hidden}

--<quote>--
Syntax
Basic statements are terminated by line endings unless there is a line continuation character. A very minimal BASIC syntax only needs the LET, PRINT, IF and GOTO commands. An interpreter which executes programs with this minimal syntax doesn't need a stack. Some early microcomputer implementations were this simple. If one adds a stack, nested FOR-loops and the GOSUB command can be added. An interpreter with these features requires the BASIC code to have line numbers.
--</quote>--

LET, PRINT, IF, GOTO .... seems if you limit your flowcharts to those, then BASIC is already an accomplished flowchart compiler.
GOSUB and FOR also work nicely in a flowchart as well.

The above syntax is easily within the grasp of a kid.

A flowchart compiler is making a complex process out of something that eventually boils down to LET PRINT IF GOTO.

plus, I don't think early developers had time to develop or room to insert a flowchart compiler within an apple, IBMjr or Commodore.  BASIC is far simpler to do. and BASIC fit the 8 principles:
1)Be easy for beginners to use
2)Be a general-purpose programming language
3)Allow advanced features to be added for experts (while keeping the language simple for beginners)
4)Be interactive
5)Provide clear and friendly error messages
6)Respond fast for small programs
7)Not require an understanding of computer hardware
8)Shield the user from the operating system


{Quote hidden}

Yes, true, you can code BASIC at the keyboard, but if you had 2 parallel classrooms with the same number of students starting. The classroom not teaching BASIC would require more computers to satisfy the students assignments simply because they need more time at the keyboard to deal with what can be additional problems.  Forgot to init a variable in C, or pascal, then you got a problem, therefore more keyboard time and the flowchart also needs to be changed. forgot to init a variable in BASIC, BASIC is forgiving and it still runs, less time a t keyboard, some marks deducted at end, but atleast the program did something.


> But once I'm ready for students to get to programming, then I want a
> language that supports and enforces good programming constructs.
>
> And BASIC ain't it.

You said you were a professor, so you aren't going to be receiving kids.
Kids don't always color pictures within the lines. BASIC dispenses with all those rules and regulations them older folks got to follow.

{Quote hidden}

That is a bigger problem with languages such as C or Pascal where case sensitivity comes into play. If you look at BASIC, you have 2 choices.
A variable such as "A" or a variable such as "A$", that's it.  The language took care of the rest of the problem such as int, float, char, string

> > Variable declarations is a detail which is something you fill-in "after"
> > getting the main flow of the program right. An advanced student will see
> > that, and fill in the details afterwards, not during the initial
> > planning stages. BASIC == flowchart in this regard.
>
> You've never had a student who struggled with a program that didn't work
> simply because they misspelled a variable name have you?
>
> Yes. I repeated it.

A or A$, how complex is that?

> > >>3) No parameter passing mechanism to speak of.
> >
> > A new student has to struggle with the concept of planning their work on
> > paper first. That is an advanced concept for students.
>
> But when they get there, and as I always point out they always get there,
> it makes for a big difference.

One step at a time.
Learn to walk before learning to run.
Most people are learning to drive an automatic vesrsus a stick shift.
Why shouldn't they be learning the stick shift first so that they get it right?

When it comes to parameter passing, how screwed up do you think a kid is going to get when he finds out that the variable A inside "that" routine is not the same as variable A outside that routine.
Make them all global variables, no more hassling with details.

> > >>>>BASIC will get a kid from 0 to 10 (mph/kph). But after that?
> >
> > When a student gets to 10mph/kph, they have gotten some concepts of
> > doing their program on paper first.
>
> You can do any program, in any language, on paper first. BASIC has no
> corner on that market.

You don't have to go through all the housekeeping details that other languages do such as int, uint, char, uchar, char[](<-how big?), variable rules within procedures, parameter passing, etc.
What does a kid know about how big a char string they should initialize for a program which they have never done before?
Get rid of the details so atleast their first few programs meet success versus disaster. With BASIC, they atleast get something running, with the other languages, you're still at the starting gate.
With BASIC, you got trace, and you can stop a program midflight and examine variables even if you never planned on doing that to begin with.

> > At the "paper" stage, things can be reconfigured quickly or struck out
> > completely by the stroke of a pencil.
> > "Now" that they are walking at 10mph, it's time to introduce them to
> > running using Pascal, C or other structured languages.
>
> Frankly that's backwards. You add a lot of complexity to the process by
> adding what is essentially a third language to the mix.

You deal with a couple of issues at a time as they come along, versus heaping them all at once at the beginning.

> You spent a whole message talking about process. I'm fine with the
> process.
>
> I'm talking about implementation languages. i still contend that as a
> beginning programm langauage, BASIC brings nothing to the table except for
> the nostalgia of the intructors that teach it.

"nostalgia of the intructors that teach it."  hmmmm.... I would have found this an insult if I were an instructor  :-/   but it's sort of funny.

....Well, it's your opinion, but facts are facts.
Basic was designed for beginners, it is useful enough to do something for those who took a little programming and don't intend to make programming their main field... example engineers, accountants, kids, or whomever it may be. Simply put, someone with a little BASIC knowledge can knock out something useful (perhaps not professional) where they would not be able to say the same using a "structured" language unless they held a PHD.  ;-)

___________________________________________

2004\12\19@083017 by Wouter van Ooijen

face picon face
> GOTO is a very english common sense word and that is how people think.
> Likewise for all the other very english type words within BASIC.
> Before people learn to program, they think in "flowchart"
> without even
> realizing it, people don't think in indented/structured
> thoughts like say in
> psuedo code, or Pascal, C or other structured languages.

I think this is as true as that the common reflex among children who start playing football to have the whole team (two teams actually) clustering around the ball, each child kicking like mad, on the off chance that there might be a ball before his feet. It is the first reflex, but it is the reflex you will have to eradicate quite soon if you want to get some team play in place.

I doubt whether the GOTO concept is is very naturally to humans. It is true that it arises naturally from the computer hardware, so it was quite natural to implement on early computers.

I do support the Python side: it is as easy as a language without declarations can get, and you don't have to teach both indendation and structure. You can do a bunch of advanced things like OO, iterators/generators, exception handling, some functional programming etc, but you don't need to.

What I would realy like is a good lazy+functional language. Haskell comes close, but not enough yet for my taste.

Wouter van Ooijen

-- -------------------------------------------
Van Ooijen Technische Informatica: http://www.voti.nl
consultancy, development, PICmicro products
docent Hogeschool van Utrecht: http://www.voti.nl/hvu



____________________________________________

More... (looser matching)
- Last day of these posts
- In 2004 , 2005 only
- Today
- New search...