Steps to developing a usable algorithm algorithms, computer science, math, logic Model the problem Find an applicable and useful algorithm Performance checks: speed size (runtime fits in memory) If performance checks fail, why? Address problem Iterate until satisfied --> Source