Learning is enhanced when course materials are relevant to students’ interests and goals, and nothing works better than letting students choose what they want to pursue. When possible, allow students to choose from among a set of problems or assignments, or to choose the topic area to be addressed in a particular assignment.

Some suggestions

Make it their own. The technical requirements stay the same but let students choose the inputs (sound or graphic files, data sources) and/or the form the output takes. The EngageCSEdu collection has lots of great examples!

Be creative with extra credit. The quickest way to add student choice is to incorporate into an existing assignment an extra credit option that challenges students to explore their own application of a concept.

Let students select from a finite list of options. Students do best with bounded, rather than completely open, choices. So within a project or assignment, let students choose a topic or element from a list of possibilities. Ideally, devise the list from actual student input and not from stereotypes or conjecture on what students like.

Examples from the collection

Lightboard Lab

Lightboard Lab is a loops/lists/tuples lab assignment for a CS0/CS1 course. For this lab, students program 8x8 matrices of LED lights via a Fadecandy microcontroller. Students are encouraged to work in pairs and/or individually for this lab.

Engagement Excellence

Lab 1 - Expressionist Animal Creation

First lab for computational art (CS1) using Processing where students write a program that creates a presentation of a creature in an expressionist style. The goals for this lab are:

  1. Understand the Processing 2D coordinate systems
  2. Practice creating shapes in Processing
  3. Understand draw order and command ordering
  4. Practicing using Processing
  5. Learn about expressionism
  6. Make a picture of a creature in an expressionist style 
Engagement Excellence

Problem Set 2: Tessellation

In this assignment, students will be creating mosaics in Python. Students will work to generate tessellations, such as Ring and Hex. Functions must be composed to generate the various images.

Engagement Excellence

Resources