[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: Re: Beginner to programming. References to understand terms.
- From: Enrico Colombini <erix@...>
- Date: Tue, 25 Apr 2017 11:14:12 +0200
On 25-Apr-17 08:34, Dirk Laurie wrote:
Oops! You're right, of course. Never trust the memory of a septuagenarian.
But your memory was right on the main point: Applesoft Basic was a great
language to start with. Few instructions, a simple model (but powerful
enough for that time and hardware) and, over all, immediate visual feedback.
Having spent many years writing beginner's self-instruction courses, I
think simplicity and directness may be more important than formal
cleanliness. A disciplined mind is better than a discipline-enforcing
Formal cleanliness can be taught and can be used in (almost) any
language, even if not enforced by the language itself: I used to write
structured BASIC using GOTOs (and JMP in 6502 assembly code). I was even
doing recursion without argument passing :-)
By the way, BASIC was my first encounter with the garbage collection;
its powerful, flexible strings were the main thing I missed in C.
Back to the subject: I think interactive graphics are a very effective
tool to teach programming, because they give a large amount of feedback.
Unfortunately, current-day languages (or, I should say, programming
environments) tend not to offer built-in simple graphics.
By "simple graphics" I mean no-hassle instructions that draw directly
into the output window, such as LINE. They can be used to directly
illustrate concepts, visualize data, keep attention focused and so on.
The current setup/loop graphics model is powerful but conceptually
harder to grasp for a programming beginner, especially if you are trying
to teach the first steps of procedural programming and do not want to be
distracted by concepts such as graphics frames, events, callbacks and so on.
(I know, Processing is easy to use, but not simple to master and it does
not lend itself to good programming structure... people just tend to
create lots of global variables)