SlideShare a Scribd company logo
1 of 3
Processes, procedures, and computers
Computer science is the study of information processes. A process is a sequence of steps. Each
step changes the state of the world in some small way, and the result of all the steps produces
some goal state. For example, baking a cake, mailing a letter, and planting a tree are all
processes. Because they involve physical things like sugar and dirt, however, they are not pure
information processes. Computer science focuses on processes that involve abstract information
rather than physical things.
The boundaries between the physical world and pure information processes, however, are often
fuzzy. Real computers operate in the physical world: they obtain input through physical means
(e.g., a user pressing a key on a keyboard that produces an electrical impulse), and produce
physical outputs (e.g., an image displayed on a screen). By focusing on abstract information,
instead of the physical ways of representing and manipulating information, we simplify
computation to its essence to better enable understanding and reasoning.
A procedure is a description of a process. A simple process can be described just by listing the
steps. The list of steps is the procedure; the act of following them is the process. A procedure that
can be followed without any thought is called a mechanical procedure. An algorithm is a
mechanical procedure that is guaranteed to eventually finish.
For example, here is a procedure for making coffee, adapted from the actual directions that come
with a major coffeemaker:
A mathematician is a machine for turning coffee into theorems.
Attributed to Paul
 Lift and open the coffeemaker lid.
 Place a basket-type filter into the filter basket.
 Add the desired amount of coffee and shake to level the coffee.
 Fill the decanter with cold, fresh water to the desired capacity.
 Pour the water into the water reservoir.
 Close the lid.
 Place the empty decanter on the warming plate.
 Press the ON button.
Describing processes by just listing steps like this has many limitations. First, natural languages
are very imprecise and ambiguous. Following the steps correctly requires knowing lots of
unstated assumptions. For example, step three assumes the operator understands the difference
between coffee grounds and finished coffee, and can infer that this use of “coffee” refers to
coffee grounds since the end goal of this process is to make drinkable coffee. Other steps assume
the coffeemaker is plugged in and sitting on a flat surface.
One could, of course, add lots more details to our procedure and make the language more precise
than this. Even when a lot of effort is put into writing precisely and clearly, however, natural
languages such as English are inherently ambiguous. This is why the United States tax code is
4. million words long, but lawyers can still spend years arguing over what it really means.
Another problem with this way of describing a procedure is that the size of the description is
proportional to the number of steps in the process. This is fine for simple processes that can be
executed by humans in a reasonable amount of time, but the processes we want to execute on
computers involve trillions of steps. This means we need more efficient ways to describe them
than just listing each step one-by-one.
People have been developing procedures for thousands of years. For example, in Elements (300
BC), Euclid describes a procedure for computing the greatest common divisor of two numbers.
The full procedure is not important to understand here, but what is relevant is how he described
it:
To program computers, we need tools that allow us to describe processes precisely and
succinctly. Since the procedures are carried out by a machine, every step needs to be described;
we cannot rely on the operator having “common sense” (for example, to know how to fill the
coffeemaker with water without explaining that water comes from a faucet, and how to turn the
faucet on). Instead, we need mechanical procedures that can be followed without any thinking.
A computer is a machine that can:
 Accept input. Input could be entered by a human typing at a keyboard, received over a
network, or provided automatically by sensors attached to the computer.
 Execute a mechanical procedure, that is, a procedure where each step can be executed
without any thought.
 Produce output. Output could be data displayed to a human, but it could also be anything
that affects the world outside the computer such as electrical signals that control how a
device operates.
A computer terminal is not some clunky old television with a typewriter in front of it. It is an
interface where the mind and body can connect with the universe and move bits of it about.
DouglasAdams
Computers exist in a wide range of forms, and thousands of computers are hidden in devices we
use every day but don’t think of as computers such as cars, phones, TVs, microwave ovens, and
access cards. Our primary focus is on universal computers, which are computers that can perform
all possible mechanical computations on discrete inputs except for practical limits on space and
time. The next section explains what it discrete inputs means; Chapters 6 and 12 explore more
deeply what it means for a computer to be universal.

