https://www.stroustrup.com/programming.html
home | C++ | FAQ | technical FAQ | publications | WG21 papers |
TC++PL | Tour++ | Programming | D&E | bio | interviews | videos |
quotes | applications | guidelines | compilers
Modified April 18, 2024.
Programming -- Principles and Practice Using C++ (3rd Edition)
Addison-Wesley ISBN 978-0-13-830868-1. April 2024.
[PPP3cover]
You can buy directly from the publisher.
---------------------------------------------------------------------
Back cover copy
An Introduction to Programming by the Inventor of C++
Programming: Principles and Practice Using C++, Third Edition, will
help anyone who is willing to work hard learn the fundamental
principles of programming and develop the practical skills needed for
programming in the real world. Previous editions have been used
successfully by many thousands of students. This revised and updated
edition
* Assumes that your aim is to eventually write programs that are
good enough for others to use and maintain
* Focuses on fundamental concepts and techniques, rather than on
obscure language-technical details
* Is an introduction to programming in general, including
procedural, object-oriented, and generic programming, rather than
just an introduction to a programming language
* Covers both contemporary high-level techniques and the
lower-level techniques needed for efficient use of hardware
* Will give you a solid foundation for writing useful, correct,
type-safe, maintainable, and efficient code
* Is primarily designed for people who have never programmed
before, but even seasoned programmers have found previous
editions useful as an introduction to more effective concepts and
techniques
* Covers a wide range of essential concepts, design and programming
techniques, language features, and libraries
* Uses contemporary C++ (C++20 and C++23)
* Covers the design and use of both built-in types and user-defi
ned types, complete with input, output, computation, and simple
graphics/GUI
* Offers an introduction to the C++ standard library containers and
algorithms
ABOUT THE AUTHOR Bjarne Stroustrup is the designer and original
implementer of C++, as well as the author of The C++ Programming
Language and A Tour of C++, and many popular and academic
publications. He is a professor of Computer Science at Columbia
University in New York City. Dr. Stroustrup is a member of the US
National Academy of Engineering, and an IEEE, ACM, and CHM fellow. He
received the 2018 Charles Stark Draper Prize, the IEEE Computer
Society's 2018 Computer Pioneer Award, and the 2017 IET Faraday
Medal.
informit.com/aw informit.com/series/indepth stroustrup.com/
Programming
Pearson, Addison-Wesley ISBN 978-0-13-830868-1
---------------------------------------------------------------------
PPP3
"Programming: Principles and Practice using C++ (3rd Edition)", aka
PPP3, is an introduction to programming for people who have never
programmed before. It will also be useful for people who have
programmed a bit and want to improve their style and technique - or
simply learn modern C++. It is designed for classroom use, but
written with an eye on self study. Ealier versions of this book have
been used as the basis for first programming classes for electrical
engineering, computer engineering, and computer science students at
Texas A&M University and in many other places.
People who have seen PPP2 will notice that PPP3 is about half its
size. What I have done to keep the weight down is to
* strengthen the foundational chapters usually covered in a
one-semester course, utilizing key parts of C++20 and C+23, and
re-basing the Graphics/GUI chapter code on Qt for portability
(e.g., to browsers and phones).
* placed the more specialized chapers (known as "broadening the
view" in PPP2) on the Web for people to use as needed. See below.
* eliminate the pure reference material. You now can find more and
more up-to-date material on the web, e.g. cppreference.com.
The supporting material for PPP2 is available as ever (lecture
slides, code, etc.).
Here are some PPP3 samples
* Preface. What the book promises, and what it does not promise.
* Table of Contents.
* Chapter 0: Notes to the Reader. Some notes on the approach taken
by the book.
* Chapter 10: A Display Model. A sample chapter. If you are a real
novice, don't read this chapter quite yet. I post it to show
teachers and more experienced readers where the book gets to in
the 5th week or so (assuming two chapters a week). Also, to show
off a little bit of contemporary C++.
---------------------------------------------------------------------
Supporting information
* Links to C++ implementations and Software Development
Environments (and a little advice on getting started).
* How to use modules? including an explanation of how to build
module PPP using PPP_support.h.
* module PPP for when you can use modules.
* header "PPP.h" for the easiest use of modules std and PPP.
* header "PPPheaders.h" for when you have to fall back to using
header files.
* GUI support including PPP3's Graphics/GUI user interface library
(from chapters 10-14). To run this code you need to install Qt.
Note The User Manual.
* Sample code from the various chapters (TBD)
* Errata
* Slides for Lectures based on PPP updated for PPP3.
* PPP Coding Style Guide
* Exercise Material (TBD)
---------------------------------------------------------------------
Chapters from PPP2
These chapters were written using C++14, rather than C++23, but are
still correct and introduce their topics in a reasonable manner.
* Chapter 1: Computers, People, and Programming
* Chapter 11: Customizing Input and Output
* Chapter 22: Ideal and History
* Chapter 23: Text Manipulation
* Chapter 24: Numerics
* Chapter 25: Embedded Systems Programming
* Chapter 26: Testing
* Chapter 27: The C Programming Language
* Glossary.
---------------------------------------------------------------------
Translations
None yet. See my book covers page for translations of earlier
editions.
home | C++ | FAQ | technical FAQ | publications | WG21 papers |
TC++PL | Tour++ | Programming | D&E | bio | interviews | videos |
quotes | applications | guidelines | compilers