Break down lengthy or elaborate processes into discrete steps that students can perform sequentially. This strategy can be an important tool for success.

  • This is an essential programming skill that they can apply to almost any problem they have to solve in CS.
  • You can model this process for students.
    • Ask students what components need to go in each part of a 'for loop' first, to help support them in writing well-developed 'for loops.'
    • Encourage students to write helper functions as opposed to lengthy, multi-purpose functions by limiting the number of lines a function can be.
    • Explain that the process of breaking a problem into pieces is also helpful for solving problems in industry.
  • It can be easy for teachers—relative experts—to forget how unintuitive or unobvious successful problem-solving strategies are for novice students.
  • Breaking up larger processes helps students think deliberately about each step while performing complex tasks.
  • Once you have identified the steps for students, consider naming them memorably, and give students a lot of opportunities to practice them. This allows to see how they generalize to other similar problems.
  • Extra info from the CS Teaching Tips Team: For example, understanding how a computer executes a line of Java code is an elaborate process.
    • We can break this down into discrete steps to help explain the process, for instance:
      • creating new stack frames when methods are called
      • writing the names and values of variables within those stack frames

More about this tip

External Source

Teach Like a Champion by Doug Lemov, Technique 13: "Name the Steps"

"Promising new pedagogical approaches for teaching high school computer science" by Chris Stephenson

Interview with Nick Melnyk