Bert Freudenberg wrote:
On 23.03.2009, at 10:38, kirby urner wrote:
I think [...] that there's a backlash against lexical coding as that means
typing

Not at all, in my opinion. It's not against having to type, it's about covering distance one step at a time.

I like to compare the issue to this: When kids first start to understand and speak themselves, it would be quite detrimental if they were forced to use correct grammar or even speak the punctuation out loud from the beginning. They will have enough time to learn that later, after the basics of language are internalized.

When you introduce the concept of programming, learning the syntax is only one of the challenges the student has to master. If you can focus on statements, sequences, passing arguments etc first without having to introduce syntax at the same time, you remove one big hurdle.

What worries me about this is that you seem to be traveling down the
"Cornell Program Synthesizer" path.  That was a fully visual language
that intended to change the way we all write programs.

One of my most frustrating graduate school experiences was in working
with LML (Lazy ML), which defined its structures in trees.  The problem
is that humans don't see trees (insert forest/trees joke), and so the
computerand I were communicating in text.  Unfortunately, I had stumbled
into creating a chunk of code that was represented in text the same way
that the correct program I was attempting to get in was represented in
text, but was a distinct program.  At that point I fell out of love with
"programs are data structures," and began to realize that programs are
ways that humans communicate with other humans and with computers.  We
should be the masters, and I should be able to go off into a field to
look over a knotty problem.

This issue is why I am so not in love with fancy aids in generating
code; I want to read what the original programmer wrote, not the pile
of garble that got blasted out when he pushed some buttons and dragged
some boxes.  I'll need to check his logic, determine where he went
wrong, or follow and extend it to enable unanticipated requirements.
Programs are (or should be) communications about the solution to
particular problems, not to the computer, but to future humans
reading the program.

--Scott David Daniels
scott.dani...@acm.org

_______________________________________________
Edu-sig mailing list
Edu-sig@python.org
http://mail.python.org/mailman/listinfo/edu-sig

Reply via email to