AP Computer Science Coaching Card
tips to support your peers without stealing from them the joy of discovery or to support yourself
Suggest applying the various pillars of computational thinking:
- Decomposition (D) – breaking big problems into smaller, easier to manage problems
- Abstraction (A) – remove parts of a problem that are unnecessary and make one solution work for
multiple problems - Pattern Recognition (PR) – analyze and look for a repeating sequence
- Algorithm Design (AD) – step-by-step instructions on how to do something
… during different activities:
- "Do you understand all the words used in stating the problem? Can you restate the problem in your own words?"[1] (A)
- "Do you have an idea how to design just one part of the problem? Do that first." (D)
- "It is okay not to know how to solve the problem when you start; you only have to figure out the first step." (D)
- "Which keywords in the problem imply specific control (if,while, for) or data structures (arrays, lists)?" (D/A)
- "On scratch paper write the [string, array, list] and indices and trace through each iteration." (A)
- "Which control (if,while, for) or data structure (array, list) would be helpful?" (A)
- "Is the algorithm needed similar to one of the common algorithms?" (A)
- "Is there part of this problem that is similar to a problem that you have already solved? Review that design." (PR)
- "Start with a [sketch, flowchart, pseudocode, UML diagram] before writing code." (AD)
- "Do you have an idea how to code just one part of the design? Do that first." (D)
- "Which control (if,while, for) or data structure (array, list) would be helpful?" (A)
- "Does your code work for various inputs (e.g., different length sequences)? Have you avoided hard-coding specific values? Did you generalize code to avoid nearly duplicate blocks?" (A)
- "Is there part of this code that is similar to code that you have already written? Review that code." (PR)
- "Test just one part of the solution before coding the next part." (D)
- "Test the boundary cases." (D)
- "Create your own sample input against which to test." (A)
- "Compare your output against the provided sample output to identify differences." (PR)
- "Debug just one part of the solution before coding the next part." (D)
- "Set a breakpoint and use the debugger to trace through the code." (PR)
- "Run the code in the Java Visualizer." (A)
- "Print the values of key variables to verify they have the expected values." (PR)
- "Trace the values of variables in a table on scratch paper while debugging." (PR)
- "Is your result reasonable?"1 (PR)
- "Is there another way of doing the problem that may be simpler?"1 (AD)
- "Can the problem or method be generalized to be useful for future problems?"1 (A)
Do not take control of their mouse or keyboard, show them your code, or instruct them what to type.
NNHS Computer Science PLC 
[1] from Computer Science in K-12 (p. 180)