15%
From Mathematics to Generic Programming

From Mathematics to Generic Programming

4.6       |  7 Reviews 
5
4
3
2
1

International Edition


Premium quality
Premium quality
Bookswagon upholds the quality by delivering untarnished books. Quality, services and satisfaction are everything for us!
Easy Return
Easy return
Not satisfied with this product! Keep it in original condition and packaging to avail easy return policy.
Certified product
Certified product
First impression is the last impression! Address the book’s certification page, ISBN, publisher’s name, copyright page and print quality.
Secure Checkout
Secure checkout
Security at its finest! Login, browse, purchase and pay, every step is safe and secured.
Money back guarantee
Money-back guarantee:
It’s all about customers! For any kind of bad experience with the product, get your actual amount back after returning the product.
On time delivery
On-time delivery
At your doorstep on time! Get this book delivered without any delay.
Quantity:
Add to Wishlist

About the Book

In this substantive yet accessible book, pioneering software designer Alexander Stepanov and his colleague Daniel Rose illuminate the principles of generic programming and the mathematical concept of abstraction on which it is based, helping you write code that is both simpler and more powerful. If you’re a reasonably proficient programmer who can think logically, you have all the background you’ll need. Stepanov and Rose introduce the relevant abstract algebra and number theory with exceptional clarity. They carefully explain the problems mathematicians first needed to solve, and then show how these mathematical solutions translate to generic programming and the creation of more effective and elegant code. To demonstrate the crucial role these mathematical principles play in many modern applications, the authors show how to use these results and generalized algorithms to implement a real-world public-key cryptosystem. As you read this book, you’ll master the thought processes necessary for effective programming and learn how to generalize narrowly conceived algorithms to widen their usefulness without losing efficiency. You’ll also gain deep insight into the value of mathematics to programming—insight that will prove invaluable no matter what programming languages and paradigms you use. You will learn about How to generalize a four thousand-year-old algorithm, demonstrating indispensable lessons about clarity and efficiency Ancient paradoxes, beautiful theorems, and the productive tension between continuous and discrete A simple algorithm for finding greatest common divisor (GCD) and modern abstractions that build on it Powerful mathematical approaches to abstraction How abstract algebra provides the idea at the heart of generic programming Axioms, proofs, theories, and models: using mathematical techniques to organize knowledge about your algorithms and data structures Surprising subtleties of simple programming tasks and what you can learn from them How practical implementations can exploit theoretical knowledge

