Problem solving: Analytical Methods
Ø Most if not all programmers use a method to solve a problem. Without a method, a problem might take a long time to solve.
Ø There are many techniques to solve problems.
Ø "NAOMIE" (Needs, Aim, Objectives(Outcomes), Method, Implementation, Evaluation) is very efficient in solving problems.
Ø Example: You are told to make a program for a bank.
Ø Using "NAOMIE", the first step to solve the problem it to figure out what this program will need. Will it need a place for the client's address, account number, printing capability, etc, etc.
Ø The second step is: Aim. Who is the final project aimed at: a computer literate or a computer illiterate person. What will the end product look like. Will it have a graphics user interface or will it be all text?
Ø The third step is Objectives(Outcomes). What is the objective of this program. Is it the same as planned or is it different. If it is different why is it different?
Ø The fourth step is Method. What method should be used to meet the requirements set forth in the Aim.
Ø The fifth step is implementation. How is this program going to be implemented. Are you going to use classes? Are you going to use recursion? Etc. Etc.
Ø And finally the last step is Evaluation. Could this problem have been solved using a different approach and ending up with a better solution? Is it effective? Is it realistic?
Specifications:
Ø What specifications does the program have to meet. This question should be the base of your solution. The solution should be based around this principle.
Ø Specifications could have a huge variety of meanings. The specifications could be about hardware limitations, or they could be about user limitations(e.g. how much to show for a menu)
I.O:
Ø How the program reads input and displays the output should also be considered when solving a problem. If the program is to get it's input from a barcode scanner then it should have some way to determine what it reads. If the program outputs to a printer then it should have a function to print.
Reports:
Ø Another thing to consider while solving a problem is how is the program going to display reports. Is it going to have a report or not? If it is going to have a report, then what would be included on the report?