Tools to support dynamic problem generation for the instruction of design-related tasks