Table of Contents:
Acknowledgments ix About the Authors xi Authors’ Note xiii Chapter 1: What This Book Is About 1 1.1 Programming and Mathematics 2 1.2 A Historical Perspective 2 1.3 Prerequisites 3 1.4 Roadmap 4 Chapter 2: The First Algorithm 7 2.1 Egyptian Multiplication 8 2.2 Improving the Algorithm 11 2.3 Thoughts on the Chapter 15 Chapter 3: Ancient Greek Number Theory 17 3.1 Geometric Properties of Integers 17 3.2 Sifting Primes 20 3.3 Implementing and Optimizing the Code 23 3.4 Perfect Numbers 28 3.5 The Pythagorean Program 32 3.6 A Fatal Flaw in the Program 34 3.7 Thoughts on the Chapter 38 Chapter 4: Euclid’s Algorithm 41 4.1 Athens and Alexandria 41 4.2 Euclid’s Greatest Common Measure Algorithm 45 4.3 A Millennium without Mathematics 50 4.4 The Strange History of Zero 51 4.5 Remainder and Quotient Algorithms 53 4.6 Sharing the Code 57 4.7 Validating the Algorithm 59 4.8 Thoughts on the Chapter 61 Chapter 5: The Emergence of Modern Number Theory 63 5.1 Mersenne Primes and Fermat Primes 63 5.2 Fermat’s Little Theorem 69 5.3 Cancellation 72 5.4 Proving Fermat’s Little Theorem 77 5.5 Euler’s Theorem 79 5.6 Applying Modular Arithmetic 83 5.7 Thoughts on the Chapter 84 Chapter 6: Abstraction in Mathematics 85 6.1 Groups 85 6.2 Monoids and Semigroups 89 6.3 Some Theorems about Groups 92 6.4 Subgroups and Cyclic Groups 95 6.5 Lagrange’s Theorem 97 6.6 Theories and Models 102 6.7 Examples of Categorical and Non-categorical Theories 104 6.8 Thoughts on the Chapter 107 Chapter 7: Deriving a Generic Algorithm 111 7.1 Untangling Algorithm Requirements 111 7.2 Requirements on A 113 7.3 Requirements on N 116 7.4 New Requirements 118 7.5 Turning Multiply into Power 119 7.6 Generalizing the Operation 121 7.7 Computing Fibonacci Numbers 124 7.8 Thoughts on the Chapter 127 Chapter 8: More Algebraic Structures 129 8.1 Stevin, Polynomials, and GCD 129 8.2 Göttingen and German Mathematics 135 8.3 Noether and the Birth of Abstract Algebra 140 8.4 Rings 142 8.5 Matrix Multiplication and Semirings 145 8.6 Application: Social Networks and Shortest Paths 147 8.7 Euclidean Domains 150 8.8 Fields and Other Algebraic Structures 151 8.9 Thoughts on the Chapter 152 Chapter 9: Organizing Mathematical Knowledge 155 9.1 Proofs 155 9.2 The First Theorem 159 9.3 Euclid and the Axiomatic Method 161 9.4 Alternatives to Euclidean Geometry 164 9.5 Hilbert’s Formalist Approach 167 9.6 Peano and His Axioms 169 9.7 Building Arithmetic 173 9.8 Thoughts on the Chapter 176 Chapter 10: Fundamental Programming Concepts 177 10.1 Aristotle and Abstraction 177 10.2 Values and Types 180 10.3 Concepts 181 10.4 Iterators 184 10.5 Iterator Categories, Operations, and Traits 185 10.6 Ranges 188 10.7 Linear Search 190 10.8 Binary Search 191 10.9 Thoughts on the Chapter 196 Chapter 11: Permutation Algorithms 197 11.1 Permutations and Transpositions 197 11.2 Swapping Ranges 201 11.3 Rotation 204 11.4 Using Cycles 207 11.5 Reverse 212 11.6 Space Complexity 215 11.7 Memory-Adaptive Algorithms 216 11.8 Thoughts on the Chapter 217 Chapter 12: Extensions of GCD 219 12.1 Hardware Constraints and a More Efficient Algorithm 219 12.2 Generalizing Stein’s Algorithm 222 12.3 Bézout’s Identity 225 12.4 Extended GCD 229 12.5 Applications of GCD 234 12.6 Thoughts on the Chapter 234 Chapter 13: A Real-World Application 237 13.1 Cryptology 237 13.2 Primality Testing 240 13.3 The Miller-Rabin Test 243 13.4 The RSA Algorithm: How and Why It Works 245 13.5 Thoughts on the Chapter 248 Chapter 14: Conclusions 249 Further Reading 251 Appendix A: Notation 257 Appendix B: Common Proof Techniques 261 B.1 Proof by Contradiction 261 B.2 Proof by Induction 262 B.3 The Pigeonhole Principle 263 Appendix C: C++ for Non-C++ Programmers 265 C.1 Template Functions 265 C.2 Concepts 266 C.3 Declaration Syntax and Typed Constants 267 C.4 Function Objects 268 C.5 Preconditions, Postconditions, and Assertions 269 C.6 STL Algorithms and Data Structures 269 C.7 Iterators and Ranges 270 C.8 Type Aliases and Type Functions with using in C++11 272 C.9 Initializer Lists in C++11 272 C.10 Lambda Functions in C++11 272 C.11 A Note about inline 273 Bibliography 275 Index 281


Best Sellers


Product Details
  • ISBN-13: 9780321942043
  • Publisher: Pearson Education (US)
  • Publisher Imprint: Addison-Wesley Educational Publishers Inc
  • Depth: 25
  • Language: English
  • Returnable: Y
  • Spine Width: 17 mm
  • Weight: 436 gr
  • ISBN-10: 0321942043
  • Publisher Date: 27 Nov 2014
  • Binding: Paperback
  • Height: 228 mm
  • No of Pages: 320
  • Series Title: English
  • Sub Title: The Mathematical Origins of Computer Programming
  • Width: 156 mm


Similar Products

How would you rate your experience shopping for books on Bookswagon?

Add Photo
Add Photo

Customer Reviews

4.6       |  7 Reviews 
out of (%) reviewers recommend this product
Top Reviews
Rating Snapshot
Select a row below to filter reviews.
5
4
3
2
1
Average Customer Ratings
4.6       |  7 Reviews 
00 of 0 Reviews
Sort by :
Active Filters

