Programming and Problem Solving with Ada 95