More Related Content

Similar to Processes, procedures, algorithms and computers

Basic concepts in_computer_hardware_and_software
Basic concepts in_computer_hardware_and_softwareBasic concepts in_computer_hardware_and_software
Basic concepts in_computer_hardware_and_softwareSantosh Kulkarni
 
Module1 copy (3)
Module1   copy (3)Module1   copy (3)
Module1 copy (3)Alex Ali
 
Computer fundament al module 1
Computer fundament al module 1Computer fundament al module 1
Computer fundament al module 1sairasiddiqui
 
Module1 copy (2)
Module1   copy (2)Module1   copy (2)
Module1 copy (2)Alex Ali
 
Module1 copy (4)
Module1   copy (4)Module1   copy (4)
Module1 copy (4)Alex Ali
 
Computer fundamental
Computer fundamentalComputer fundamental
Computer fundamentalMohit Saini
 
Fundamentals of computers (2).pptx
Fundamentals of computers (2).pptxFundamentals of computers (2).pptx
Fundamentals of computers (2).pptxanshparashar5
 
computer hardware and software
computer hardware and softwarecomputer hardware and software
computer hardware and softwarePrabhu Govind
 
Introduction to computer science ch1
Introduction to computer science ch1Introduction to computer science ch1
Introduction to computer science ch1Mohamed Essam
 
Fundamentals of computer
Fundamentals of computerFundamentals of computer
Fundamentals of computerbirbalbhatia007
 
Pc hardware basics
Pc hardware basicsPc hardware basics
Pc hardware basicsDarshan124
 
Introduction to computer
Introduction to computerIntroduction to computer
Introduction to computerA. S. M. Shafi
 
DCA- Basic Fundamental, My computer, Desktop, History of computer
DCA- Basic Fundamental, My computer, Desktop, History of computerDCA- Basic Fundamental, My computer, Desktop, History of computer
DCA- Basic Fundamental, My computer, Desktop, History of computerKiet Raipur
 
Introduction to computer_hardware
Introduction to computer_hardwareIntroduction to computer_hardware
Introduction to computer_hardwarenaadiya_khuda_bux
 
The role of computer in modern business
The role of computer in modern businessThe role of computer in modern business
The role of computer in modern businessTuhin Parves
 
Introduction to Computer and Generations of Computer by Er. Kamlesh Tripathi
Introduction to Computer and Generations of Computer by Er. Kamlesh TripathiIntroduction to Computer and Generations of Computer by Er. Kamlesh Tripathi
Introduction to Computer and Generations of Computer by Er. Kamlesh TripathiLEALucknow
 
Limore Presentation : Light Color Version
Limore Presentation : Light Color VersionLimore Presentation : Light Color Version
Limore Presentation : Light Color VersionMadlis
 

Similar to Processes, procedures, algorithms and computers (20)

introduction to it
introduction to itintroduction to it
introduction to it
 
Basic concepts in_computer_hardware_and_software
Basic concepts in_computer_hardware_and_softwareBasic concepts in_computer_hardware_and_software
Basic concepts in_computer_hardware_and_software
 
Module1 copy (3)
Module1   copy (3)Module1   copy (3)
Module1 copy (3)
 
Computer fundament al module 1
Computer fundament al module 1Computer fundament al module 1
Computer fundament al module 1
 
Module1 copy (2)
Module1   copy (2)Module1   copy (2)
Module1 copy (2)
 
Module1 copy (4)
Module1   copy (4)Module1   copy (4)
Module1 copy (4)
 
Computer fundamental
Computer fundamentalComputer fundamental
Computer fundamental
 
Essays On Computers
Essays On ComputersEssays On Computers
Essays On Computers
 
Fundamentals of computers (2).pptx
Fundamentals of computers (2).pptxFundamentals of computers (2).pptx
Fundamentals of computers (2).pptx
 
