Preface

Algorithms have many applications and occur in all fields, from computer science to biology to economics.

Looking specifically at computer science, algorithms form the core of the field of study. There are two fundamental components:

  1. Getting to the mathematically clean core of a problem
  2. Identifying the appropriate algorithm design techniques based on the problem structure

The goal is to learn how to take issues of varying complexities from different areas of computing and identify clean algorithmic problem formulations. This will, in turn, help us learn how to design efficient algorithms for the resulting problems.