This repository introduces the most common programming techniques and algorithmic design concepts. It includes solving a variety of algorithmic problems along with analyzing different approaches - their properties, applications, advantages, and drawbacks.