computer hardware and software
computer hardware and softwarecomputer hardware and software
computer hardware and software
 
Introduction to computer science ch1
Introduction to computer science ch1Introduction to computer science ch1
Introduction to computer science ch1
 
Basic concepts
Basic conceptsBasic concepts
Basic concepts
 
Fundamentals of computer
Fundamentals of computerFundamentals of computer
Fundamentals of computer
 
Pc hardware basics
Pc hardware basicsPc hardware basics
Pc hardware basics
 
Introduction to computer
Introduction to computerIntroduction to computer
Introduction to computer
 
DCA- Basic Fundamental, My computer, Desktop, History of computer
DCA- Basic Fundamental, My computer, Desktop, History of computerDCA- Basic Fundamental, My computer, Desktop, History of computer
DCA- Basic Fundamental, My computer, Desktop, History of computer
 
Introduction to computer_hardware
Introduction to computer_hardwareIntroduction to computer_hardware
Introduction to computer_hardware
 
The role of computer in modern business
The role of computer in modern businessThe role of computer in modern business
The role of computer in modern business
 
Introduction to Computer and Generations of Computer by Er. Kamlesh Tripathi
Introduction to Computer and Generations of Computer by Er. Kamlesh TripathiIntroduction to Computer and Generations of Computer by Er. Kamlesh Tripathi
Introduction to Computer and Generations of Computer by Er. Kamlesh Tripathi
 
Limore Presentation : Light Color Version
Limore Presentation : Light Color VersionLimore Presentation : Light Color Version
Limore Presentation : Light Color Version
 

More from Rajendran

Element distinctness lower bounds
Element distinctness lower boundsElement distinctness lower bounds
Element distinctness lower boundsRajendran
 
Scheduling with Startup and Holding Costs
Scheduling with Startup and Holding CostsScheduling with Startup and Holding Costs
Scheduling with Startup and Holding CostsRajendran
 
Divide and conquer surfing lower bounds
Divide and conquer  surfing lower boundsDivide and conquer  surfing lower bounds
Divide and conquer surfing lower boundsRajendran
 
Red black tree
Red black treeRed black tree
Red black treeRajendran
 
Medians and order statistics
Medians and order statisticsMedians and order statistics
Medians and order statisticsRajendran
 
Proof master theorem
Proof master theoremProof master theorem
Proof master theoremRajendran
 
Recursion tree method
Recursion tree methodRecursion tree method
Recursion tree methodRajendran
 
Recurrence theorem
Recurrence theoremRecurrence theorem
Recurrence theoremRajendran
 
Master method
Master method Master method
Master method Rajendran
 
Master method theorem
Master method theoremMaster method theorem
Master method theoremRajendran
 
Master method theorem
Master method theoremMaster method theorem
Master method theoremRajendran
 
Greedy algorithms
Greedy algorithmsGreedy algorithms
Greedy algorithmsRajendran
 
Longest common subsequences in Algorithm Analysis
Longest common subsequences in Algorithm AnalysisLongest common subsequences in Algorithm Analysis
Longest common subsequences in Algorithm AnalysisRajendran
 
Dynamic programming in Algorithm Analysis
Dynamic programming in Algorithm AnalysisDynamic programming in Algorithm Analysis
Dynamic programming in Algorithm AnalysisRajendran
 
Average case Analysis of Quicksort
Average case Analysis of QuicksortAverage case Analysis of Quicksort
Average case Analysis of QuicksortRajendran
 
Np completeness
Np completenessNp completeness
Np completenessRajendran
 
computer languages
computer languagescomputer languages
computer languagesRajendran
 

More from Rajendran (20)

Element distinctness lower bounds
Element distinctness lower boundsElement distinctness lower bounds
Element distinctness lower bounds
 
Scheduling with Startup and Holding Costs
Scheduling with Startup and Holding CostsScheduling with Startup and Holding Costs
Scheduling with Startup and Holding Costs
 
