
Ebook Info
- Published: 2014
- Number of pages: 592 pages
- Format: PDF
- File Size: 2.53 MB
- Authors: Alexander A. Stepanov
Description
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
User’s Reviews
Reviews from Amazon users which were colected at the time this book was published on the website:
⭐As good as it was, I never enjoyed Stepanov’s earlier book, “The Elements Of Programming” (https://www.amazon.com/Elements-Programming-Alexander-Stepanov/dp/0578222140). It reminded of a healthy meal that is good for you but simply not any fun. The kind with too much undercooked broccoli and asparagus, and not enough steak. This later book, to stretch the food analogy, is the hamburger and fries version on the same subject! It is straightforward, easy to read, and enjoyable.The math included here is simply classic stuff, and it is presented in the traditional manner of statements and proofs. Sidebars containing short biographies of mathematicians provide a welcome respite from the proofs and C++ code. If you’ve studied college level algebra most of the topics discussed will be familiar, while the explanation of how these ideas relate to (generic) programming will probably be new.There are definitely moments where the whole thing can sometimes seem forced and unnatural. For example, a paragraph introducing iterators claims that “iterators come to us directly from Peano’s axioms”. This is immediately followed by many sentences explaining why the axioms actually do not apply at all! Also, while I generally prefer the use of a real programming language in books like these, the discussion meandered into C++ trivia more often than I liked.So, yes, it’s not perfect, but I’d still recommend it to anyone who enjoys math, and is prepared to delve into some C++ code. I suspect that even if you already know everything in this book (I certainly did not), you would still enjoy it in the same way that a good pulp fiction novel helps while away a long airplane ride.
⭐As another reviewer put it, “read it if you want to get familiar with abstract algebra and number theory. Or if you want some good time reading about history of mathematics.” Otherwise, if you are seeking to learn programming concepts or details of C++, this book is not for you. I expected the book to have a strong programming orientation and was surprised how intensive the book was focused on abstract algebra and number theory.Nonetheless, the lessons in the history of mathematics were interesting, but I would not recommend the book under the guise of programming. In short, this is a book detailing the evolution and history of mathematics as it pertains to abstract algebra and number theory with only a passing relation to generic programming. Five stars for quality, three stars for meeting expectations, and thus a 4 star review overall.
⭐This book is largely a history of math algorithms, from ancient Egypt to the present day, with several examples of possible implementation in pseudo-C++. It is well organized. The writing tone is light and conversational. If that sounds like an interesting read to you, you’ll probably enjoy this book a great deal.Personally, I found it disappointed. Why? Because what attracted me to the book was not the promise of a math history tour, but the promise of useful insights into my craft as a software developer and engineer. The authors frequently close chapters with vague allusions to how such-and-such algorithm illustrates a fundamental insight into the nature of programming working code. Often these insights are correct, but obvious to experienced developers and insufficiently explained to novices and journeymen.The final paragraph of the book states, “Next time you set out to write a program, try to adopt the generic programming attitude. Start with specific implementations of your functions, then revise and and refine them to be more efficient and more general.” That is, in a nutshell, the entirety of the book’s practical instruction on writing code.
⭐If you want to look under the hood to see how one of the most important current computing principles (Generic Programming) evolved, then get this book. The authors weave fascinating biographical information through an evolving story, showing how the breakthrough works of key historical figures in Mathematics eventually led us to where we are today. A very basic primer in Abstract Algebra is provided for those whose lives have not yet been warmed by the glow of the burning embers of group, ring and field theory. I was left with a great sense of appreciation for the Mathematicians whose work we are now able to use to practical advantage every day. And, it left me wondering what other advancements might be possible, using these and perhaps other abstract mathematical truths, learned over time.
⭐It is a very interesting and extremely well-written book. It merges mathematical concepts and software coding of these, in order to show that generic programming ideas go hand-in-hand with mathematics. The book is worth reading also because it brings together history of mathematics (there are several ‘info boxes’ about prominent mathematicians and their bios and main contributions) and how their mathematical ideas developed through the centuries come about in software generic programming. More pragmatically, I like the way exercises are scattered through the text instead of crammed at the end of each chapter. It gives a nice feeling of flow to the reading experience. I have not read the whole book yet, but have been through pretty much half of it, and it is very good so far.
⭐Computer programming is a wholly mathematical pursuit. Although many computer science departments are housed in engineering, the heart and soul is abstract mathematics.This book reminds us that a computer only does what it is told to do– and told in a proper fashion. While the present tends fall towards AI — this book takes a decidedly different tact—- It gives us the rudimentary basics of computer security– whose fundamentals rest in Abstract Algebra. It is a joy to read.
⭐The book takes you through history charting some key mathematical developments through the ages and in different cultures that makes for both an enjoyable and educational read. It also displays how to map theoretical detail to produce effective algorithms through an initial starting-block leading into iterative refinements. It’s Interesting how these mirror the style of the landmark STL that changed the way that many people think about programming after years of being drilled in entrenched object-oriented thinking. If only we all had teachers like these.
⭐The book is more about mathematics, theory and history, than about programming.If you like mathematics, you’ll probably still enjoy reading it, but if you’re primarily looking for coding inputs you might get dissapointed.The book is a survey over mathematical knowledge from the old Greek, through the middelage and finally a modern time.It is well written, but quite different from what I expected and wanted.
⭐A good book.
⭐Very good book and nice read.
⭐”To be a good programmer, you need to understand the principles of generic programming. To understand the principles of generic programming, you need to understand abstraction. To understand abstraction, you need to understand the mathematics on which it is based.” – That’s the story which the book is telling.It is a book for serious programmers (both novice and expert), who care about the intricate details of their code including its generic usability, interface, performance, maintainability and extensibility. The book has a general bias towards C++ programmers and often sites examples/use cases from the C++ STL.It is a not a book for programmers who care about getting work done real quick (and often dirty). It is a sort of marathon not a sprint.
Keywords
Free Download From Mathematics to Generic Programming 1st Edition in PDF format
From Mathematics to Generic Programming 1st Edition PDF Free Download
Download From Mathematics to Generic Programming 1st Edition 2014 PDF Free
From Mathematics to Generic Programming 1st Edition 2014 PDF Free Download
Download From Mathematics to Generic Programming 1st Edition PDF
Free Download Ebook From Mathematics to Generic Programming 1st Edition