Introduction to Programming in Python: An Interdisciplinary Approach, 1st edition

Published by Addison-Wesley Professional (June 2, 2015) © 2015

  • Robert Sedgewick Princeton University
  • Kevin Wayne
  • Robert Dondero


per month

  • Anytime, anywhere learning with the Pearson+ app
  • Easy-to-use search, navigation and notebook
  • Simpler studying with flashcards

Introduction to Programming in Python: An Interdisciplinary Approach emphasizes interesting and important problems, not toy applications. The authors focus on Python's most useful and significant features, rather than aiming for exhaustive coverage that bores novices. All of this book's code has been crafted and tested for compatibility with both Python 2 and Python 3, making it relevant to every programmer and any course, now and for many years to come.

An extensive amount of supplementary information is available at With source code, I/O libraries, solutions to selected exercises, and much more, this companion website empowers people to use their own computers to teach and learn the material.

  • A broad-based, applications-based approach: teaches Python through examples from science, mathematics, engineering, and commercial computing
  • Focuses on what matters most: the most useful and important Python language features
  • Teaches through code tested for compatibility with Python 2.x and Python 3.x
  • Includes question-and-answer sections, exercises, and creative exercises throughout

Preface xiii


Chapter 1: Elements of Programming 1

1.1 Your First Program 2

1.2 Built-in Types of Data 14

1.3 Conditionals and Loops 56

1.4 Arrays 100

1.5 Input and Output 140

1.6 Case Study: Random Web Surfer 188


Chapter 2: Functions and Modules 209

2.1 Defining Functions 210

2.2 Modules and Clients 248

2.3 Recursion 290

2.4 Case Study: Percolation 322


Chapter 3: Object-Oriented Programming 351

3.1 Using Data Types 352

3.2 Creating Data Types 402

3.3 Designing Data Types 450

3.4 Case Study: N-Body Simulation 496


Chapter 4: Algorithms and Data Structures 511

4.1 Performance 512

4.2 Sorting and Searching 556

4.3 Stacks and Queues 590

4.4 Symbol Tables 634

4.5 Case Study: Small-World Phenomenon 684


Context 729


Glossary 733

Index 739


Each section concludes with Q&A and Exercises.

Robert Sedgewick is the William O. Baker professor of computer science at Princeton University. He has held visiting research positions at several advanced research laboratories and serves on the Adobe Systems board. He is also the coauthor (with Kevin Wayne) of Introduction to Programming in Java and Algorithms, Fourth Edition (both from Addison-Wesley).

Kevin Wayne is the Phillip Y. Goldman senior lecturer in computer science at Princeton University, where he has taught since 1998. He is an ACM Distinguished Educator and holds a Ph.D. in operations research and industrial engineering

from Cornell University.

Robert Dondero is a lecturer in computer science at Princeton University. He has taught there since 2001, earning eight excellence in engineering education awards, and a lifetime achievement award for excellence in teaching. He holds

a Ph.D. in information science and technology from Drexel University.

Need help? Get in touch


All in one place. Pearson+ offers instant access to eTextbooks, videos and study tools in one intuitive interface. Students choose how they learn best with enhanced search, audio and flashcards. The Pearson+ app lets them read where life takes them, no wi-fi needed. Students can access Pearson+ through a subscription or their MyLab or Mastering course.

Privacy and cookies
By watching, you agree Pearson can share your viewership data for marketing and analytics for one year, revocable by deleting your cookies.

Pearson eTextbook: What’s on the inside just might surprise you

They say you can’t judge a book by its cover. It’s the same with your students. Meet each one right where they are with an engaging, interactive, personalized learning experience that goes beyond the textbook to fit any schedule, any budget, and any lifestyle.