Enhancing Instruction through General Case Programming