Two uses of dynamic graphics for discovery of solutions to novel introductory computer programming problems in a computer-based exercise: development and evaluation