• 1-800-526-8630U.S. (TOLL FREE)
  • 1-917-300-0470EAST COAST U.S.
  • +353-1-416-8900REST OF WORLD
Introduction to Computer Science Using Python. A Computational Problem-Solving Focus - Product Image

Introduction to Computer Science Using Python. A Computational Problem-Solving Focus

  • ID: 2244087
  • January 2013
  • 612 Pages
  • John Wiley and Sons Ltd

Introduction to Computer Science Using Python: A Computational Problem-Solving Focus,recommended by Guido van Rossum, the creator of Python (“This is not your average Python book…I think this book is a great text for anyone teaching CS1”). With a focus on computational problem solving from Chapter 1, this text provides numerous hands-on exercises and examples, each chapter ending with a significant-size program demonstrating the step-by-step process of program development, testing, and debugging. A final chapter includes the history of computing, starting with Charles Babbage, containing over 65 historical images. An end-of-book Python 3 Programmers’ Reference is also included for quick lookup of Python details. Extensive instructor materials are provided for those adopting for classroom use, including an instructors’ manual, over 1,000 well-developed slides covering all fundamental topics of each chapter, source code, and test bank.

Preface xxi

Acknowledgments xxv

About the Author xxvii

1 Introduction 1

MOTIVATION 2

FUNDAMENTALS 2

1.1 What Is Computer Science? 2

1.2 Computer Algorithms 6

1.3 Computer Hardware 9

1.4 Computer Software 14

COMPUTATIONAL PROBLEM SOLVING 17

1.5 The Process of Computational Problem Solving 17

1.6 The Python Programming Language 22

1.7 A First Program—Calculating the Drake Equation 29

Chapter Summary 33

Chapter Exercises 34

Python Programming Exercises 36

Program Modification Problems 37

Program Development Problems 37

2 Data and Expressions 38

MOTIVATION 39

FUNDAMENTAL CONCEPTS 40

2.1 Literals 40

2.2 Variables and Identifiers 50

2.3 Operators 57

2.4 Expressions and Data Types 61

COMPUTATIONAL PROBLEM SOLVING 67

2.5 Age in Seconds Program 67

Chapter Summary 74

Chapter Exercises 74

Python Programming Exercises 76

Program Modification Problems 76

Program Development Problems 77

3 Control Structures 79

MOTIVATION 80

FUNDAMENTAL CONCEPTS 80

3.1 What Is a Control Structure? 80

3.2 Boolean Expressions (Conditions) 81

3.3 Selection Control 89

COMPUTATIONAL PROBLEM SOLVING 104

3.5 Calendar Month Program 104

Chapter Summary 117

Chapter Exercises 118

Python Programming Exercises 120

Program Modification Problems 121

Program Development Problems 123

4 Lists 125

MOTIVATION 126

FUNDAMENTAL CONCEPTS 127

4.1 List Structures 127

4.2 Lists (Sequences) in Python 130

4.3 Iterating Over Lists (Sequences) in Python 137

4.4 More on Python Lists 144

COMPUTATIONAL PROBLEM SOLVING 147

4.5 Calendar Year Program 147

Chapter Summary 161

Chapter Exercises 162

Python Programming Exercises 164

Program Modification Problems 164

Program Development Problems 165

5 Functions 168

MOTIVATION 169

FUNDAMENTAL CONCEPTS 169

5.1 Program Routines 169

5.2 More on Functions 176

COMPUTATIONAL PROBLEM SOLVING 189

5.3 Credit Card Calculation Program 189

Chapter Summary 202

Chapter Exercises 202

Python Programming Exercises 203

Program Modification Problems 204

Program Development Problems 204

6 Objects and Their Use 206

MOTIVATION 207

FUNDAMENTAL CONCEPTS 207

6.1 Software Objects 207

6.2 Turtle Graphics 216

COMPUTATIONAL PROBLEM SOLVING 229

6.3 Horse Race Simulation Program 229

