Niz instrukcija koje objašnjavaju način rešavanja određenog problema. Algoritam mora biti detaljno i tačno specifikovan, tako da ne sme biti sumnje šta treba da se uradi sledeće, i mora da ima konačan broj koraka. Kompjuterski programi su algoritmi u jezicima koje kompjuter može da razume, ali isti algoritam može biti napisan u više različitih jezika. Algoritam takođe može biti i set instrukcija koje bi osoba trebalo da sledi.
Niz instrukcija nije algoritam ukoliko nema prekretnu tačku, ili ako su instrukcije suviše nejasne da bi ih bilo moguće lako slediti.
Prekretna tačka može biti na različitim tačkama u generalnoj proceduri, ali mora biti određeno gde je prekretna tačka za konkretni slučaj.