Always Learning

Advanced Search

Introduction to Programming in Java

Introduction to Programming in Java

An Interdisciplinary Approach
2nd Edition

Robert Sedgewick, Kevin Wayne

Apr 2017, Paperback, 784 pages
ISBN13: 9780672337840
ISBN10: 0672337843
Special online offer - Save 10%
Was 67.99, Now 41.39Save: 26.60
  • Print pagePrint page
  • Email this pageEmail page
  • Share

Programming skills are indispensable in today’s world, not just for computer science students, but also for anyone in any scientific or technical discipline. Introduction to Programming in Java, Second Edition, by Robert Sedgewick and Kevin Wayne is an accessible, interdisciplinary treatment that emphasizes important and engaging applications, not toy problems. The authors supply the tools needed for students and professionals to learn that programming is a natural, satisfying, and creative experience, and to become conversant with one of the world’s most widely used languages.

This example-driven guide focuses on Java’s most useful features and brings programming to life for every student in the sciences, engineering, and computer science.

Coverage includes

  • Basic elements of programming: variables, assignment statements, built-in data types, conditionals, loops, arrays, and I/O, including graphics and sound
  • Functions, modules, and libraries: organizing programs into components that can be independently debugged, maintained, and reused
  • Algorithms and data structures: sort/search algorithms, stacks, queues, and symbol tables
  • Applications from applied math, physics, chemistry, biology, and computer science

Drawing on their extensive classroom experience, throughout the text the authors provide Q&As, exercises, and opportunities for creative engagement with the material. Together with the companion materials described below, this book empowers people to pursue a modern approach to teaching and learning programming.

Companion web site ( contains

  • Chapter summaries
  • Supplementary exercises, some with solutions
  • Detailed instructions for installing a Java programming environment
  • Program code and test data suitable for easy download
  • Detailed creative exercises, projects, and other supplementary materials

Companion studio-produced online videos ( are available for purchase and provide students and professionals with the opportunity to engage with the material at their own pace and give instructors the opportunity to spend their time with students helping them to succeed on assignments and exams.

Programs viii

Preface xi

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

Context 715

Glossary 721

Index 729

APIs 751

  • The ideal beginner's introduction to Java programming -- now fully updated for Java 8
  • An applications-based approach: learn through meaningful real-world examples from science, mathematics, engineering, and commercial computing
  • Focuses on what matters: the important and useful language features you absolutely need to know
  • Adds updated coverage of the Java 64-bit memory model, dynamic and functional programming, hashing, and more -- including a brand-new glossary
  • 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

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.