How to ask for help: Difference between revisions
Mr. MacKenty (talk | contribs) |
Mr. MacKenty (talk | contribs) |
||
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 12: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]
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]
- Repeat the problem, make the error happen again
- TRACE the problem (click here to learn more) - Insert a notification or breakpoint into your program
- Google the problem in general terms. For example:
python how to import a calendar
- Re-read your code (sometimes, reading backwards helps you see little errors)
- Use your debugging tools
- Ask a friend
- Google the specific error message your program is raising
- Don't ask your teacher until you have a very specific question.
Click the image to learn about common mistakes[edit]
Other problem-solving strategies[edit]
- Walk away for a few minutes
- Take a short break (2 to 3 minutes)
- Physically stretch your body
- Explain the problem to a little rubber duck (really)