They are the set of well defined instruction in sequence to solve a program with a clear stopping point. That’s why it should have accurate input and output and each step in it is obvious to slove the problem easily.