- Hardcover: 288 pages
- Publisher: Addison-Wesley Professional; 1 edition (June 19, 2009)
- Language: English
- ISBN-10: 032163537X
- ISBN-13: 978-0321635372
- Product Dimensions: 6.7 x 1.1 x 9.2 inches
- Shipping Weight: 1.3 pounds (View shipping rates and policies)
- Average Customer Review: 25 customer reviews
- Amazon Best Sellers Rank: #303,394 in Books (See Top 100 in Books)
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
Elements of Programming 1st Edition
Use the Amazon App to scan ISBNs and compare prices.
The Amazon Book Review
Author interviews, book reviews, editors picks, and more. Read it now
Frequently bought together
Customers who bought this item also bought
"A wise manager will make copies available free to any members of her programming staff who commit to read it. The training budget could hardly be better spentÂ Elements of Programming has the power to change the readers professional life."Martyn Thomas FREng, Components in Eletronics
From the Back Cover
"Ask a mechanical, structural, or electrical engineer how far they would get without a heavy reliance on a firm mathematical foundation, and they will tell you, 'not far.' Yet so-called software engineers often practice their art with little or no idea of the mathematical underpinnings of what they are doing. And then we wonder why software is notorious for being delivered late and full of bugs, while other engineers routinely deliver finished bridges, automobiles, electrical appliances, etc., on time and with only minor defects. This book sets out to redress this imbalance. Members of my advanced development team at Adobe who took the course based on the same material all benefited greatly from the time invested. It may appear as a highly technical text intended only for computer scientists, but it should be required reading for all practicing software engineers."
-Martin Newell, Adobe Fellow
"The book contains some of the most beautiful code I have ever seen."
-Bjarne Stroustrup, Designer of C++
"I am happy to see the content of Alex's course, the development and teaching of which I strongly supported as the CTO of Silicon Graphics, now available to all programmers in this elegant little book."
-Forest Baskett, General Partner, New Enterprise Associates
"Paul's patience and architectural experience helped to organize Alex's mathematical approach into a tightly-structured edifice-an impressive feat!"
-Robert W. Taylor, Founder of Xerox PARC CSL and DEC Systems Research Center
"Elements of Programming" provides a different understanding of programming than is presented elsewhere. Its major premise is that practical programming, like other areas of science and engineering, must be based on a solid mathematical foundation. The book shows that algorithms implemented in a real programming language, such as C++, can operate in the most general mathematical setting. For example, the fast exponentiation algorithm is defined to work with any associative operation. Using abstract algorithms leads to efficient, reliable, secure, and economical software.
This is not an easy book. Nor is it a compilation of tips and tricks for incremental improvements in your programming skills. The book's value is more fundamental and, ultimately, more critical for insight into programming. To benefit fully, you will need to work through it from beginning to end, reading the code, proving the lemmas, and doing the exercises. When finished, you will see how the application of the deductive method to your programs assures that your system's software components will work together and behave as they must.
The book presents a number of algorithms and requirements for types on which they are defined. The code for these descriptions-also available on the Web-is written in a small subset of C++ meant to be accessible to any experienced programmer. This subset is defined in a special language appendix coauthored by Sean Parent and Bjarne Stroustrup.
Whether you are a software developer, or any other professional for whom programming is an important activity, or a committed student, you will come to understand what the book's experienced authors have been teaching and demonstrating for years-that mathematics is good for programming, and that theory is good for practice.
Top customer reviews
There was a problem filtering reviews right now. Please try again later.
Unfortunately, Mr. McJones seems to have exerted some pressure on Alex to abandon his, in my opinion already "right" approach and replace it with the traditional mathematical exposition in terms of interchange of theorems and proofs. In my opinion this has robbed the book of most of its entertainment factor and to some extent of its didactic value as well.
As I've not read Euclid's Elements I really can't say if this book lives up to its name or not, but for what it's worth it does a very good job in laying out many of the mathematical principles that underly programming.
If you enjoy being challenged as a reader, then I believe you will like this book as it does an excellent job in that department and offers plenty of rewards for the persevering.
Programming is mix of math and art and both authors again proved that. I hope more developers will buy it and push their abilities forward and will understand beauty of logic raw computer power. This book can teach ways to be abstract, productive and quick, but this is only first step.
We have to read this and change our vision of "good enough" and "right".
I had been waiting for this book for a while, as I greatly enjoy Stepanov's unorthodox views on programming. His flat rejection of the object-oriented paradigm was what caught my attention, but he differed from the unwashed newsgroup naysayers in an important respspect -- he offered an alternative. The fact that his alternative seemed to involve applying concepts from the realm of abstract algebra to computer programming made me realize I would be spending a lot of time and thought catching up.
This is a short, but dense book. There is little trace of Knuth's sympathetic humor or Dijkstra's aesthetic passion. The material is presented as a series of definitions and sample programs, written in a programming language based on C++. Importantly, there are also exercises and projects throughout each chapter. At first attempt, these puzzlers seem to contain as much insight as the prose itself.
I look at this book as a combination of the two books that Stepanov is known to prescribe to his students, hyper-distilled into a slim few hundred pages:
"The books that I recommend to my students are The Art of Computer Programming by Donald Knuth, which is the great encyclopedia of programming techniques. ... It is something that they should keep studying for the rest of their lives. The other book that I urge my students to read is The Textbook of Algebra by George Chrystal. It is a massive two volume work covering most of elementary algebra. Sadly enough, nowadays even people with graduate degrees in Mathematics do not know most of the material in Chrystal."
More to the point, I look at this book as an intentional challenge. The preface urges the reader to consider why the material absent is absent and vice versa, a sentiment I had only seen in one other place -- Victor Vyssotsky's review of MacLane and Birkhoff. A challenge like that doesn't make for a pleasant exposition, seemingly trading approachability for a more mature understanding.
Stepanov has some great papers in the public domain -- if you are reading this review I highly reccomend seeking them out. Also see the Google Tech Talk "A Possible Future of Software Development" by Sean Parent. If you like those, you will love this.
Most recent customer reviews
*Elements of Programming* is an interesting book that unfortunately over-shoots much of an audience.Read more
mathematics. I thought that while in the process of programming, I
might find myself doing some math...Read more