Next Up Previous Hi Index

Contributor List

This edition of How to Think Like a Computer Scientist: Learning with C++ is a revision of the edition prepared by Paul Bui for the Open Books Project. Following is an edited version of Paul’s preface (sadly, most of the URLs and email addresses, except for my own, seem to be non-functional now).  — Bruce MacLennan, University of Tennessee, Knoxville.

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.
Bruce MacLennan
Bruce MacLennan has produced this revised edition by updating it to Standard C++, correcting some errors, and improving the readability of some chapters.  His web page is and his email is

How to Think Like a Computer Scientist: Learning with C++ is covered by the Gnu Free Documentation License. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the appendix entitled “GNU Free Documentation License.”

Revised: 2009-08-03.

Next Up Previous Hi Index