Chapter Summary 243

Chapter Exercises 243

Python Programming Exercises 244

Program Modification Problems 245

Program Development Problems 246

7 Modular Design 247

MOTIVATION 248

FUNDAMENTAL CONCEPTS 248

7.1 Modules 248

7.2 Top-Down Design 251

7.3 Python Modules 255

7.3.1 What Is a Python Module? 255

COMPUTATIONAL PROBLEM SOLVING 269

7.4 Calendar Year Program (function version) 269

Chapter Summary 284

Chapter Exercises 284

Python Programming Exercises 286

Program Modification Problems 287

Program Development Problems 287

8 Text Files 289

MOTIVATION 290

FUNDAMENTAL CONCEPTS 290

8.1 What Is a Text File? 290

8.2 Using Text Files 291

8.3 String Processing 296

8.4 Exception Handling 303

COMPUTATIONAL PROBLEM SOLVING 314

8.5 Cigarette Use/Lung Cancer Correlation Program 314

Chapter Summary 331

Chapter Exercises 332

Python Programming Exercises 333

Program Modification Problems 333

Program Development Problems 334

9 Dictionaries and Sets 337

MOTIVATION 338

FUNDAMENTAL CONCEPTS 338

9.1 Dictionary Type in Python 338

9.2 Set Data Type 346

COMPUTATIONAL PROBLEM SOLVING 356

9.3 A Food Co-op’s Worker Scheduling Simulation 356

Chapter Summary 379

Chapter Exercises 379

Python Programming Exercises 380

Program Modification Problems 380

Program Development Problems 381

10 Object-Oriented Programming 383

MOTIVATION 384

FUNDAMENTAL CONCEPTS 384

10.1 What Is Object-Oriented Programming? 384

10.2 Encapsulation 386

10.3 Inheritance 400

10.4 Polymorphism 411

10.5 Object-Oriented Design Using UML 417

COMPUTATIONAL PROBLEM SOLVING 423

10.6 Vehicle Rental Agency Program 423

Chapter Summary 453

Chapter Exercises 454

Python Programming Exercises 455

Program Modification Problems 456

Program Development Problems 457

11 Recursion 460

MOTIVATION 461

FUNDAMENTAL CONCEPTS 461

11.1 Recursive Functions 461

11.2 Recursive Problem Solving 472

11.3 Iteration vs. Recursion 476

COMPUTATIONAL PROBLEM SOLVING 477

11.4 Towers of Hanoi 477

Chapter Summary 487

Chapter Exercises 487

Python Programming Exercises 488

Program Modification Problems 489

Program Development Problems 490

12 Computing and Its Developments 491

CONTRIBUTIONS TO THE MODERN COMPUTER 492

12.1 The Concept of a Programmable Computer 492

12.2 Developments Leading to Electronic Computing 493

FIRST-GENERATION COMPUTERS (1940s–mid-1950s) 496

12.3 The Early Groundbreakers 496

12.4 The First Commercially Available Computers 503

SECOND-GENERATION COMPUTERS (mid-1950s to mid-1960s) 505

12.5 Transistorized Computers 505

12.6 The Development of High-Level Programming Languages 506

THIRD-GENERATION COMPUTERS (mid-1960s to early 1970s) 508

12.7 The Development of the Integrated Circuit (1958) 508

12.8 Mainframes, Minicomputers, and Supercomputers 512

FOURTH-GENERATION COMPUTERS (early 1970s to the Present) 515

12.9 The Rise of the Microprocessor 515

12.10 The Dawn of Personal Computing 516

THE DEVELOPMENT OF COMPUTER NETWORKS 520

12.11 The Development of Wide Area Networks 520

12.12 The Development of Local Area Networks (LANs) 521

12.13 The Development of the Internet and World Wide Web 522

Appendix 525

Index 569

Note: Product cover images may vary from those shown

RELATED PRODUCTS

Our Clients

Our clients' logos