# Charles M’s Answer

There are lots of ways to learn how to program a computer. The one I like to tell people about is www.raspberrypi.org. there are so many projects on that web site that you can do that will teach you haw to program a computer. many of them do not require any money. you just download the software.

Scratch is a programming language that you can download for free that will help you learn to program. It is built into the Raspberry Pi computer, but you can download it for practically any computer.

Did that answer your question?

Another interpretation of your question is, how does a program make things happen on the computer?

Basically a computer is an electronic circuit that take in input in the form of high and low voltages in different patterns and performs mathematical and logical operations on the patterns and then outputs the results in the form of high and lo voltages in different patterns.

Computers use binary numbers and logic circuits. A one is a high voltage. a zero is a low voltage. The place values in binary numbers work same as base 10 numbers except they are in base 2. the number 101 in base ten says, take 1, one hundred, add it to 0 tens and add it to 1 ones. Ten is 10 to the power of one. One hundred is 10 to the power of two, and 1 is 10 to the power of zero. In base 2, 101 says take 1 four, add it to 0 twos and add it to 1 one. Two is 2 to the power of one. Four is 2 to the power of two, and 1 is 2 to the power of zero. 101 in base two is 4 + 0 +1 = 5.

Electronic circuits can also perform AND, OR and NOT functions with the patterns of high and low voltages. If a high voltage is considered True and a low voltage is considered False, the NOT function says, True is NOT False, and False is NOT True. (t makes the low voltage be a high voltage. The AND function says false AND false is false, true AND false is false, false AND true is also false and True AND True is True.

Engineers combine millions and millions of transistors into circuits that can add two binary numbers, compare binary numbers perform the logic functions on these numbers and lots of other things. They can also store values into memory and retrieve them from memory. Certain pattern of binary numbers are interpreted by the computer to be instructions as to what to do with these binary patterns stored in memory. move them from one location to another, add them, subtract them, compare and do one thing if the result is true and something different if the result is false.

So programming the computer is arranging the binary patterns that are interpreted as instructions, into a sequence that solves a particular problem. The main tools used to program computers is an assembler or a compiler. These translate English-type words that humans can read into the binary patters that the computer can understand. For example, LDA 27 is a human code for the computer instruction that says to the computer, load 27 into the memory register location labeled A.

B = B+A is human instructions for take the value in register B and add to it, the value in register A and then put that sum into register B.

How the computer makes things happen is the high and low voltages drive lights to tune on, motors to turn on, and that kind of thing.

Scratch is a programming language that can cause images to appear and disappear, move from one location to anther and play sounds and things like that.

did that answer your questioning or just confuse you?