Programming Pearls
41%
off

Programming Pearls

4.2 (2,573 ratings by Goodreads)
By (author) 

Free delivery worldwide

Available. Dispatched from the UK in 1 business day
When will my order arrive?

Description

"The first edition of Programming Pearls was one of the most influential books I read early in my career, and many of the insights I first encountered in that book stayed with me long after I read it. Jon has done a wonderful job of updating the material. I am very impressed at how fresh the new examples seem." --Steve McConnell When programmers list their favorite books, Jon Bentley's collection of programming pearls is commonly included among the classics. Just as natural pearls grow from grains of sand that irritate oysters, programming pearls have grown from real problems that have irritated real programmers. With origins beyond solid engineering, in the realm of insight and creativity, Bentley's pearls offer unique and clever solutions to those nagging problems. Illustrated by programs designed as much for fun as for instruction, the book is filled with lucid and witty descriptions of practical programming techniques and fundamental design principles. It is not at all surprising that Programming Pearls has been so highly valued by programmers at every level of experience.In this revision, the first in 14 years, Bentley has substantially updated his essays to reflect current programming methods and environments.
In addition, there are three new essays on / testing, debugging, and timing / set representations / string problems All the original programs have been rewritten, and an equal amount of new code has been generated. Implementations of all the programs, in C or C++, are now available on the Web. What remains the same in this new edition is Bentley's focus on the hard core of programming problems and his delivery of workable solutions to those problems. Whether you are new to Bentley's classic or are revisiting his work for some fresh insight, the book is sure to make your own list of favorites. 0201657880B04062001
show more

Product details

  • Paperback | 256 pages
  • 157.48 x 231.14 x 12.7mm | 362.87g
  • Addison Wesley
  • Boston, United States
  • English
  • 2nd edition
  • 0201657880
  • 9780201657883
  • 54,063

Back cover copy

"The first edition of Programming Pearls was one of the most influential books I read early in my career, and many of the insights I first encountered in that book stayed with me long after I read it. Jon has done a wonderful job of updating the material. I am very impressed at how fresh the new examples seem."
--Steve McConnell



When programmers list their favorite books, Jon Bentley's collection of programming pearls is commonly included among the classics. Just as natural pearls grow from grains of sand that irritate oysters, programming pearls have grown from real problems that have irritated real programmers. With origins beyond solid engineering, in the realm of insight and creativity, Bentley's pearls offer unique and clever solutions to those nagging problems. Illustrated by programs designed as much for fun as for instruction, the book is filled with lucid and witty descriptions of practical programming techniques and fundamental design principles. It is not at all surprising that Programming Pearls has been so highly valued by programmers at every level of experience.



In this revision, the first in 14 years, Bentley has substantially updated his essays to reflect current programming methods and environments. In addition, there are three new essays on
- testing, debugging, and timing
- set representations
- string problems
All the original programs have been rewritten, and an equal amount of new code has been generated. Implementations of all the programs, in C or C++, are now available on the Web.



What remains the same in this new edition is Bentley's focus on the hard core of programming problems and his delivery of workable solutions to those problems. Whether you are new to Bentley's classic or are revisiting his work for some fresh insight, the book is sure to make your own list of favorites.

0201657880B04062001
show more

Table of contents

I. PRELIMINARIES.

Column 1. Cracking the Oyster.


A Friendly Conversation.



Precise Problem Statement.



Program Design.



Implementation Sketch.



Principles.



Problems.



Further Reading.

Column 2. Aha! Algorithms.


Three Problems.



Ubiquitous Binary Search.



The Power of Primitives.



Getting It Together: Sorting.



Principles * Problems.



Further Reading.



Implementing an Anagram Program.

Column 3. Data Structures Programs.


A Survey Program.



Form-Letter Programming.



An Array of Examples.



Structuring Data.



Powerful Tools for Specialized Data.



Principles.



Problems.



Further Reading.

Column 4. Writing Correct Programs.


The Challenge of Binary Search.



Writing the Program.



Understanding the Program.



Principles.



The Roles of Program Verification.



Problems.



Further Reading.

Column 5. A Small Matter of Programming.


From Pseudocode to C.



A Test Harness.



The Art of Assertion.



Automated Testing.



Timing.



The Complete Program.



Principles.



Problems.



Further Reading.



Debugging.

II. PERFORMANCE.

Column 6. Perspective on Performance.


A Case Study.



Design Levels.



Principles.



Problems.



Further Reading.

Column 7. The Back of the Envelope.


Basic Skills.



Performance Estimates.



Safety Factors.



Little's Law.



Principles.



Problems.



Further Reading.



Quick Calculations in Everyday Life.

Column 8. Algorithm Design Techniques.


The Problem and a Simple Algorithm.



Two Quadratic Algorithms.



A Divide-and-Conquer Algorithm.



A Scanning Algorithm.



