John Wiley & Sons Philosophy of Computer Science Cover A unique resource exploring the nature of computers and computing, and their relationships to the wo.. Product #: 978-1-119-89190-1 Regular price: $39.16 $39.16 Auf Lager

Philosophy of Computer Science

An Introduction to the Issues and the Literature

Rapaport, William J.

Cover

1. Auflage Februar 2023
528 Seiten, Softcover
Wiley & Sons Ltd

ISBN: 978-1-119-89190-1
John Wiley & Sons

Jetzt kaufen

Preis: 41,90 €

Preis inkl. MwSt, zzgl. Versand

Weitere Versionen

epubmobipdf

A unique resource exploring the nature of computers and computing, and their relationships to the world.

Philosophy of Computer Science is a university-level textbook designed to guide readers through an array of topics at the intersection of philosophy and computer science. Accessible to students from either discipline, or complete beginners to both, the text brings readers up to speed on a conversation about these issues, so that they can read the literature for themselves, form their own reasoned opinions, and become part of the conversation by contributing their own views.

Written by a highly qualified author in the field, the book looks at some of the central questions in the philosophy of computer science, including:
* What is philosophy? (for readers who might be unfamiliar with it)
* What is computer science and its relationship to science and to engineering?
* What are computers, computing, algorithms, and programs?(Includes a line-by-line reading of portions of Turing's classic 1936 paper that introduced Turing Machines, as well as discussion of the Church-Turing Computability Thesis and hypercomputation challenges to it)
* How do computers and computation relate to the physical world?
* What is artificial intelligence, and should we build AIs?
* Should we trust decisions made by computers?

A companion website contains annotated suggestions for further reading and an instructor's manual.

Philosophy of Computer Science is a must-have for philosophy students, computer scientists, and general readers who want to think philosophically about computer science.

List of Figures xvi

Preface xviii

About the Companion Website xx

Part I Philosophy and Computer Science 1

1 An Introduction to the Philosophy of Computer Science 3

1.1 What This Book Is About 3

1.2 What This Book Is Not About 5

2 Philosophy: A Personal View 7

2.1 Introduction 7

2.2 A Definition of 'Philosophy' 8

2.3 What Is Truth? 9

2.3.1 Correspondence Theories of Truth 10

2.3.2 Coherence Theories of Truth 10

2.3.3 Correspondence vs. Coherence 10

2.4 Searching for the Truth 13

2.4.1 Searching vs. Finding 13

2.4.2 Asking "Why?" 14

2.4.3 Can There Be Progress in Philosophy? 15

2.4.4 Skepticism 16

2.5 What Is "Rational"? 17

2.5.1 Logical Rationality 17

2.5.2 Scientific Rationality 20

2.5.3 Computational Rationality 21

2.5.4 Is It Always Rational to Be Rational? 21

2.6 Philosophy as a Personal Search 22

2.7 Philosophies of Anything and Everything 23

2.8 Philosophy and Computer Science 25

2.9 Appendix: Argument Analysis and Evaluation 25

2.9.1 Introduction 25

2.9.2 A Question-Answer Game 26

2.9.3 Missing Premises 27

2.9.4 When Is an Argument a "Good" Argument? 30

2.9.5 Examples of Good and Bad Arguments 34

2.9.6 Summary 35

Part II Computer Science, Computers, and Computation 37

3 What Is Computer Science? 39

3.1 Introduction 39

3.2 Naming the Discipline 39

3.3 Why Ask What CS Is? 40

3.4 What Does It Mean to Ask What Something Is? 42

3.4.1 Determining Boundaries 42

3.4.2 Extensional and Intensional Definition 45

3.5 CS as the Science of Computers 47

3.5.1 Objection: Computers Are Not Natural 48

3.5.2 Objection: Computers Are Tools, Not Phenomena 49

3.5.3 Digression: The Once-upon-a-Time Science of Microscopy 51

3.5.4 Objection: CS Is Just a Branch of ... 52

3.5.5 Objection: What about Algorithms? 52

3.6 CS Studies Algorithms 53

3.6.1 Only Algorithms? 53

3.6.2 Or Computers, Too? 55

3.7 Physical Computers vs. Abstract Algorithms 56

3.8 CS Studies Information 57

3.9 CS as a Mathematical Science 58

3.10 CS as a Natural Science of Procedures 61

3.11 CS as an Empirical Study 63

3.12 CS as Engineering 64

3.13 Science xor Engineering? 66

3.14 CS as "Both" 66

3.15 CS as "More" 68

3.15.1 CS as a New Kind of Science 68

3.15.2 CS as a New Kind of Engineering 70

3.16 CS as "Neither" 71

3.16.1 CS as Art 71

3.16.2 CS as the Study of Complexity 71

3.16.3 CS as the Philosophy(!) of Procedures 72

3.16.4 CS as Computational Thinking 72

3.16.5 CS as AI 73

3.16.6 Is CS Magic? 74

3.17 Summary 76

3.18 Questions for the Reader 77

4 Science 78

4.1 Introduction 78

4.2 Science and Non-Science 79

4.3 Science as Systematic Study 80

4.4 The Goals of Science 81

4.4.1 Description 81

4.4.2 Explanation 82

4.4.3 Prediction 82

4.5 Instrumentalism vs. Realism 83

4.6 Scientific Theories 85

4.7 "The" Scientific Method 86

4.8 Falsifiability 88

4.8.1 Science as Conjectures and Refutations 88

4.8.2 The Logic of Falsifiability 89

4.8.3 Problems with Falsifiability 90

4.9 Scientific Revolutions 90

4.10 Other Alternatives 91

4.11 CS and Science 91

4.11.1 Is CS a Science? 91

4.11.2 What Kind of Science Might CS Be? 92

4.12 Questions to Think About 93

5 Engineering 95

5.1 Defining 'Engineering' 95

5.2 Engineering as Science 97

5.3 A Brief History of Engineering 98

5.4 Conceptions of Engineering 99

5.5 What Engineers Do 100

5.5.1 Engineering as Design 100

5.5.2 Engineering as Building 100

5.6 The Engineering Method 101

5.7 Software Engineering 102

5.8 CS and Engineering 104

5.9 Questions to Think About 105

6 Computers: A Brief History 107

6.1 Introduction 107

6.2 Would You Like to Be a Computer? 108

6.3 Two Histories of Computers 109

6.4 The Engineering History 109

6.4.1 Ancient Greece 109

6.4.2 Seventeenth Century Calculating Machines 110

6.4.3 Babbage's Machines 110

6.4.4 Electronic Computers 111

6.4.5 Modern Computers 112

6.5 The Scientific History 113

6.6 The Histories Converge 116

6.7 What Is a Computer? 116

6.7.1 An Engineering Answer 116

6.7.2 A Scientific Answer 117

7 Algorithms and Computability 119

7.1 Introduction 119

7.2 Functions and Computation 120

7.2.1 Mathematical Functions 120

7.2.2 Functions Described Extensionally 121

7.2.3 Functions Described Intensionally 123

7.2.4 Function "Machines" 125

7.2.5 Computable Functions 126

7.3 'Algorithm' Made Precise 128

7.3.1 Ancient Algorithms 128

7.3.2 "Effectiveness" 128

7.3.3 Three Attempts at Precision 129

7.4 Five Great Insights of CS 134

7.4.1 Insight 1: Representation 134

7.4.2 Insight 2: Processing 135

7.4.3 Insight 3: Structure 136

7.4.3.1 Structured Programming (I) 136

7.4.3.2 Digression - Recursive Definitions 137

7.4.3.3 Structured Programming (II) 138

7.4.4 Insight 4: The Church-Turing Computability Thesis 139

7.4.5 Insight 5: Implementation 141

7.5 Structured Programming 142

7.5.1 Basic Programs 142

7.5.2 Program Constructors 143

7.5.3 Classification of Structured Programs 144

7.6 Recursive Functions 144

7.6.1 A Recursive Definition of Natural Numbers 144

7.6.2 Recursive Definitions of Recursive Functions 145

7.6.3 Classification of Recursive Functions 149

7.7 Non-Computable Functions 150

7.7.1 The Halting Problem 150

7.7.2 Proof Sketch that H Is Not Computable 153

7.8 Summary 155

7.9 Questions for the Reader 155

8 Turing's Analysis of Computation 157

8.1 Introduction 157

8.2 Slow and Active Reading 158

8.3 Title: "The Entscheidungsproblem" 158

8.4 Paragraph 1 159

8.4.1 " 'Computable' Numbers" 159

8.4.2 "Written By a Machine" 160

8.5 Paragraph 2 160

8.5.1 "Naturally Regarded as Computable" 160

8.5.2 "Definable Numbers" 161

8.6 Section 1, Paragraph 1: "Computing Machines" 161

8.7 Section 9: "The Extent of the Computable Numbers" 162

8.7.1 Turing's Computability Thesis 162

8.7.2 "Writing Symbols on Paper" 163

8.7.3 States of Mind 166

8.7.4 Operations 167

8.7.5 Another "Simple Operation" 169

8.7.6 "Immediate Recognisability" 169

8.7.7 Summary of Operations 170

8.7.8 "States of Mind" 170

8.7.9 Turing Machines, Turing's Thesis, and AI 172

8.8 "Computing Machines" 174

8.8.1 "Man" and "Machine" 175

8.8.2 Closure Clause: Turing's Thesis 178

8.9 Section 2: "Definitions" 178

8.9.1 "Automatic Machines" 178

8.9.2 "Choice Machines" 179

8.9.3 "Computing Machines" 179

8.9.4 "Complete Configurations" 180

8.9.5 "Circular and Circle-Free Machines" 181

8.9.6 "Circular" Machines 182

8.9.7 "Computable Sequences and Numbers" 183

8.10 Section 3: "Examples of Computing Machines" 184

8.10.1 Example I 184

8.10.2 Example II, Paragraph 1 189

8.10.3 Example II, Paragraph 2 192

8.11 Section 4: "Abbreviated Tables" 195

8.12 Section 5: "Enumeration of Computable Sequences" 196

8.13 Section 6: "The Universal Computing Machine" 201

8.14 The Rest of Turing's Paper 203

9 Computers: A Philosophical Perspective 204

9.1 What Is a Computer? 204

9.2 Informal Definitions 206

9.2.1 Reference-Book Definitions 206

9.2.2 John von Neumann's Definition 206

9.2.3 Arthur Samuel's Definition 207

9.2.4 Martin Davis's Characterization 208

9.2.5 Summary 208

9.3 Computers, Turing Machines, and Universal Turing Machines 210

9.3.1 Computers as Turing Machines 210

9.3.2 Stored Program vs. Programmable 211

9.4 John Searle's "Pancomputationalism": Everything Is a Computer 212

9.4.1 Searle's Argument 212

9.4.2 Computers Are Described in Terms of 0s and 1s 213

9.4.3 Being a Computer Is a Syntactic Property 214

9.4.4 Being a Computer Is Not an Intrinsic Property of Physical Objects 216

9.4.5 We Can Ascribe the Property of Being a Computer to Any Object 217

9.4.6 Everything Is a Computer 218

9.5 Patrick Hayes: Computers as Magic Paper 220

9.6 Gualtiero Piccinini: Computers as Digital String Manipulators 223

9.6.1 Definition P1 224

9.6.2 Definition P2 225

9.7 What Else Might Be a Computer? 226

9.7.1 Is a Brain a Computer? 226

9.7.2 Is the Universe a Computer? 228

9.8 Conclusion 232

9.9 Questions for the Reader 233

Part III The Church-Turing Computability Thesis 237

10 Procedures 239

10.1 Introduction 239

10.2 The Church-Turing Computability Thesis 240

10.3 What Is a Procedure? 243

10.4 Carol Cleland: Some Effective Procedures Are Not Turing Machines 244

10.5 Beth Preston: Recipes, Algorithms, and Specifications 249

10.6 Summary 251

10.7 Questions for the Reader 252

11 Hypercomputation 253

11.1 Introduction 253

11.2 Generic Computation 255

11.3 Non-Euclidean Geometries and "Non-Turing Computations" 255

11.4 Hypercomputation 256

11.5 "Newer Physics" Hypercomputers 257

11.6 Analog Recurrent Neural Networks 258

11.7 Objections to Hypercomputation 258

11.8 Interactive Computation 259

11.8.1 "Internal" vs. "External" Inputs 259

11.8.2 Batch vs. Online Processing 259

11.8.3 Peter Wegner: Interaction Is Not Turing-Computable 260

11.8.4 Can Interaction Be Simulated by a Non-Interactive Turing Machine? 263

11.8.4.1 The Power of Interaction 263

11.8.4.2 Simulating a Halting Interaction Machine 263

11.8.4.3 Simulating a Non-Halting Interaction Machine 265

11.9 Oracle Computation 266

11.10 Trial-and-Error Computation 270

11.10.1 Introduction 270

11.10.2 Does "Intelligence" Require Trial-and-Error Machines? 273

11.10.3 Inductive Inference 276

11.11 Summary 276

11.12 Questions for the Reader 278

Part IV Computer Programs 281

12 Software and Hardware 283

12.1 The Nature of Computer Programs 283

12.2 Programs and Algorithms 284

12.3 Software, Programs, and Hardware 285

12.3.1 Etymology of 'Software' 285

12.3.2 Software and Music 286

12.3.3 The Dual Nature of Programs 286

12.3.4 Copyright vs. Patent 287

12.4 Moor: Software Is Changeable 290

12.4.1 Levels of Understanding 290

12.4.2 Programs Are Relative to Computers 290

12.4.3 Instructions 291

12.4.4 "Following Instructions." 292

12.4.5 Moor's Definitions of 'Software' and 'Hardware.' 293

12.5 Suber: Software Is Pattern 294

12.6 Colburn: Software Is a Concrete Abstraction 297

12.7 Summary 299

12.8 Questions for the Reader 299

13 Implementation 301

13.1 Introduction 301

13.1.1 Implementation vs. Abstraction 302

13.1.2 Implementations as Role Players 303

13.1.3 Abstract Data Types 303

13.1.4 The Structure of Implementation 304

13.2 Implementation as Semantic Interpretation 305

13.2.1 What Kind of Relation Is Implementation? 305

13.2.2 Semantic Interpretation 306

13.2.2.1 Formal Systems 307

13.2.2.2 Syntax 307

13.2.2.3 Semantic Interpretation 308

13.2.3 Two Modes of Understanding 310

13.3 Chalmers's Theory of Implementation 313

13.3.1 Introduction 313

13.3.2 An Analysis of Chalmers's Theory 313

13.3.3 Rescorla's Analysis of Chalmers's Theory 317

14 Computer Programs as Scientific Theories 321

14.1 Introduction 321

14.2 Simulations 322

14.2.1 Simulation vs. Emulation 322

14.2.2 Simulation vs. Imitation 323

14.2.3 Models 323

14.2.4 Theories 324

14.3 Computer Programs Are Theories 325

14.3.1 Introduction 325

14.3.2 Simon and Newell's Argument from Analogies 327

14.3.3 Simon's Argument from Prediction 329

14.3.4 Daubert vs. Merrell-Dow 330

14.4 Computer Programs Aren't Theories 331

14.4.1 Moor's Objections 331

14.4.2 Thagard's Objections 333

15 Computer Programs as Mathematical Objects 336

15.1 Introduction 336

15.1.1 Bugs and Intended Behavior 336

15.1.2 Proofs and Programs 337

15.2 Theorem Verification 340

15.2.1 Theorems and Proofs 340

15.2.2 Programs and Proofs 341

15.2.3 Programs, Proofs, and Formal Systems 343

15.3 Program Verification 344

15.3.1 Introduction and Some History 344

15.3.2 Program Verification by Pre- and Post-Conditions 345

15.3.3 The Value of Program Verification 346

15.4 The Fetzer Controversy 347

15.4.1 Fetzer's Argument against Program Verification 347

15.4.2 The Controversy 350

15.4.3 Barwise's Attempt at Mediation 351

15.5 The Program-Verification Debate: Summary 352

15.6 Program Verification, Models, and the World 354

15.6.1 "Being Correct" vs. "Doing What's Intended" 354

15.6.2 Models: Putting the World into Computers 354

16 Programs and the World 360

16.1 Introduction 360

16.2 Internal vs. External Behavior: Some Examples 361

16.3 Two Views of Computation 364

16.4 Inputs, Turing Machines, and Outputs 365

16.4.1 Introduction 365

16.4.2 The Turing Machine Tape as Input-Output Device 365

16.4.3 Are Inputs Needed? 366

16.4.4 Are Outputs Needed? 367

16.4.5 When Are Inputs and Outputs Needed? 367

16.4.6 Must Inputs and Outputs Be Interpreted Alike? 368

16.4.7 Linking the Tape to the External World 370

16.5 Are Programs Teleological? 370

16.6 Algorithms Do Need a Purpose 371

16.7 Algorithms Don't Need a Purpose 373

16.8 Algorithms and Goals 375

16.9 Computing with Symbols or with Their Meanings 377

16.10 Syntactic, Internal, and Indigenous Semantics 380

16.10.1 Syntax vs. Semantics 380

16.10.2 Syntactic Semantics 380

16.10.3 Syntactic Semantics and Procedural Abstraction 382

16.10.4 Internalization 383

16.11 Content and Computation 384

16.11.1 Introduction 384

16.11.2 Symbols: Marks vs. Meanings 385

16.11.3 Shagrir's "Master Argument" 388

16.12 Summary 390

16.13 Questions for the Reader 391

Part V Computer Ethics and Artificial Intelligence 393

17 Computer Ethics I: Should We Trust Computers? 395

17.1 Introduction 395

17.2 Decisions and Computers 395

17.3 Are Computer Decisions Rational? 397

17.4 Should Computers Make Decisions for Us? 398

17.5 Should Computers Make Decisions with Us? 399

17.6 Should We Trust Decisions Computers Make? 400

17.6.1 The Bias Problem 400

17.6.2 The Black-Box Problem 401

17.7 Are There Decisions Computers Must Make for Us? 403

17.8 Are There Decisions Computers Shouldn't Make? 404

17.9 Questions for the Reader 405

18 Philosophy of Artificial Intelligence 407

18.1 Introduction 407

18.2 What Is AI? 407

18.2.1 Definitions and Goals of AI 407

18.2.2 Artificial Intelligence as Computational Cognition 408

18.3 The Turing Test 409

18.3.1 How Computers Can Think 409

18.3.2 The Imitation Game 410

18.3.3 Thinking vs. "Thinking" 412

18.4 Digression: The "Lovelace Objection" 415

18.5 Digression: Turing on Intelligent Machinery 417

18.6 The Chinese Room Argument 418

18.7 The Argument from Biology 420

18.7.1 Causal Powers 420

18.7.2 The Implementation Counterargument 421

18.8 The Argument from Semantics 422

18.8.1 The Premises 422

18.8.2 Which Premise Is at Fault? 423

18.8.3 Semiotics 424

18.8.4 Points of View 426

18.8.5 A Recursive Theory of Understanding 429

18.9 Leibniz's Mill and Turing's "Strange Inversion" 430

18.10 A Better Way 435

18.11 Questions for Discussion 436

19 Computer Ethics II: Should We Build Artificial Intelligences? 438

19.1 Introduction 438

19.2 Is AI Possible in Principle? 439

19.3 What Is a Person? 440

19.4 Rights 442

19.5 Responsibilities 443

19.6 Personal AIs and Morality 445

19.7 Are We Personal AIs? 445

19.8 Questions for the Reader 446

Part VI Closing Remarks 449

20 Computer Science: A Personal View 451

20.1 Introduction 451

20.2 Computer Science and Elephants 452

20.3 Five Central Questions of CS 454

20.3.1 Computability 454

20.3.2 Efficient Computability 456

20.3.3 Practical Computability 457

20.3.4 Physical Computability 458

20.3.5 Ethical Computability 458

20.4 Wing's Five Questions 459

20.5 Conclusion 460

Bibliography 461

Index 495
William J. Rapaport is CSE Eminent Professor Emeritus in the Department of Computer Science and Engineering and an affiliated faculty member emeritus in the Departments of Philosophy and of Linguistics at the University at Buffalo, The State University of New York. He is a recipient of the Barwise Prize of the American Philosophical Association, the Covey Award of the International Association for Computing and Philosophy, and the SUNY Chancellor's Award for Excellence in Teaching.