Algorytmy są jednym z fundamentów programowania. Prawidłowo zaprojektowany algorytm jest podstawą efektywnego i niezawodnego programu. Opisanie problemu w postaci algorytmu nie jest prostym zadaniem -- wymaga wiedzy z zakresu matematyki, umiejętności oceny złożoności obliczeniowej i znajomości zasad optymalizacji obliczeń. Istnieje wiele metod projektowania algorytmów. Znajomość tych metod znacznie ułatwia analizę zagadnienia i przedstawienie go w postaci zalgorytmizowanej.