C++ program design: an introduction to programming and ebject-oriented design - COHOON