Programming: Principles and Practice Using C++
|
| List Price: | £44.99 |
| Price: | £24.71 & eligible for FREE Super Saver Delivery on orders over £5. Details |
Availability: Usually dispatched within 24 hours
Dispatched from and sold by Amazon.co.uk
40 new or used available from £23.29
Average customer review:Product Description
An Introduction to Programming by the Inventor of C++
Preparation for Programming in the Real World
The book assumes that you aim eventually to write non-trivial programs, whether for work in software development or in some other technical field.
Focus on Fundamental Concepts and Techniques
The book explains fundamental concepts and techniques in greater depth than traditional introductions. This approach will give you a solid foundation for writing useful, correct, maintainable, and efficient code.
Programming with Today’s C++
The book is an introduction to programming in general, including object-oriented programming and generic programming. It is also a solid introduction to the C++ programming language, one of the most widely used languages for real-world software. The book presents modern C++ programming techniques from the start, introducing the C++ standard library to simplify programming tasks.
For Beginners–And Anyone Who Wants to Learn Something New
The book is primarily designed for people who have never programmed before, and it has been tested with more than 1,000 first-year university students. However, practitioners and advanced students will gain new insight and guidance by seeing how a recognized master approaches the elements of his art.
Provides a Broad View
The first half of the book covers a wide range of essential concepts, design and programming techniques, language features, and libraries. Those will enable you to write programs involving input, output, computation, and simple graphics. The second half explores more specialized topics, such as text processing and testing, and provides abundant reference material. Source code and support supplements are available from the author’s website.
Product Details
- Amazon Sales Rank: #19221 in Books
- Published on: 2008-12-19
- Original language: English
- Number of items: 1
- Binding: Paperback
- 1272 pages
Editorial Reviews
About the Author
Bjarne Stroustrup is the designer and original implementer of C++, the author of The C++ Programming Language, The Annotated C++ Reference Manual, and The Design and Evolution of C++, and the consulting editor of Addison-Wesley's C++ In-Depth Series. Having previously worked at Bell Labs and AT&T Labs-Research, he currently is the College of Engineering Chair in Computer Science Professor at Texas A&M University. The recipient of numerous honors, including the Dr. Dobb's Excellence in Programming Award (2008), Dr. Stroustrup is a member of the National Academy of Engineering, an AT&T Fellow, an AT&T Bell Laboratories Fellow, an IEEE Fellow, and an ACM Fellow. His research interests include distributed systems, simulation, design, programming techniques, software development tools, and programming languages, and he remains actively involved in the ANSI/ISO standardization of C++. Dr. Stroustrup holds an advanced degree from the University of Aarhus in his native Denmark and a Ph.D. in Computer Science from Cambridge University, England.
Customer Reviews
No better place to start C++ than here...
I had just finished reading Herbert Schildt's book C++: The Complete Reference and had resolved not to read another door stop before devoting much more time to practising the new techniques I had learned. Then I got wind of Bjarne Stroustrup's new book for beginners: Programming Principles and Practice Using C++. Now Dr Stroustrup occupies a very elevated position in the panoply of C++ deities; his words are cast in stone and he is often referred to as "the creator" of C++ (read: he invented it). Most programming tutorials have shortcomings of one kind or another, so I was intrigued to discover what sort of a job BS had done. I was not disappointed.
Firstly, his approach is not to treat learning C++ as a purely language-technical issue, but to talk about programming as a means to the solving of problems, and use C++ (the most versatile and widely used programming language we have) as a vehicle to do this.
After a dedication to Lawrence Petersen, his collaborator on this project, there is an interesting chapter concerning the place of computer systems in modern life.
Programming is introduced in the conventional way with the simplest concepts, then the learning curve becomes progressively steeper (a feature which is required of a reasonably complete introduction to the subject, even given the 1264 pages of this book).
BS uses several techniques that I had not seen before. All the code is printed in a bold typeface in blue. That makes it easier to distinguish code terms from other, possibly similar words within the body text. He does not use unnecessary spaces in his code. This helps to clarify where spaces are actually required by the syntax as opposed to merely beautifying the code. It also allows more characters per line, but the downside is that the code tends to look more crowded.
Nearly every chapter ends with a set of drills (short exercises), a review of all the new material introduced in the chapter, a list of the new terms, a very comprehensive and well thought out set of more substantial exercises and a postscript giving final thoughts. If students were to take on these exercises in a conscientious way I have no doubt that the learning curve would be flattened to a great extent and they would rapidly gain proficiency in programming.
Having prepared the ground thoroughly, BS raises the level of activity by introducing programming techniques which produce graphical output, and devotes 160 pages in five chapters to it. An independently produced lightweight graphical user interface package called FLTK has to be downloaded and installed for this purpose (its free of charge). FLTK was chosen partly because it is a cross-platform system (cross platform functionality being one of BS's hobby horses, although one which is justified). I found this part of the book a bit tedious, mainly because I am not greatly interested in graphics at present and partly because I did not have the time to play with the system sufficiently.
Two thirds of the way through the book is a refreshing and fascinating chapter dealing with the history of programming and some of the personalities involved; something I had not thought of investigating in any detail before. Colour photographs are another feature of this book which adds to its appeal.
An important theme of the book is the idea that its all too easy to make mistakes when programming, but there are ways to mitigate this. BS owns up and highlights many mistakes he made (some of them deliberate, for pedagogical reasons) when writing programs for the book. I find that both endearing and encouraging. Major sections deal with debugging and system testing, including the recording of run-time.
The last chapter is an introduction to the C programming language. I was very pleased to see that since you cannot go very far in the world of C++ without tripping over branches of C code, and it helps a lot if you can understand it. There are five appendices which provide useful reference material and some extra ideas for anyone who has stayed the course.
The book is supported by some excellent web pages with supporting material including an errata list and well designed tutorial materials for teachers.
I found this book generally very revealing and rate it not only excellent, but inspiring. It provides the means to become a good programmer if you are prepared to do the work, and the encouragement to do so.
A different type of book from the inventor of the language.
Unlike his previous books, this book is aimed at the beginner and intermediate C++ programmer. Having struggled with some of his books as they are very technical and involve more complex problems, I was pleasantly surprised by the simplicity of this book, which is much more chatty and starts with the basics.
I do however have some reservations about this book. About the only thing I don't like about the book, occurs early on in chapter 2. I don't like the way the author hides the headers etc by including them in a header file of his own - "std_lib_facilities.h". I feel that this treatment makes the student far too dependant, and that it would be better for them to know about these things right at the beginning, especially as the are relatively easy to grasp. What is even worse is that the book does not tell you the contents of this header file. In the appendix, you are however told that you can download the header file from the authors web site.
Now that I have said what I don't like about the book, I must say that besides my complaint above, the book is excellent. There are certain topics that possibly don't appear in most other introductory texts, and certainly are not explained so clearly as they are in this book.
Even in the first part of the book - The Basics, there is good coverage of errors and exception handling, an overview of Classes and much more involved real-world programming examples that you don't typically find in introductory texts.
Part 2 - Input and Output, gives as the title suggests a thorough grounding in Input and Output, as well as providing an introduction to Computer Graphics using the FLTK. This is a class library that comes packaged in Quincy 2005, though can be downloaded separately if you are using another C++ compiler/IDE. This is the only C++ book that I have seen, that uses the FLTK. Other books such as "You can do it" and "You can program in C++" by Francis Glassborow, include graphics environments, but using their own graphics classes.
The remaing parts of the book cover more advanced topics - including data structures and algorithms, including vectors and templates, the STL including the
So, although the book starts off easy, and has the appearance of being user friendly, it does cover some really difficult stuff.
This is a book that will appeal to a variety of C++ users, from beginner to advanced programmer. A very interesting and useful book to have available on a shelf at home.
The seminal book on C++
I am a final year Software Engineering student, and our curriculum covers only Java and PHP so I was excited to really get my teeth in to the newest book. Although I consider myself an advanced beginner at programming, my C++ knowledge was lacking in many departments (I didn't actually understand how many different facets of the language I misunderstood until I started working through the book). I have always taken other programmers advice and bought (and used) as many books as I could to get a firm grounding in a language, though "P3" surprised me somewhat. I was expecting a reference book akin to the C++ Programming Language book, with maybe a few design patterns thrown in to cover the programming aspects the book advertised.
I was delighted to discover that the latest book combines the technicality of Knuth's "Art of" books, with the 'in the trench' advice of McConnell's Code Complete series. The layout of the tutorials such as the "Try This", "Drill" and "Review" sections have really provided a well rounded knowledge of a subject; not enough to presume complete knowledge, but enough to understand the concepts that will encourage further independent study. The "Exercise" sections were particularly rewarding, and I have used up many a braincell trying to solve them in some cases.
This book is perfect as an introductory programming book, and also as a book that will teach advanced programmers new tricks. With a language as large (and sometimes as obtuse) as C++, this book presents a clear learning path towards a full comprehension of programming principles. C++ is used as a tool here to present readers with the knowledge needed to understand concepts present in all languages. That said, if you want to learn C++ this is the book to buy.



