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 speedy911@mindspring.com. If your contribution, comment, and/or error is legitimate, then you shall be added to this “comprehensive” list of contributors:
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.