00 of 0 Reviews
SEARCH RESULTS
1–2 of 2 Reviews
    BoxerLover2 - 5 Days ago
    A Thrilling But Totally Believable Murder Mystery

    Read this in one evening. I had planned to do other things with my day, but it was impossible to put down. Every time I tried, I was drawn back to it in less than 5 minutes. I sobbed my eyes out the entire last 100 pages. Highly recommend!

    BoxerLover2 - 5 Days ago
    A Thrilling But Totally Believable Murder Mystery

    Read this in one evening. I had planned to do other things with my day, but it was impossible to put down. Every time I tried, I was drawn back to it in less than 5 minutes. I sobbed my eyes out the entire last 100 pages. Highly recommend!


Sample text
Photo of
    Media Viewer

    Sample text
    Reviews
    Reader Type:
    BoxerLover2
    00 of 0 review

    Your review was submitted!
    From Mathematics to Generic Programming
    Pearson Education (US) -
    From Mathematics to Generic Programming
    Writing guidlines
    We want to publish your review, so please:
    • keep your review on the product. Review's that defame author's character will be rejected.
    • Keep your review focused on the product.
    • Avoid writing about customer service. contact us instead if you have issue requiring immediate attention.
    • Refrain from mentioning competitors or the specific price you paid for the product.
    • Do not include any personally identifiable information, such as full names.

    From Mathematics to Generic Programming

    Required fields are marked with *

    Review Title*
    Review
      Add Photo Add up to 6 photos
      Would you recommend this product to a friend?
      Tag this Book
      Read more
      Does your review contain spoilers?
      What type of reader best describes you?
      I agree to the terms & conditions
      You may receive emails regarding this submission. Any emails will include the ability to opt-out of future communications.

      CUSTOMER RATINGS AND REVIEWS AND QUESTIONS AND ANSWERS TERMS OF USE

      These Terms of Use govern your conduct associated with the Customer Ratings and Reviews and/or Questions and Answers service offered by Bookswagon (the "CRR Service").


      By submitting any content to Bookswagon, you guarantee that:
      • You are the sole author and owner of the intellectual property rights in the content;
      • All "moral rights" that you may have in such content have been voluntarily waived by you;
      • All content that you post is accurate;
      • You are at least 13 years old;
      • Use of the content you supply does not violate these Terms of Use and will not cause injury to any person or entity.
      You further agree that you may not submit any content:
      • That is known by you to be false, inaccurate or misleading;
      • That infringes any third party's copyright, patent, trademark, trade secret or other proprietary rights or rights of publicity or privacy;
      • That violates any law, statute, ordinance or regulation (including, but not limited to, those governing, consumer protection, unfair competition, anti-discrimination or false advertising);
      • That is, or may reasonably be considered to be, defamatory, libelous, hateful, racially or religiously biased or offensive, unlawfully threatening or unlawfully harassing to any individual, partnership or corporation;
      • For which you were compensated or granted any consideration by any unapproved third party;
      • That includes any information that references other websites, addresses, email addresses, contact information or phone numbers;
      • That contains any computer viruses, worms or other potentially damaging computer programs or files.
      You agree to indemnify and hold Bookswagon (and its officers, directors, agents, subsidiaries, joint ventures, employees and third-party service providers, including but not limited to Bazaarvoice, Inc.), harmless from all claims, demands, and damages (actual and consequential) of every kind and nature, known and unknown including reasonable attorneys' fees, arising out of a breach of your representations and warranties set forth above, or your violation of any law or the rights of a third party.


      For any content that you submit, you grant Bookswagon a perpetual, irrevocable, royalty-free, transferable right and license to use, copy, modify, delete in its entirety, adapt, publish, translate, create derivative works from and/or sell, transfer, and/or distribute such content and/or incorporate such content into any form, medium or technology throughout the world without compensation to you. Additionally,  Bookswagon may transfer or share any personal information that you submit with its third-party service providers, including but not limited to Bazaarvoice, Inc. in accordance with  Privacy Policy


      All content that you submit may be used at Bookswagon's sole discretion. Bookswagon reserves the right to change, condense, withhold publication, remove or delete any content on Bookswagon's website that Bookswagon deems, in its sole discretion, to violate the content guidelines or any other provision of these Terms of Use.  Bookswagon does not guarantee that you will have any recourse through Bookswagon to edit or delete any content you have submitted. Ratings and written comments are generally posted within two to four business days. However, Bookswagon reserves the right to remove or to refuse to post any submission to the extent authorized by law. You acknowledge that you, not Bookswagon, are responsible for the contents of your submission. None of the content that you submit shall be subject to any obligation of confidence on the part of Bookswagon, its agents, subsidiaries, affiliates, partners or third party service providers (including but not limited to Bazaarvoice, Inc.)and their respective directors, officers and employees.

      Accept

      New Arrivals


      Inspired by your browsing history


      Your review has been submitted!

      You've already reviewed this product!
      ASK VIDYA