What Does It Matter?



Principles.



Problems.



Further Reading.

Column 9. Code Tuning.


A Typical Story.



A First Aid Sampler.



Major Surgery-Binary Search.



Principles.



Problems.



Further Reading.

Column 10. Squeezing Space.


The Key-Simplicity.



An Illustrative Problem.



Techniques for Data Space.



Techniques for Code Space.



Principles.



Problems.



Further Reading.



A Big Squeeze.

III. THE PRODUCT.

Column 11. Sorting.


Insertion Sort.



A Simple Quicksort.



Better Quicksorts.



Principles.



Problems.



Further Reading.

Column 12. A Sample Problem.


The Problem.



One Solution.



The Design Space.



Principles.



Problems.



Further Reading.

Column 13. Searching.


The Interface.



Linear Structures.



Binary Search Trees.



Structures for Integers.



Principles.



Problems.



Further Reading.



A Real Searching Problem.

Column 14. Heaps.


The Data Structure.



Two Critical Functions.



Priority Queues.



A Sorting Algorithm.



Principles.



Problems.



Further Reading.

Column 15. Strings of Pearls.


Words.



Phrases.



Generating Text.



Principles.



Problems.



Further Reading.

Epilog to the First Edition.
Epilog to the Second Edition.
Appendix 1. A Catalog of Algorithms.
Appendix 2. An Estimation Quiz.
Appendix 3. Cost Models for Time and Space.
Appendix 4. Rules for Code Tuning.
Appendix 5. C++ Classes for Searching.
Hints for Selected Problems.
Solutions to Selected Problems.
Index. 0201657880T04062001
show more

About Jon Bentley

I. PRELIMINARIES. Column 1. Cracking the Oyster. A Friendly Conversation.Precise Problem Statement.Program Design.Implementation Sketch.Principles.Problems.Further Reading.Column 2. Aha! Algorithms. Three Problems.Ubiquitous Binary Search.The Power of Primitives.Getting It Together: Sorting.Principles * Problems.Further Reading.Implementing an Anagram Program.Column 3. Data Structures Programs. A Survey Program.Form-Letter Programming.An Array of Examples.Structuring Data.Powerful Tools for Specialized Data.Principles.Problems.Further Reading.Column 4. Writing Correct Programs. The Challenge of Binary Search.Writing the Program.Understanding the Program.Principles.The Roles of Program Verification.Problems.Further Reading.Column 5. A Small Matter of Programming. From Pseudocode to C.A Test Harness.The Art of Assertion.Automated Testing.Timing.The Complete Program.Principles.Problems.Further Reading.Debugging.II. PERFORMANCE. Column 6. Perspective on Performance. A Case Study.Design Levels.Principles.Problems.Further Reading.Column 7. The Back of the Envelope. Basic Skills.Performance Estimates.Safety Factors.Little's Law.Principles.Problems.Further Reading.Quick Calculations in Everyday Life.Column 8. Algorithm Design Techniques. The Problem and a Simple Algorithm.Two Quadratic Algorithms.A Divide-and-Conquer Algorithm.A Scanning Algorithm.What Does It Matter?Principles.Problems.Further Reading.Column 9. Code Tuning. A Typical Story.A First Aid Sampler.Major Surgery--Binary Search.Principles.Problems.Further Reading.Column 10. Squeezing Space. The Key--Simplicity.An Illustrative Problem.Techniques for Data Space.Techniques for Code Space.Principles.Problems.Further Reading.A Big Squeeze.III. THE PRODUCT. Column 11. Sorting. Insertion Sort.A Simple Quicksort.Better Quicksorts.Principles.Problems.Further Reading.Column 12. A Sample Problem. The Problem.One Solution.The Design Space.Principles.Problems.Further Reading.Column 13. Searching. The Interface.Linear Structures.Binary Search Trees.Structures for Integers.Principles.Problems.Further Reading.A Real Searching Problem.Column 14. Heaps. The Data Structure.Two Critical Functions.Priority Queues.A Sorting Algorithm.Principles.Problems.Further Reading.Column 15. Strings of Pearls. Words.Phrases.Generating Text.Principles.Problems.Further Reading.Epilog to the First Edition. Epilog to the Second Edition. Appendix 1. A Catalog of Algorithms. Appendix 2. An Estimation Quiz. Appendix 3. Cost Models for Time and Space. Appendix 4. Rules for Code Tuning. Appendix 5. C++ Classes for Searching. Hints for Selected Problems. Solutions to Selected Problems. Index.
show more

Rating details

2,573 ratings
4.2 out of 5 stars
5 48% (1,231)
4 32% (836)
3 14% (364)
2 4% (99)
1 2% (43)
Book ratings by Goodreads
Goodreads is the world's largest site for readers with over 50 million reviews. We're featuring millions of their reader ratings on our book pages to help you find your new favourite book. Close X