Fundamentals of C++: Understanding Programming and Problem Solving