Automation in CS1 with the Factoring Problem Generator