“He (Richard Feynman) was always searching for patterns, for connections, for a new way of looking at something, but I suspect his motivation was not so much to understand the world as it was to find new ideas to explain.Algorithms and algorithmic problem solving occupy a central place in computer science and engineering.Algorithmic problem solving is a great starting point for students beginning their computer science and engineering studies.
Given a fixed method of implementing algorithms (for example, the Turing machine, or a fixed programming language) we may ask how much computational resources an algorithm consumes.
In particular, it is often of practical importance to know how much time and how much memory a given algorithm consumes.
The Church-Turing Thesis (a meta-mathematical statement) asserts that any "reasonable" method of computation is equivalent to any other, i.e., any algorithm that can be implemented in one computational device can be implemented in any other.
As a consequence, the notion of algorithm is independent of the choice of implementation.
Students are expected to write complete solutions to each problem in the set.
Problem Solving Algorithm
An algorithms is a step by step procedure to solve logical and mathematical problems A recipe is a good example of an algorithm because it tells you what you need to do step by step.
It takes inputs (ingredients) and produces an output (the completed dish).
The words 'algorithm' and 'algorism' come from the name of a Persian mathematician called Al-Khwārizmī (Persian: خوارزمی, 780–850).
Algorithmic problem solving can be approached starting with an informal notion of an algorithm.
Students do not need any experience with computer programming to develop their algorithmic thinking skills.