This document introduces algorithms and their basics. It defines an algorithm as a step-by-step procedure to solve a problem and get the desired output. Algorithms can be implemented in different programming languages. Common algorithm categories include search, sort, insert, update, and delete operations on data structures. An algorithm must be unambiguous, have well-defined inputs and outputs, terminate in a finite number of steps, and be feasible with available resources. The document also discusses how to write algorithms, analyze their complexity, and commonly used asymptotic notations like Big-O, Omega, and Theta.