Challenge students to move beyond memorizing design patterns and decide which design approach makes sense for a particular software problem. Across 5 realistic scenarios, students examine the problem, ...