How to Design an Algorithm

AfaqMansoorKhan 200 views 15 slides Sep 05, 2021
Slide 1
Slide 1 of 15
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15

About This Presentation

An algorithm is a plan, a logical step-by-step process for solving a problem. Algorithms are normally written as a flowchart or in pseudo-code.

A flowchart is a diagram that represents a set of instructions. Flowcharts normally use standard symbols to represent the different types of instructions....


Slide Content

Algorithm Design Afaq Mansoor Khan

Algorithm An algorithm is a plan, a logical step-by-step process for solving a problem. Algorithms are normally written as a flowchart or in pseudocode.

Algorithm Design Since modern computing uses algorithms much more frequently than at any other point in human history, a field has grown up around their design, analysis, and refinement. The field of algorithm design requires a strong mathematical and computer science background. It offers a growing number of highly compensated career options, as the need for more sophisticated algorithms continues to increase.

From Small Tasks to Big Data A simple task can be solved by an algorithm generated with a few minutes, or at most a morning’s work. However, arriving at problems so complicated that they have stymied mathematicians for years — or even centuries. Modern computer confronts problems at this level in such areas as cyber-security, as well as big data handling — the efficient and thorough sorting of sets of data so large that even a standard computer would be unable to process them in a timely fashion.

From Small Tasks to Big Data Examples of big data might include “every article on Wikipedia,” “every archived web page going back to 1998,” or “the last six months of online purchases made in America.”

Understanding the Problem Before an algorithm can be designed, it is important to check that the problem is completely understood. What are the inputs into the problem? What will be the outputs of the problem? In what order do instructions need to be carried out? What decisions need to be made in the problem? Are any areas of the problem repeated? Once these basic things are understood, it is time to design the algorithm.

Designing an Algorithm The key to any problem-solving task is to guide your thought process. The most useful thing to do is keep asking ‘What if we did it this way?’ Exploring different ways of solving a problem can help to find the best way to solve it. “When designing an algorithm, consider if there is more than one way of solving the problem.”

Designing an Algorithm When designing an algorithm there are two main areas to look at: the big picture - What is the final goal? the individual stages – What hurdles need to be overcome on the way to the goal?

Flowcharts A flowchart is a diagram that represents a set of instructions. Flowcharts normally use standard symbols to represent the different types of instructions. These symbols are used to construct the flowchart and show the step-by-step solution to the problem.

Using Flowcharts Flowcharts can be used to plan out programs. Planning a program that asks people what the best subject they take is, would look like this as a flowchart:

Algorithm Engineering When the design of new algorithms is applied in practical terms, the related discipline is known as algorithm engineering. The two functions are frequently carried out by the same people, although larger organizations employ specialized designers and engineers, given their level of need for new and specialized algorithms.

Algorithm Engineering Like the design process, algorithm engineering frequently involves computer science accreditation, with a strong background in mathematics: where they exist as a separate, specialized profession. Algorithm engineers take the conceptual ideas of designers and create processes from them that a computer will understand.

“An Algorithm is like a recipe” - Unknown

Any Questions?

Thank You! ☺