This paper presents an object-oriented approach to the problem of finding optimal binary search trees. We show that object-oriented techniques produce a solution that is an improvement over those created procedurally and that is well within the reach of our undergraduate students. Combining the study of optimality with that of object-oriented design helps the students gain a deeper appreciation of both.