We identify the principles involved in designing effective programming assignments for CS1/CS2. Through a case study of a particularly successful recursion assignment, we establish several prerequisites that must be present in the foundation of a potential assignment and discuss techniques for engineering exceptional assignments through changes to their more malleable components.
Todd J. Feldman, Julie Zelenski