By Jaspreet Mehdwan
Zuhair Ladha

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?