The C++ Project presents C++ through a concrete and engaging approach: the development and exploration of real-time simulations. Instead of isolated examples, the book is structured around a complete program that implements a multi-threaded multiple-body collision simulator running in real time.
Key C++ concepts are introduced and discussed in the context of this working system, allowing the reader to understand not only the language syntax, but also how design decisions, performance, and correctness interact in a realistic application.
The project is progressively extended to other simulations, including simplified models of a planet-satellite system, a fictional universe, and an elementary satellite launch scenario. Some of these extensions are fully implemented, while others are intentionally left as challenges, encouraging the reader to experiment, modify parameters, and extend the code.
While not intended to be a complete or introductory course, The C++ Project is designed as a complementary learning tool for readers who want to deepen their understanding of C++ through applied programming. The simulations are also suitable for teaching and studying basic concepts of Newtonian mechanics, making the book useful at the intersection of programming, physics, and computational modeling.
The second edition includes minor updates to the codebase and introduces an additional simplified simulation of computer virus propagation.
Marcos Tewfiq is an engineer and software developer with a background in Electronics Engineering (Instituto Tecnológico de Aeronáutica - ITA, Brazil), Law, and Economics (Pontifical Catholic University of Rio Grande do Sul - PUCRS, Brazil). His professional and academic interests focus on software development, computer science, and systems engineering. Over the years, he has pursued continuous education through numerous specialized programs in areas such as C/C++ programming, computational thinking, robotics, and related fields, offered by international institutions and platforms. The C++ Project reflects a long-term dedication to understanding programming not only as a language, but as a way of reasoning about systems, performance, and correctness.