Programming: Principles and Practice Using C++ – Bjarne Stroustrup – 1st Edition


Programming is the art of expressing solutions to problems so that a computer can execute those solutions. Much of the effort in programming is spent finding and refining solutions. Often, a problem is only fully understood through the process of programming a solution for it.

This book is for someone who has never programmed before but is willing to work hard to learn. It helps you understand the principles and acquire the practical skills of programming using the C++ programming language.
My aim is for you to gain sufficient knowledge and experience to perform simple useful programming tasks using the best up-to-date techniques. How long will that take? As part of a first-year university course, you can work through this book in a semester (assuming that you have a workload of four courses of average difficulty).

If you work by yourself, don’t expect to spend less time than that (maybe 15 hours a week for 14 weeks). Three months may seem a long time, but there’s a lot to learn and you’ll be writing your first simple programs after about an hour. Also, all learning is gradual: each chapter introduces new useful concepts and illustrates them with examples inspired by real-world uses. Your ability to express ideas in code — getting a computer to do what you want it to do — gradually and steadily increases as you go along. I never say, “Learn a month’s worth of theory and then see if you can use it.

View more

  • Part I. The Basics
    Chapter 1 Computers, People, and Programming
    Chapter 2 Hello world!
    Chapter 3 Objects, types, and values
    Chapter 4 Computation
    Chapter 5 Errors
    Chapter 6 Writing a program
    Chapter 7 Completing a program
    Chapter 8 Technicalities: functions, etc.
    Chapter 9 Technicalities: classes, etc.

    Part II. Input and Output
    Chapter 10 Input and output streams
    Chapter 11 File streams and string streams
    Chapter 12 Graphs
    Chapter 13 Graph classes
    Chapter 14 Graph class design
    Chapter 15 Graphing functions
    Chapter 16 Graphical user interfaces

    Part III. Data and algorithms
    Chapter 17 Vectors: memory management
    Chapter 18 Vectors: arrays
    Chapter 19 Vectors: exceptions and templates
    Chapter 20 STL: containers, iterators, and algorithms
    Chapter 21 STL: maps and algorithms

    Part IV. Broadening the view
    Chapter 22 Ideals and history
    Chapter 23 Text manipulation
    Chapter 24 Numerics
    Chapter 25 Embedded systems programming
    Chapter 26 Testing
    Chapter 27 The C programming language

    Appendix A Language summary
    Appendix B Standard-library summary
    Appendix C Getting started with Visual Studio
    Appendix D Installing FLTK
    Appendix E GUI Implementation

  • Citation

Leave us a comment

No Comments

Notify of
Inline Feedbacks
View all comments
Would love your thoughts, please comment.x