How much choice is too much?

Providing a learner-centered perspective is in keeping with modern constructivist approaches to learning, and this means that courses must be designed with learner attributes and choice in mind. Concerns over accreditation and the need for accountability at the post-secondary level seem to contradict freedom of choice and flexibility of term work, but this need not be the case. This paper outlines numerous strategies for offering choice and flexibility to students in a freshman programming course. Approaches include flexible deadlines, the ability to re-submit work that has already been assessed, writing tasks, contributing to course content, bonuses for embellishments and extra work, and choices about which problems to solve. All of the strategies have been employed in classes, and students' reactions as well as effects on student engagement and quality of work are described.