Divide and conquer surfing lower bounds
Divide and conquer  surfing lower boundsDivide and conquer  surfing lower bounds
Divide and conquer surfing lower bounds
 
Red black tree
Red black treeRed black tree
Red black tree
 
Hash table
Hash tableHash table
Hash table
 
Medians and order statistics
Medians and order statisticsMedians and order statistics
Medians and order statistics
 
Proof master theorem
Proof master theoremProof master theorem
Proof master theorem
 
Recursion tree method
Recursion tree methodRecursion tree method
Recursion tree method
 
Recurrence theorem
Recurrence theoremRecurrence theorem
Recurrence theorem
 
Master method
Master method Master method
Master method
 
Master method theorem
Master method theoremMaster method theorem
Master method theorem
 
Hash tables
Hash tablesHash tables
Hash tables
 
Lower bound
Lower boundLower bound
Lower bound
 
Master method theorem
Master method theoremMaster method theorem
Master method theorem
 
Greedy algorithms
Greedy algorithmsGreedy algorithms
Greedy algorithms
 
Longest common subsequences in Algorithm Analysis
Longest common subsequences in Algorithm AnalysisLongest common subsequences in Algorithm Analysis
Longest common subsequences in Algorithm Analysis
 
Dynamic programming in Algorithm Analysis
Dynamic programming in Algorithm AnalysisDynamic programming in Algorithm Analysis
Dynamic programming in Algorithm Analysis
 
Average case Analysis of Quicksort
Average case Analysis of QuicksortAverage case Analysis of Quicksort
Average case Analysis of Quicksort
 
Np completeness
Np completenessNp completeness
Np completeness
 
computer languages
computer languagescomputer languages
computer languages
 

Recently uploaded

Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3JemimahLaneBuaron
 
PSYCHIATRIC History collection FORMAT.pptx
PSYCHIATRIC   History collection FORMAT.pptxPSYCHIATRIC   History collection FORMAT.pptx
PSYCHIATRIC History collection FORMAT.pptxPoojaSen20
 
Presiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsPresiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsanshu789521
 
Hybridoma Technology ( Production , Purification , and Application )
Hybridoma Technology  ( Production , Purification , and Application  ) Hybridoma Technology  ( Production , Purification , and Application  )
Hybridoma Technology ( Production , Purification , and Application ) Sakshi Ghasle
 
MENTAL STATUS EXAMINATION format.docx
MENTAL     STATUS EXAMINATION format.docxMENTAL     STATUS EXAMINATION format.docx
MENTAL STATUS EXAMINATION format.docxPoojaSen20
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxiammrhaywood
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxheathfieldcps1
 
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Celine George
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)eniolaolutunde
 
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdfssuser54595a
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...Marc Dusseiller Dusjagr
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Educationpboyjonauth
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdfSoniaTolstoy
 
URLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppURLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppCeline George
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13Steve Thomason
 
Crayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon ACrayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon AUnboundStockton
 
Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionSafetyChain Software
 

Recently uploaded (20)

Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3
 
PSYCHIATRIC History collection FORMAT.pptx
PSYCHIATRIC   History collection FORMAT.pptxPSYCHIATRIC   History collection FORMAT.pptx
PSYCHIATRIC History collection FORMAT.pptx
 
Presiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsPresiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha elections
 
Hybridoma Technology ( Production , Purification , and Application )
Hybridoma Technology  ( Production , Purification , and Application  ) Hybridoma Technology  ( Production , Purification , and Application  )
Hybridoma Technology ( Production , Purification , and Application )
 
Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1
 
MENTAL STATUS EXAMINATION format.docx
MENTAL     STATUS EXAMINATION format.docxMENTAL     STATUS EXAMINATION format.docx
MENTAL STATUS EXAMINATION format.docx
 
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)
 
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Education
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
 
URLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppURLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website App
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13
 
Crayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon ACrayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon A
 
Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory Inspection
 

