Computer Science: An Interdisciplinary Approach, 1st edition

Published by Addison-Wesley Professional (June 15, 2016) © 2016

  • Robert Sedgewick Princeton University
  • Kevin Wayne

eTextbook

per month

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

Today, learning to program and understanding the basics of computation isn't just indispensable for every science and engineering student: it's crucial for everyone who wants to understand the world they live in. In Computer Science: An Interdisciplinary Approach, pioneering Princeton computer science professors Robert Sedgewick and Kevin Wayne introduce core Java programming techniques in a scientific context, while also demystifying computation and illuminating its intellectual underpinnings.

Companion web site (introcs.cs.princeton.edu/java) contains

  • Extensive supplementary information, including suggested approaches to programming assignments, checklists, and FAQs
  • Graphics and sound libraries
  • Links to program code and test data
  • Solutions to selected exercises
  • Chapter summaries
  • Detailed instructions for installing a Java programming environment
  • Detailed problem sets and projects
  • A broad-based, applications-based approach: learn through important and interesting real-world examples from science, mathematics, engineering, and commercial computing
  • Covers elements of programming, functions, modules, object-orientation, algorithms, data structures, and much more
  • Demystifies computation and explains its intellectual underpinnings
  • Includes question-and-answer sections, exercises, and creative exercises throughout
  • From Robert Sedgewick and Kevin Wayne, co-authors of the global best-seller Algorithms and pioneering MOOC instructors who've reached hundreds of thousands of students worldwide
  • Complements the authors' Coursera MOOC on computer science
  • Named a Notable Book in the 21st Annual Best of Computing list by the ACM

This is an extensively expanded and deeply revised version of Sedgewick and Wayne's Introduction to Programming in Java: An Interdisciplinary Approach [9780321498052]; material from the earlier book will appear in the first half of this new text.

This new book will drive a companion Coursera course built on lectures given by the authors at Princeton University, currently in the final stages of obtaining approvals there.

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 50

1.4 Arrays 90

1.5 Input and Output 126

1.6 Case Study: Random Web Surfer 170

 

Chapter 2: Functions and Modules 191

2.1 Defining Functions 192

2.2 Libraries and Clients 226

2.3 Recursion 262

2.4 Case Study: Percolation 300

 

Chapter 3: Object-Oriented Programming 329

3.1 Using Data Types 330

3.2 Creating Data Types 382

3.3 Designing Data Types 428

3.4 Case Study: N-Body Simulation 478

 

Chapter 4: Algorithms and Data Structures 493

4.1 Performance 494

4.2 Sorting and Searching 532

4.3 Stacks and Queues 566

4.4 Symbol Tables 624

4.5 Case Study: Small-World Phenomenon 670

 

Chapter 5: Theory of Computing 715

5.1 Formal Languages 718

5.2 Turing Machines 766

5.3 Universality 786

5.4 Computability 806

5.5 Intractability 822

 

Chapter 6: A Computing Machine 873

6.1 Representing Information 874

6.2 TOY Machine 906

6.3 Machine-Language Programming 930

6.4 TOY Virtual Machine 958

 

Chapter 7: Building a Computing Device 985

7.1 Boolean Logic 986

7.2 Basic Circuit Model 1002

7.3 Combinational Circuits 1012

7.4 Sequential Circuits 1048

7.5 Digital Devices 1070

 

Context 1093

 

Glossary 1097

Index 1107

APIs 1139

Robert Sedgewick is the William O. Baker Professor of Computer Science at Princeton University, where he was founding chairman of the Department of Computer Science. He has held visiting research positions at Xerox PARC, Institute for Defense Analyses, and INRIA, and served on the board of directors at Adobe Systems. His research interests include analytic combinatorics, design and analysis of algorithms and data structures, and program visualization. He has written seventeen books.

Kevin Wayne is the Phillip Y. Goldman Senior Lecturer in Computer Science at Princeton University, where he has taught since 1998, earning several teaching awards. He is an ACM Distinguished Educator and holds a Ph.D. in operations research and industrial engineering from Cornell University.

Need help? Get in touch

Pearson+

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.

Video
Play
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.Â