[Oberon] Use of resources.
Lars O
noreply at z505.com
Mon Jan 11 22:33:49 CET 2016
Frans-Pieter Vonck wrote:
> I really appreciate Dijkstra idea's about programming and some of the
> ewd's, especially the polemic ones, I understand. However, my students are
> not Mozarts, they are schoolkids, 12 13 years old. They make animated
> postcards in Scratch, program an NXT robot, blink a led on an Arduino,
> write some HTML, experiment with Javascript learn LUA for Minecraft and
> try to understand the difference between tabs and spaces in Python. All
> this they do because they enjoy it, not because an adult said so.
>
> The stepwise refinement is not how they (and myself) think. Stepwise
> refinement it is a way of discovering and communicating the logic of their
> creative product, a program. And I'm convinced that along with his beloved
> MontBlanc, Dijkstra was
> also carrying a pencil and an eraser with him.
All kids should learn that programming, is like mathematics where you do
not need a physical calculator in order to do math. This was dijkstra's
point when he compared telescopes to computer science, rather than
computing science. I have further extended the analogy with calculators.
A lot of people seem to think you need a computer in order to do
programming, which is like saying that math is not possible without an
electronic casio calculator, which is extremely absurd.
A good programmer can compile is program inside his brain, just like a
mathematician never needs any physical electronic calculator to write
mathematics. As if Einstein whipped out his calculator to discover E=mc2.
Couldn't be further from the truth.
And this is the problem with kids today... they get their tablet pc's and
immediately they are interacting with it visually. Then when they are
introduced to programming they see programming as engineering and art
instead of disciplined math.
However, one needs to read the following excellent book:
"The Science of Computing: Shaping a Discipline"
Because Dijkstra and Wirth got some things wrong when it comes to
testing.... The problem is that humans have a limited lifetime of about
70-90 years or less.. To prove a program correct, such as Microsoft
Windows and all it's dll's, would require super amounts of time, which is
not possible in this particular universe. If we develop the ability to
live for 1000 years it may be possible to prove an entire operating system
correct, but even then, you can NEVER prove that the OK or CANCEL button
is "correct" when positioned on the screen, as there are multiple correct
solutions.. there is no way to prove that you have artistically positioned
your OK or CANCEL button or your bold text in html correctly... as it is
left up to artistic talent to decide what is correct with some of the
computer program. Correctness proving only works on trivial Toy programs
that have an IN and OUT, like an old standard pascal program that just
calculates things and finishes. Programs are MUCH more complicated these
days, and include, unfortunately, engineering and art riddled all over the
program. Example: you cannot prove component pascal to have correct button
positions on the screen or correct menu items, there is just no way to
prove it. You can only prove trivial things like 1+1=2 and 50 characters
need to be printed to stdout.
Read the book it's great:
The Science of Computing: Shaping a Discipline
I have NO commission on this sale! I didn't write the book. I don't know
the guy. It's a great book.
There's also an interesting Dijkstra blog that started regarding his history.
More information about the Oberon
mailing list