Moving computing into the basics

Mathematics users – elementary mathematics, technicians have more
mathematics. So the mathematics teachers could say all we have to
teach our students is how to look up a formula and apply it. But from
high school on, all of you learned some form of proof, even though not
all of you will go on to be a mathematician. Some concept of what a
proof is. We don’t trust anyone to apply mathematics if he doesn’t
have the concept of a proof. What it means for a mathematical
statement to be something meaningful. We are all physics users when we
turn on switches and schools have taught the second law of
thermodynamics, even though few of us will actually use it. Basic
ideas. Tremendous disparity between traditional foundations of
technological society – principles of science to everyone – and
computing, which is just hitting the right keys at the right moment.
Example of the overreaction to the Y2K problem.

Once a society depends as much on the technology as we do today on
the computer and information technology, it’s not enough to have a
bunch of specialists. principles should be a matter of general
education.

When computers first popped up in universities some 40 or 50 years
ago, everyone who wanted to use a computer had to learn how to program
and the only question was what language to use. Justification was very
simple. If someone wanted to use a computer for anything, he had to
write his own program. In the 70s and 80s, something very drastic came
up. Visicalc was the first spreadsheet. Fantastic innovation. That was
simply the first of these fantastic app packages that we all use
nowadays. Computer users today simply work with prepackaged
applications done by specialists. If they use tools that other people
make, then there’s no need to teach programming.

If you want to understand the basic ideas that support this
technology… How can I tell a politician or someone about what
computers can or cannot do?

What would be the simplest possible setting where we can teach
programming to high school students – not so that they will all be
programmers, but so that they understand what it means to specify
concretely what they want to do?

Traditional to take the language of the day. Understandable. But if
you take a professional programming language, then you spend the first
months or two studying the manual and the libraries. Too much
information. What is the simplest setting in which I can try these?

Multikara is so cute! synchronization and stuff…

Main idea: finite state machines are easiest way to learn how to program