This document discusses fundamentals of algorithms including:
- What algorithms are and their evolution from Persian mathematicians.
- The process of designing algorithms including defining inputs, outputs, and order of instructions.
- The need for algorithms to be correct according to their specifications and methods for confirming correctness.
- Iterative design issues such as use of loops, efficiency considerations, and estimating execution time.
- Algorithmic strategies like divide and conquer, backtracking, dynamic programming, and heuristics.