How to ask for help: Difference between revisions

From Computer Science Wiki
Line 2: Line 2:


=Step One: Why can't you write this program?=
=Step One: Why can't you write this program?=
When you first realize you have a problem, follow these steps:


With gratitude to  and permission from Stephen Hughes (Coe College) and Philip East (University of Northern Iowa)<ref>http://www.cs.uni.edu/~east/</ref>
With gratitude to  and permission from Stephen Hughes (Coe College) and Philip East (University of Northern Iowa)<ref>http://www.cs.uni.edu/~east/</ref>
Line 11: Line 13:
| I don't understand the problem || [[#Requirements Gathering]]
| I don't understand the problem || [[#Requirements Gathering]]
|-
|-
| I can’t describe how to get a solution  || Algorithmic thinking; problem decomposition
| I can’t describe how to get a solution  || [[#Algorithmic thinking; problem decomposition]]
|-
|-
| I don’t know all the details || Real world problems require research
| I don’t know all the details || Real world problems require research
Line 22: Line 24:
== Requirements Gathering ==
== Requirements Gathering ==


Do you understand ''EVERY. SINGLE. WORD.''' in the problem?
Do you understand ''EVERY. SINGLE. WORD.''' in the problem?  
 
== Algorithmic thinking; problem decomposition ==
 
* Create a diagram of the problem
* Draw a picture of the problem
* Explain the problem to a rubber duck (really)
* Forget about a computer; how would you solve this with a pencil and paper?
* Think out loud
* Explain the problem to a friend
 


== Checklist for solving problems when coding in PHP ==
== Checklist for solving problems when coding in PHP ==

Revision as of 13:18, 12 July 2017

Having problems is normal. If you do not learn how to solve your own problems, life will be difficult for you.

Step One: Why can't you write this program?[edit]

When you first realize you have a problem, follow these steps:

With gratitude to and permission from Stephen Hughes (Coe College) and Philip East (University of Northern Iowa)[1]

Type of problem What you need to do to solve it
I don't understand the problem #Requirements Gathering
I can’t describe how to get a solution #Algorithmic thinking; problem decomposition
I don’t know all the details Real world problems require research
I can solve it by hand, but I don’t know how to code it. New Language Features
I can do it Explore efficiency or professionalism.

Requirements Gathering[edit]

Do you understand EVERY. SINGLE. WORD.' in the problem?

Algorithmic thinking; problem decomposition[edit]

  • Create a diagram of the problem
  • Draw a picture of the problem
  • Explain the problem to a rubber duck (really)
  • Forget about a computer; how would you solve this with a pencil and paper?
  • Think out loud
  • Explain the problem to a friend


Checklist for solving problems when coding in PHP[edit]

Click here for our checklist

How to view our linux error log[edit]

I encourage students to open a new tab in their terminal window. The command below will create a running list of errors. To escape from the output, push the key combination control-C.

tail -f /var/log/php/error.log

Problem Solving Steps[edit]

  1. Repeat the problem, make the error happen again
  2. TRACE the problem (click here to learn more) - Insert a notification or breakpoint into your program
  3. Google the problem in general terms. For example: python how to import a calendar
  4. Re-read your code (sometimes, reading backwards helps you see little errors)
  5. Use your debugging tools
  6. Ask a friend
  7. Google the specific error message your program is raising
  8. Don't ask your teacher until you have a very specific question.

Click the image to learn about common mistakes[edit]

You must learn to solve problems.


Other problem-solving strategies[edit]

  1. Walk away for a few minutes
  2. Take a short break (2 to 3 minutes)
  3. Physically stretch your body
  4. Explain the problem to a little rubber duck (really)

References[edit]