## 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