Un program este o succesiune de comenzi sau instructiuni ce vor fi executate de sistemul de calcul
Clasificarea după nivelul de abstractizare (care printre altele corespunde cu ușurința cu care programele pot fi citite și înțelese de către programatori):
- limbaje de generația întâia: limbajele cod-mașină (limbaje mașină):asembler X86
- limbaje de generația a doua: limbajele de asamblare
- limbaje de generația a treia: limbaje de nivel înalt, cum ar fi C-ul (și toate derivatele sale: C++, Java, ...), Pascal, Fortran ș.a.
- limbaje de generația a patra: limbajele neprocedurale, orientate pe rezolvarea unei anumite clase de probleme: SQL ș.a.
- limbaje de generația a cincea: limbaje utilizate în domenii precum logica fuzzy, inteligența artificială sau și rețelele neuronale: Prolog, LISP ș.a.
Datele de intrare sunt datele cunoscute la inceputul executiei algoritmului.
Datele de iesire sun rezultatele problemei,obtinute prin prelucrarea datelor de intrare in timpul executiei algoritmului.