A *computer program* is clear instructions in a programming language that solve some problem. You can write this program in different programming languages, but the solution to the problem irrespective of programming language remain the same.

Therefore, an algorithm is **an independent solution** to a computer-based problem.

**About Algorithms Tutorial**

This tutorial is written for anyone who wants to learn algorithms. There are few prerequisites to this tutorial and they are

- You must be familiar with basic mathematical concepts such as
*exponents, set theory, mathematical induction, trees, graphs, relations, limits and so on.* - Some knowledge of programming is recommended such as C/C++ or Java Programming.

### Algorithm Tutorial Topics

Introduction To Algorithms |
Divide And Conquer |

Greedy Algorithms |
Dynamic Programming |

Branch And Bound Algorithms |
Backtracking |