- Bjarne Stroustrup, The C++ Programming Language, 3rd ed., Addison-Wesley, 1997
- Andy Hunt and Dave Thomas, The Pragmatic Programmer, Addison-Wesley, 1999
- Scott Meyers, Effective C++, 2nd ed., Addison-Wesley, 1997
- Martin Fowler, Refactoring: Improving the Design of Existing Code, Addison-Wesley, 1999
- Brian W. Kernighan and Rob Pike, The Practice of Programming, Addison-Wesley, 1999
- Steve McConnell, Code Complete, Microsoft Press, 1993

- Robert Sedgewick, Algorithms in C++: Parts 1-4, 3rd ed., Addison-Wesley, 1998
- Scott Meyers, More Effective C++, Addison-Wesley, 1996
- Andrew Koenig and Barbara Moo, Ruminations on C++, Addison-Wesley, 19 96
- Nicolai M. Josuttis, The C++ Standard Library, Addison-Wesley, 1999
- Michi Henning and Steve Vinoski, Advanced CORBA Programming with C++, Addison-Wesley, 1999
- Martin Fowler and Kendall Scott, UML Distilled: A Brief Guide to the Standard Object Modeling Language, 2nd ed., Addison-Wesley, 1999
- Erich Gamma et al., Design Patterns, Addison-Wesley, 1994
- Steve McConnell, Rapid Development, Microsoft Press, 1996


A stimulating discussion of issues related to scientific programming can be found in
Paul Dubois's department in Computing in Science and Engineering (formerly Computers in Physics).

Papers, presentations, notes

Todd Veldhuizen, Techniques for Scientific C++ [postscript]
Geoffrey Furnish, Disambiguated Glommable Expression Templates, C++ Report, May 2000
KAI C++: Recommendations on valarray (Is valarray useful for high-performance computation?)
Marc Paterno, Experiences Reviewing Scientific C++ Code (adequate abstraction) [powerpoint] [cache]
Mark-Jason Dominus, about discursive habits in programming language advocacy

Online resources

C++: comp.lang.c++.moderated, comp.lang.c++, comp.std.c++
Algorithms: comp.theory,
SMP: comp.programming.threads

Object-Oriented Numerics Page
WWW C++ Information

C++ Standard Library contributions: Boost (best practices)
Fast arrays and linear algebra: Blitz++, MTL

Documentation and class structure exploration: doxygen
make utilities: jam, GNU make
software management/version control: CVS, Perforce
shell scripts: David Medinets, Unix Shell Programming Tools, McGraw-Hill, 1999

Python resources

- Mark Lutz, Python Pocket Reference, O'Reilly, 1998
- David M. Beazley, Python Essential Reference, New Riders, 1999

Python Home
Numerical Python (NumPy)
Python C/C++ wrapper (SWIG)
extending Python with C++ (CXX)
extending Python with C++ (py_cpp)
extending Python with C++ (SCXX)
Comprehensive Python Archive (Vaults of Parnassus)

Agile Software Development

- Kent Beck, XP Explained: Embrace Change, Addison-Wesley, 1999
- Ron Jeffries, Ann Anderson and Chet Hendrickson, XP Installed, Addison-Wesley, 2000
- Ken Auer and Roy Miller, XP Applied: Playing To Win, Addison-Wesley, 2001

Robert C. Martin, Engineering Notebook: Developing at a Sustainable Pace, C/C++ Users Journal, October 2000
Richard Gabriel, the-right-thing vs. worse-is-better

Agile Alliance

Last modified: Jan 19 2002