In theoretical computer science (a branch of mathematics), nondeterminism is usually applied to discrete processes or algorithms, and it means, stepwise progression in a series of discrete steps, but with possibly several choices along the way.

Nondeterministic algorithms are convenient in the description of search algorithms; and play an important role in complexity theory.