Processes, procedures, algorithms and computers

  • 1. Processes, procedures, and computers Computer science is the study of information processes. A process is a sequence of steps. Each step changes the state of the world in some small way, and the result of all the steps produces some goal state. For example, baking a cake, mailing a letter, and planting a tree are all processes. Because they involve physical things like sugar and dirt, however, they are not pure information processes. Computer science focuses on processes that involve abstract information rather than physical things. The boundaries between the physical world and pure information processes, however, are often fuzzy. Real computers operate in the physical world: they obtain input through physical means (e.g., a user pressing a key on a keyboard that produces an electrical impulse), and produce physical outputs (e.g., an image displayed on a screen). By focusing on abstract information, instead of the physical ways of representing and manipulating information, we simplify computation to its essence to better enable understanding and reasoning. A procedure is a description of a process. A simple process can be described just by listing the steps. The list of steps is the procedure; the act of following them is the process. A procedure that can be followed without any thought is called a mechanical procedure. An algorithm is a mechanical procedure that is guaranteed to eventually finish. For example, here is a procedure for making coffee, adapted from the actual directions that come with a major coffeemaker: A mathematician is a machine for turning coffee into theorems. Attributed to Paul  Lift and open the coffeemaker lid.  Place a basket-type filter into the filter basket.  Add the desired amount of coffee and shake to level the coffee.  Fill the decanter with cold, fresh water to the desired capacity.  Pour the water into the water reservoir.  Close the lid.  Place the empty decanter on the warming plate.  Press the ON button. Describing processes by just listing steps like this has many limitations. First, natural languages are very imprecise and ambiguous. Following the steps correctly requires knowing lots of unstated assumptions. For example, step three assumes the operator understands the difference between coffee grounds and finished coffee, and can infer that this use of “coffee” refers to
  • 2. coffee grounds since the end goal of this process is to make drinkable coffee. Other steps assume the coffeemaker is plugged in and sitting on a flat surface. One could, of course, add lots more details to our procedure and make the language more precise than this. Even when a lot of effort is put into writing precisely and clearly, however, natural languages such as English are inherently ambiguous. This is why the United States tax code is 4. million words long, but lawyers can still spend years arguing over what it really means. Another problem with this way of describing a procedure is that the size of the description is proportional to the number of steps in the process. This is fine for simple processes that can be executed by humans in a reasonable amount of time, but the processes we want to execute on computers involve trillions of steps. This means we need more efficient ways to describe them than just listing each step one-by-one. People have been developing procedures for thousands of years. For example, in Elements (300 BC), Euclid describes a procedure for computing the greatest common divisor of two numbers. The full procedure is not important to understand here, but what is relevant is how he described it: To program computers, we need tools that allow us to describe processes precisely and succinctly. Since the procedures are carried out by a machine, every step needs to be described; we cannot rely on the operator having “common sense” (for example, to know how to fill the coffeemaker with water without explaining that water comes from a faucet, and how to turn the faucet on). Instead, we need mechanical procedures that can be followed without any thinking. A computer is a machine that can:  Accept input. Input could be entered by a human typing at a keyboard, received over a network, or provided automatically by sensors attached to the computer.  Execute a mechanical procedure, that is, a procedure where each step can be executed without any thought.  Produce output. Output could be data displayed to a human, but it could also be anything that affects the world outside the computer such as electrical signals that control how a device operates. A computer terminal is not some clunky old television with a typewriter in front of it. It is an interface where the mind and body can connect with the universe and move bits of it about. DouglasAdams Computers exist in a wide range of forms, and thousands of computers are hidden in devices we use every day but don’t think of as computers such as cars, phones, TVs, microwave ovens, and
  • 3. access cards. Our primary focus is on universal computers, which are computers that can perform all possible mechanical computations on discrete inputs except for practical limits on space and time. The next section explains what it discrete inputs means; Chapters 6 and 12 explore more deeply what it means for a computer to be universal.