A practice problem generator