II. There are only 5 actions that a computer has
to
perform in order to do "anything"
III. There are only 3 ways of combining these
actions (into more complex ones)
that are needed in order for a computer
to do "anything"
 Every problem requires you to do something to
(i.e., perform some action
on)
some objects in order to
transform them in
some way
 Therefore, programming languages need
nouns, verbs, & rules
of grammar
to describe these transformations
* Insight I = only need 2
nouns
* Insight II = only need
5 verbs
* Insight III = only need
3 rules of grammar
& they are nouns, verbs,
& rules
that a
computer can easily deal with.
(e.g., Morse code: dots & dashes)
a)  Every instruction
can
be expressed in some
language (English, Pascal, Java, ...)
i.e., as a sequence ("string") of
words, numerals, etc.

Every letter of every word
can be expressed as a numeral
e.g., A = 1, ..., Z = 26
e.g., ASCII
code
* has codes for caps, lower case,
symbols, numerals,
punctuation
* there are codes for other
alphabets (Unicode)
* langs like Japanese, Chinese,
Arabic, Hebrew, etc.,
pose other problems
 open area of research

Note:
A numeral is a representation for a
number;
e.g., 1, I, one, / , un, uno
are 6 numerals
representing the same number
5, V, five, ///// , cinq, cinque,
are 6 numerals
representing another number

Every numeral can be expressed
in binary notation
i.e., as 0s and 1s
e.g.,
decimal  binary 

0  0 
1  1 
2  10 
3  11 
4  100 
5  101 
6  110 
7  111 
8  1000 
9  1001 
10  1010 
11  1011 
...  ... 
99  
100  
101  
...  
999  
1000 
* exericise for reader:
fill in the rest of the "binary" column
* decimal notation:
___  ___  ___  ___  ___ 
10000s
place 
1000s
place 
100s
place 
10s
place 
1s
place 
Each "place" is 10 times the one to its right.
e.g., 748 = 7 100s + 4 10s + 8 1s
= 7x100 + 4x10 + 8x1
= 700 + 40 + 8
NOTE: The symbols "0", "1", "2", "3",
"4", "5", "6", "7", "8", "9"
are called "digits"
* binary notation:
___  ___  ___  ___  ___ 
16s
place 
8s
place 
4s
place 
2s
place 
1s
place 
Each "place" is 2 times the one to its right.
e.g., 101 (in binary) = 1 4s + 0 2s + 1 1s
= 1x4 + 0x2 + 1x1
= 4 + 0 +
1
= 5 (in decimal)
NOTE: 5 (in decimal) and 101 (in
binary) are 2 numerals
representing the same
number.
NOTE: The symbols "0", "1" are called
"binary digits", or "bits" for short

0s and 1s can be physically represented
(or "implemented") by:
* electrical signals
(on/off, high/low voltage)
* magnets
(north/south,
magnetized/not magnetized)
* etc.  anything with 2 states
> those 2 states are the 2 objects
that "0" and "1" are nouns for

BUT: This does NOT imply that
"computers (only) deal with
numbers"
Rather: (digital) computers deal with 2
states
e.g.
WRITE(7) could be coded
(or represented) in ASCII as:
8782738469405541
(where 87 is ASCII for "W", ...,
& 41 is ASCII for ")" )
NOTE: In ASCII, which runs from
"blank" = 32 (decimal)
= 00100000 (binary)
to "~" = 126 (decimal)
= 001111110 (binary),
"0" = 48, ..., "9" = 57, ...,
"A" = 65, ..., "Z" = 90
(& 031, 127255 are either
not used or used for nonprinting
"characters" like <return>)
which, converted to binary, would be:
01010111...00101001
(where 87 (decimal) = 01010111 (binary),
etc.)

How to represent more complex info?
* that's the study of "data structures"
(in computer science)
& "knowledge representation" (in AI)