Use puzzles, problem solving, and tinkering in assignments and activities to build students’ confidence and interest in pursuing Computer Science and to ensure that students understand and develop necessary skills for success.

  • Students interested in puzzles, problem solving, and tinkering will ultimately be more likely to pursue CS.

  • Starting an intro course with students working on necessary problem solving skills helps students get comfortable with the class, especially students who are overwhelmed by the thought of jumping into programming on the first day.

  • No matter what language students are working in, they need to have a strong grasp of problem solving skills.

  • Below is an example skill building puzzle taken directly from Guide to Teaching Puzzle Based Learning:


    • "Three toads and three frogs are sitting on rocks in a pond. The toads (brown) are on one side; the frogs (green) on the other. There is an empty rock between them. The critters have to change places using as few moves as possible. They can slide into an adjacent empty space, or hop over exactly one other critter onto an empty rock. The toads move only to the right; the frogs only to the left.

      Can you swap the toads and frogs without letting any critter move backward? How many moves? How many hops? How many slides?

      What about with 4 frogs and 4 toads? Can you generalize your solution for n frogs and n toads?"


  • Here is a sample activity you can give to students built form the resource above:

    • Give students papers representing frogs, toads, and a little path.

    • First, have students solve this puzzle using the paper figures.

    • Next, ask students to write down their instructions for someone else to follow to solve this puzzle.

    • Now, ask students to solve the a modified version of this problem where there are four frogs and four toads on opposite sides of the bridge.

      • The goal of this modification is to help students move from the low-level to a high-level abstraction.

        • The low-level descriptions for solving the original problem tend to break down under this modification.

      • If students are still answering with low-level descriptions, have students try to generalize their answer so the number of frogs can continue to increase.

        • This should help students see the general pattern and develop a high-level abstraction for solving this problem.

More about this tip

External Source

Interview with Serita Nelesen.

"Women Who Choose CS" by Google Education, under "Self Perception"