Question: How would you modify the ComputeGrades sample program if the formula for computing the course grade were different for freshman, sophomore, junior, and senior undergraduate students? Would you design four subclasses of UndergraduateStudent? Or would you modify the body of the computeCourseGrade method of UndergraduateStudent? Discuss the pros and cons of each approach.