A problem solving approach to intermediate algebra