Introduction to Computer Science Using Python A Computational Problem Solving Focus 1st Edition Charles Dierbach pdf download
Introduction to Computer Science Using Python A Computational Problem Solving Focus 1st Edition Charles Dierbach pdf download
https://ebookfinal.com/download/introduction-to-computer-science-
using-python-a-computational-problem-solving-focus-1st-edition-
charles-dierbach/
https://ebookfinal.com/download/practical-programming-an-introduction-
to-computer-science-using-python-3-second-edition-paul-gries/
https://ebookfinal.com/download/problem-solving-in-data-structures-
algorithms-using-python-programming-interview-guide-1st-edition-
hemant-jain/
https://ebookfinal.com/download/puzzles-paradoxes-and-problem-solving-
an-introduction-to-mathematical-thinking-1st-edition-marilyn-a-reba/
Java An Introduction to Problem Solving and Programming
7th Edition Walter Savitch
https://ebookfinal.com/download/java-an-introduction-to-problem-
solving-and-programming-7th-edition-walter-savitch/
https://ebookfinal.com/download/introduction-to-electrical-and-
computer-engineering-charles-byrns-fleddermann/
https://ebookfinal.com/download/problem-solving-abstraction-and-
design-using-c-6th-edition-frank-l-friedman/
https://ebookfinal.com/download/an-introduction-to-statistical-
problem-solving-in-geography-third-edition-j-chapman-mcgrew-jr/
https://ebookfinal.com/download/fundamentals-of-computer-science-
using-java-1st-edition-david-hughes/
Introduction to Computer Science Using Python A
Computational Problem Solving Focus 1st Edition
Charles Dierbach Digital Instant Download
Author(s): Charles Dierbach
ISBN(s): 9780470555156, 0470555157
Edition: 1
File Details: PDF, 51.80 MB
Year: 2012
Language: english
Introduction to Computer
Science Using Python:
A Computational
Problem-Solving Focus
This page is intentionally left blank
Introduction to Computer
Science Using Python:
A Computational
Problem-Solving Focus
Charles Dierbach
VP & Executive Publisher: Don Fowley
Executive Editor: Beth Lang Golub
Assistant Editor: Samantha Mandel
Marketing Manager: Christopher Ruel
Marketing Assistant: Ashley Tomeck
Photo Editor: Hilary Newman
Cover Designer: Thomas Nery
Associate Production Manager: Joyce Poh
Production Editor: Jolene Ling
Cover Illustration: Norm Christiansen
This book was set in 10/12 Times LT Std by Aptara. Text and cover were printed and bound by Courier Kendallville.
Founded in 1807, John Wiley & Sons, Inc. has been a valued source of knowledge and understanding for more than 200 years,
helping people around the world meet their needs and fulfill their aspirations. Our company is built on a foundation of
principles that include responsibility to the communities we serve and where we live and work. In 2008, we launched a
Corporate Citizenship Initiative, a global effort to address the environmental, social, economic, and ethical challenges we
face in our business. Among the issues we are addressing are carbon impact, paper specifications and procurement, ethical
conduct within our business and among our vendors, and community and charitable support. For more information, please
visit our website: www.wiley.com/go/citizenship.
Copyright © 2013 John Wiley & Sons, Inc. All rights reserved. No part of this publication may be reproduced, stored in a
retrieval system or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, scanning or
otherwise, except as permitted under Sections 107 or 108 of the 1976 United States Copyright Act, without either the prior
written permission of the Publisher, or authorization through payment of the appropriate per-copy fee to the Copyright
Clearance Center, Inc. 222 Rosewood Drive, Danvers, MA 01923, website www.copyright.com. Requests to the Publisher
for permission should be addressed to the Permissions Department, John Wiley & Sons, Inc., 111 River Street, Hoboken, NJ
07030-5774, (201)748-6011, fax (201)748-6008, website http://www.wiley.com/go/permissions.
Evaluation copies are provided to qualified academics and professionals for review purposes only, for use in their courses
during the next academic year. These copies are licensed and may not be sold or transferred to a third party. Upon
completion of the review period, please return the evaluation copy to Wiley. Return instructions and a free of charge return
mailing label are available at www.wiley.com/go/returnlabel. If you have chosen to adopt this textbook for use in your
course, please accept this book as your complimentary desk copy. Outside of the United States, please contact your local
sales representative.
Preface xxi
Acknowledgments xxv
About the Author xxvii
1 Introduction 1
2 Data and Expressions 38
3 Control Structures 79
4 Lists 125
5 Functions 168
6 Objects and Their Use 206
7 Modular Design 247
8 Text Files 289
9 Dictionaries and Sets 337
10 Object-Oriented Programming 383
11 Recursion 460
12 Computing and Its Developments 491
Appendix 525
Index 569
vii
This page is intentionally left blank
Contents
Preface xxi
Acknowledgments xxv
About the Author xxvii
1 Introduction 1
MOTIVATION 2
FUNDAMENTALS 2
1.1 What Is Computer Science? 2
1.1.1 The Essence of Computational Problem Solving 3
1.1.2 Limits of Computational Problem Solving 5
Self-Test Questions 6
1.2 Computer Algorithms 6
1.2.1 What Is an Algorithm? 6
1.2.2 Algorithms and Computers: A Perfect Match 7
Self-Test Questions 8
1.3 Computer Hardware 9
1.3.1 Digital Computing: It’s All about Switches 9
1.3.2 The Binary Number System 10
1.3.3 Fundamental Hardware Components 11
1.3.4 Operating Systems—Bridging Software and Hardware 11
1.3.5 Limits of Integrated Circuits Technology: Moore’s Law 12
Self-Test Questions 13
1.4 Computer Software 14
1.4.1 What Is Computer Software? 14
1.4.2 Syntax, Semantics, and Program Translation 14
1.4.3 Procedural vs. Object-Oriented Programming 17
Self-Test Questions 17
COMPUTATIONAL PROBLEM SOLVING 17
1.5 The Process of Computational Problem Solving 17
1.5.1 Problem Analysis 18
1.5.2 Program Design 19
1.5.3 Program Implementation 21
1.5.4 Program Testing 21
ix
x Contents
MOTIVATION 39
FUNDAMENTAL CONCEPTS 40
2.1 Literals 40
2.1.1 What Is a Literal? 40
2.1.2 Numeric Literals 40
2.1.3 String Literals 44
2.1.4 Control Characters 46
2.1.5 String Formatting 47
2.1.6 Implicit and Explicit Line Joining 48
2.1.7 Let’s Apply It—“Hello World Unicode Encoding” 48
Self-Test Questions 49
2.2 Variables and Identifiers 50
2.2.1 What Is a Variable? 50
2.2.2 Variable Assignment and Keyboard Input 52
2.2.3 What Is an Identifier? 53
2.2.4 Keywords and Other Predefined Identifiers in Python 54
2.2.5 Let’s Apply It—“Restaurant Tab Calculation” 55
Self-Test Questions 56
2.3 Operators 57
2.3.1 What Is an Operator? 57
2.3.2 Arithmetic Operators 57
2.3.3 Let’s Apply It—“Your Place in the Universe” 59
Self-Test Questions 60
2.4 Expressions and Data Types 61
2.4.1 What Is an Expression? 61
2.4.2 Operator Precedence 61
2.4.3 Operator Associativity 63
Contents xi
3 Control Structures 79
MOTIVATION 80
FUNDAMENTAL CONCEPTS 80
3.1 What Is a Control Structure? 80
3.2 Boolean Expressions (Conditions) 81
3.2.1 Relational Operators 81
3.2.2 Membership Operators 82
3.2.3 Boolean Operators 83
3.2.4 Operator Precedence and Boolean Expressions 85
3.2.5 Short-Circuit (Lazy) Evaluation 86
3.2.6 Logically Equivalent Boolean Expressions 87
Self-Test Questions 88
3.3 Selection Control 89
3.3.1 If Statement 89
3.3.2 Indentation in Python 90
3.3.3 Multi-Way Selection 91
3.3.4 Let’s Apply It—Number of Days in Month Program 94
Self-Test Questions 96
3.4 Iterative Control 96
3.4.1 While Statement 97
3.4.2 Input Error Checking 98
3.4.3 Infinite loops 99
3.4.4 Definite vs. Indefinite Loops 100
3.4.5 Boolean Flags and Indefinite Loops 100
3.4.6 Let’s Apply It—Coin Change Exercise Program 101
Self-Test Questions 104
COMPUTATIONAL PROBLEM SOLVING 104
3.5 Calendar Month Program 104
3.5.1 The Problem 104
xii Contents
4 Lists 125
MOTIVATION 126
FUNDAMENTAL CONCEPTS 127
4.1 List Structures 127
4.1.1 What Is a List? 127
4.1.2 Common List Operations 127
4.1.3 List Traversal 128
Self-Test Questions 129
4.2 Lists (Sequences) in Python 130
4.2.1 Python List Type 130
4.2.2 Tuples 131
4.2.3 Sequences 132
4.2.4 Nested Lists 134
4.2.5 Let’s Apply It—A Chinese Zodiac Program 135
Self-Test Questions 137
4.3 Iterating Over Lists (Sequences) in Python 137
4.3.1 For Loops 137
4.3.2 The Built-in range Function 138
4.3.3 Iterating Over List Elements vs. List Index Values 139
4.3.4 While Loops and Lists (Sequences) 140
4.3.5 Let’s Apply It—Password Encryption/Decryption Program 141
Self-Test Questions 144
4.4 More on Python Lists 144
4.4.1 Assigning and Copying Lists 144
4.4.2 List Comprehensions 146
COMPUTATIONAL PROBLEM SOLVING 147
4.5 Calendar Year Program 147
4.5.1 The Problem 147
4.5.2 Problem Analysis 147
4.5.3 Program Design 148
4.5.4 Program Implementation and Testing 149
Chapter Summary 161
Chapter Exercises 162
Python Programming Exercises 164
Program Modification Problems 164
Program Development Problems 165
Contents xiii
5 Functions 168
MOTIVATION 169
FUNDAMENTAL CONCEPTS 169
5.1 Program Routines 169
5.1.1 What Is a Function Routine? 169
5.1.2 Defining Functions 170
5.1.3 Let’s Apply It—Temperature Conversion Program (Function Version) 173
Self-Test Questions 175
5.2 More on Functions 176
5.2.1 Calling Value-Returning Functions 176
5.2.2 Calling Non-Value-Returning Functions 177
5.2.3 Parameter Passing 178
5.2.4 Keyword Arguments in Python 181
5.2.5 Default Arguments in Python 183
5.2.6 Variable Scope 183
5.2.7 Let’s Apply It—GPA Calculation Program 186
Self-Test Questions 189
COMPUTATIONAL PROBLEM SOLVING 189
5.3 Credit Card Calculation Program 189
5.3.1 The Problem 189
5.3.2 Problem Analysis 190
5.3.3 Program Design 190
5.3.4 Program Implementation and Testing 191
Chapter Summary 202
Chapter Exercises 202
Python Programming Exercises 203
Program Modification Problems 204
Program Development Problems 204
MOTIVATION 207
FUNDAMENTAL CONCEPTS 207
6.1 Software Objects 207
6.1.1 What Is an Object? 208
6.1.2 Object References 209
Self-Test Questions 216
6.2 Turtle Graphics 216
6.2.1 Creating a Turtle Graphics Window 216
6.2.2 The “Default” Turtle 218
6.2.3 Fundamental Turtle Attributes and Behavior 219
6.2.4 Additional Turtle Attributes 222
6.2.5 Creating Multiple Turtles 225
xiv Contents
MOTIVATION 248
FUNDAMENTAL CONCEPTS 248
7.1 Modules 248
7.1.1 What Is a Module? 248
7.1.2 Module Specification 249
Self-Test Questions 251
7.2 Top-Down Design 251
7.2.1 Developing a Modular Design of the Calendar Year Program 251
7.2.2 Specification of the Calendar Year Program Modules 252
Self-Test Questions 255
7.3 Python Modules 255
7.3.1 What Is a Python Module? 255
7.3.2 Modules and Namespaces 256
7.3.3 Importing Modules 257
7.3.4 Module Loading and Execution 260
7.3.5 Local, Global, and Built-in Namespaces in Python 262
7.3.6 A Programmer-Defined Stack Module 264
7.3.7 Let’s Apply It—A Palindrome Checker Program 267
Self-Test Questions 268
COMPUTATIONAL PROBLEM SOLVING 269
7.4 Calendar Year Program (function version) 269
7.4.1 The Problem 269
7.4.2 Problem Analysis 269
7.4.3 Program Design 269
7.4.4 Program Implementation and Testing 269
Chapter Summary 284
Chapter Exercises 284
Python Programming Exercises 286
Program Modification Problems 287
Program Development Problems 287
Contents xv
MOTIVATION 290
FUNDAMENTAL CONCEPTS 290
8.1 What Is a Text File? 290
8.2 Using Text Files 291
8.2.1 Opening Text Files 291
8.2.2 Reading Text Files 293
8.2.3 Writing Text Files 294
Self-Test Questions 295
8.3 String Processing 296
8.3.1 String Traversal 296
8.3.2 String-Applicable Sequence Operations 296
8.3.3 String Methods 297
8.3.4 Let’s Apply It—Sparse Text Program 300
Self-Test Questions 303
8.4 Exception Handling 303
8.4.1 What Is an Exception? 303
8.4.2 The Propagation of Raised Exceptions 304
8.4.3 Catching and Handling Exceptions 305
8.4.4 Exception Handling and User Input 307
8.4.5 Exception Handling and File Processing 309
8.4.6 Let’s Apply It—Word Frequency Count Program 310
Self-Test Questions 314
COMPUTATIONAL PROBLEM SOLVING 314
8.5 Cigarette Use/Lung Cancer Correlation Program 314
8.5.1 The Problem 315
8.5.2 Problem Analysis 315
8.5.3 Program Design 316
8.5.4 Program Implementation and Testing 318
8.5.5 Determining the Correlation Between Smoking and Lung Cancer 331
Chapter Summary 331
Chapter Exercises 332
Python Programming Exercises 333
Program Modification Problems 333
Program Development Problems 334
MOTIVATION 338
FUNDAMENTAL CONCEPTS 338
9.1 Dictionary Type in Python 338
9.1.1 What Is a Dictionary? 339
9.1.2 Let’s Apply It—Phone Number Spelling Program 342
Self-Test Questions 346
xvi Contents
MOTIVATION 384
FUNDAMENTAL CONCEPTS 384
10.1 What Is Object-Oriented Programming? 384
10.1.1 What Is a Class? 385
10.1.2 Three Fundamental Features of Object-Oriented Programming 385
10.2 Encapsulation 386
10.2.1 What Is Encapsulation? 386
10.2.2 Defining Classes in Python 387
10.2.3 Let’s Apply It—A Recipe Conversion Program 394
Self-Test Questions 399
10.3 Inheritance 400
10.3.1 What Is Inheritance? 400
10.3.2 Subtypes 401
10.3.3 Defining Subclasses in Python 402
10.3.4 Let’s Apply It—A Mixed Fraction Class 407
Self-Test Questions 411
10.4 Polymorphism 411
10.4.1 What Is Polymorphism? 411
10.4.2 The Use of Polymorphism 414
Self-Test Questions 417
10.5 Object-Oriented Design Using UML 417
10.5.1 What Is UML? 417
10.5.2 UML Class Diagrams 418
Self-Test Questions 422
COMPUTATIONAL PROBLEM SOLVING 423
10.6 Vehicle Rental Agency Program 423
10.6.1 The Problem 423
Contents xvii
11 Recursion 460
MOTIVATION 461
FUNDAMENTAL CONCEPTS 461
11.1 Recursive Functions 461
11.1.1 What Is a Recursive Function? 461
11.1.2 The Factorial Function 464
11.1.3 Let’s Apply It—Fractals (Sierpinski Triangle) 467
Self-Test Questions 471
11.2 Recursive Problem Solving 472
11.2.1 Thinking Recursively 472
11.2.2 MergeSort Recursive Algorithm 472
11.2.3 Let’s Apply It—MergeSort Implementation 474
Self-Test Questions 476
11.3 Iteration vs. Recursion 476
COMPUTATIONAL PROBLEM SOLVING 477
11.4 Towers of Hanoi 477
11.4.1 The Problem 477
11.4.2 Problem Analysis 477
11.4.3 Program Design and Implementation 481
Chapter Summary 487
Chapter Exercises 487
Python Programming Exercises 488
Program Modification Problems 489
Program Development Problems 490
Quest. LXXX. Can true believers be infallibly assured that they are
in the estate of grace, and that they shall persevere therein unto
salvation?
Answ. Such as truly believe in Christ, and endeavour to walk in all
good conscience before him, may, without extraordinary
revelation, by faith grounded upon the truth of God’s promises,
and by the Spirit, enabling them to discern in themselves those
graces to which the promises of life are made, and bearing
witness with their spirits, that they are the children of God, be
infallibly assured that they are in a state of grace, and shall
persevere therein unto salvation.
Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.
ebookfinal.com