### Introduction to programmable computing devices

• Overview

• Topics discussed in this webnote:

 What is a computer ? How is the computer developed ? Computing devices: abacus and the different engine Programmable devices: music box and mechanical loom How to encode instructions in past programmable devices Basically, we use holes in a cardboard

• Etymology of the word computer

• Origin of the word Computer:

• Computer is derived directly from the Latin computus and computare.

• Both Latin words mean the same as the English verb compute:

 Compute = to determine by mathematical means.

• Computare = com + putare (Latin root words)

 Putare means to reckon Com is an intensifying prefix.

(An intensifying prefix heightens or stresses, but does not change the meaning of the word it modifies
Example: inflammable)

• What is a computer

• Computer:

 A computer is a "reckoning" or computing device.... In fact: a computer is an programmable computing device (that helps humans do their chores)

• How was the computer developed/invented:

 Humans invented computing devices in ancient times. In the industrial revolution, programmable machines were invented The computer is a combination of these 2 ideas

• Some computing devices invented throughout history

• "Ancient" computing device: the abacus

Toy abacus Real abacus

• # beads in row 1 = unit value
• # beads in row 2 = 10's value
• # beads in row 3 = 100's value
• And so on

• # beads in column 1 = unit value
• # beads in column 2 = 10's value
• # beads in column 3 = 100's value
• And so on

• 1 bead in upper half = 5 beads in lower half
• Value represented by abacus = 63571

• 1822: Babbage's difference engine

Babbage's difference engine Close-up of the mechanics

• Operation:

 The difference engine consists of a number of columns, numbered from 1 to N. The machine is able to store one decimal number in each column. The machine can only add the value of a column k + 1 to column k to produce the new value of k. Column N can only store a constant, Column 1 displays (and possibly prints) the value of the calculation on the current iteration.

• Programmable machines, programs and instructions

• Programmable machine:

 Programmable machine = a device which function can be altered by a program

• Program:

 Program = a series of instructions that accomplishes a specific task

Example:

 Each row of holes in the card board is an instruction for some machine The position of a hole encodes a certain meaning The program consists of a series of rows (= instructions) on the card board

• Examples of Programmable machines

• Examples:

Mechanical piano/music box Mechanical loom
• A mechanical piano can play different songs
• The drum in the center of the piano contains spikes and rotates slowly
• Spikes at different position causes the piano to play a different note

• Different spike patterns (on different drums) will cause the piano to play a different song
• The mechanical loom can weave fabric in different patterns
• The loom's movement is controlled by holes punched in a card

• Different hole patterns (on different cards) will casue the loom to weave a different pattern
• See: http://en.wikipedia.org/wiki/Joseph_Marie_Jacquard

• Instruction encoding

• Instructions (= program instructions) tells a machine what to do

• Instructions are represented using a encoding method

• Example encoding:

 1 means add 2 means subtract And so on.

• Another example: encoding a song on paper

 The location of a hole in the paper corresponds to a particular musical note Encoding a song: a series of holes in the paper make the mechanical piano/music box play the notes of a song