When teaching introductory courses, teach students to use “top-down thinking” and “bottom-up implementation.”

  • Thinking deeply about abstraction early on helps intro students approach problem solving later on. This "top-down thinking" allows students to create a foundation of connecting new problems with high-level abstraction concepts.
  • Write activities that prompt students to develop abstract mappings of problems before actually coding the solution. Demonstrate how this "top-down" thinking leads to better coding by comparing code written with top-down thinking and without.

More about this tip

External Source

Interview with John Dougherty