The C++Course provides a general introduction to programming in C++. It is based on A.B. Downey's book, How to Think Like a Computer Scientist. Click here for details.

Contributor List

by Paul Bui

Greetings and salutations! As a busy student in my senior year at Yorktown High School (Arlington, VA), I have undertaken the assignment of contributing to this open textbook. As a sophomore, I enrolled in Computer Science, which focused on C++ programming, which I then followed up on by enrolling in AP Computer Science during my junior year. I consider myself somewhat familiar with C++ programming by now, which is why I am attempting to pass on my own knowledge of C++.

Allen B. Downey, professor of Computer Science at Wellesley College, originally wrote "How to Think Like a Computer Scientist"in Java, as a textbook for his computer science class. Over the summer of 1998, Professor Downey converted the Java version of "How to Think Like a Computer Scientist" into C++. Since then, the Java version has undergone several major changes, including the addition of Abstract Data Types such as Stacks, Queues, and Heaps. The C++ version of the open textbook however, did not receive these changes, that is...until now.

Of course, my contribution to this open textbook will not be perfect (as I am prone to human error) and will not be the last. If you feel the urge to contribute, comment, or point out errors, please contact Charles Harrison at If your contribution, comment, and/or error is legitimate, then you shall be added to this "comprehensive" list of contributors:

Jonah Cohen
Jonah wrote the Perl scripts to convert the LaTeX source for this book into beautiful html. He will also contribute to the book several chapters in cooperation with Paul Bui; his major work will be a chapter concerning Object Oriented Programming in C++. His web page is and his email is
Paul Bui
Paul Bui will be contributing to the book along with Jonah Cohen, various chapters concerning pointers, references, and templates. Other chapters that involved several Abstract Data Types (Stacks, Queues, Priority Queues, and Heaps), which have already been written for Java will be converted by Paul to C++. His web page is and his email is
Charles Harrison
Charles Harrison is currently maintaining the online text. He corrects errors both technically and grammaticaly. He also serves as the main for help and information about the C++ portion of the Open Book Project. His email is
Peter Bui
Peter Bui has contributed miscellaneous text corrections.
Donald Oellerich
Donald Oellerich has contributed miscellaneous text corrections.
Drew Stephens
Drew Stephens has helped on countless occasions to perfect the content and accuracy of the online text.

Last Update: 2005-11-21