
Одним из фундаментальных понятий в информатике является понятие алгоритма. Происхождение самого термина «алгоритм» связано с математикой. Это слово происходит от Algorithmi — латинского написания имени Мухаммеда аль-Хорезми (783–850), выдающегося математика средневекового Востока. В XII в. был выполнен латинский перевод его математического трактата, из которого европейцы узнали о десятичной позиционной системе счисления и правилах арифметики многозначных чисел. Именно эти правила в то время называли алгоритмами. Сложение, вычитание, умножение столбиком, деление уголком многозначных чисел — вот первые алгоритмы в математике.
В наше время понятие алгоритма трактуется шире. Алгоритм — это последовательность команд управления каким-либо исполнителем.
Исполнитель — это тот, для кого составляют правила и план, тот, кто будет их выполнять. Это человек, животное, или машина, которые понимают и умеют точно исполнять отдаваемые им команды.
Команда — это указание исполнителю совершить некоторое действие.
Для каждого исполнителя определена система команд — т.е. набор команд, которые он может выполнить. У разных исполнителей разные системы команд.
В рамках науки термин (понятие) «алгоритм» относится к категории неопределяемых понятий, т.е. не обладающих формальным определением в терминах более простых понятий. Содержание неопределяемого понятия раскрывают: при помощи описаний применения понятия (поясняют на примерах); путем сопоставления данного понятия с содержанием других понятий. Цель публикации — раскрыть содержание понятия «алгоритм».
Алгоритмы окружают человека во всех сферах деятельности и в повседневной жизни. Как перейти дорогу, как дойти до магазина, как найти на карте города Торговый Центр, как решить математическое уравнение, как получить необходимые сведения по какому-либо вопросу и пр. — все строится по алгоритму.
Таким образом, алгоритм может быть предназначен для его выполнения человеком или автоматическим устройством — формальным исполнителем. Задача исполнителя — точная реализация уже имеющегося алгоритма. Формальный исполнитель не обязан вникать в сущность алгоритма, а возможно, и неспособен его понять.
Примером формального исполнителя может служить автоматическая стиральная машина, которая неукоснительно исполняет предписанные ей действия, даже если вы забыли положить в нее порошок. Человек тоже может выступать в роли формального исполнителя, но в первую очередь формальными исполнителями являются различные автоматические устройства, и компьютер в том числе.
Можно выделить алгоритмы вычислительные и управляющие
Вычислительный алгоритм, одно из основных понятий вычислительной математики, последовательность действий, которая, начиная с заданных исходных данных, за конечное число шагов приводит к искомому результату.

Простейшими примерами вычислительного алгоритма являются правила сложения, вычитания, умножения и деления. Под вычислительным алгоритмом часто также понимают последовательность инструкций (последовательность арифметических действий и условных операторов), которые могут быть однозначным образом реализованы в виде программы на компьютере. Вычислительные алгоритмы, по сути, преобразуют некоторые начальные данные в выходные, реализуя вычисление некоторой функции.
Алгоритм управления — это последовательность команд по управлению объектом, приводящая к заранее поставленной цели.
Семантика управляющих алгоритмов существенным образом может отличаться и сводиться к выдаче необходимых управляющих воздействий либо в заданные моменты времени, либо в качестве реакции на внешние события (в этом случае, в отличие от вычислительного алгоритма, управляющий может оставаться корректным при бесконечном выполнении).

Далее речь идёт о вычислительных алгоритмах
Работа по решению любой задачи с использованием компьютера (исполнителя) делится на следующие этапы:
- Постановка задачи.
- Формализация задачи.
- Построение алгоритма.
- Составление программы на языке программирования.
- Отладка и тестирование программы.
- Использование программы.
Часто эту последовательность называют технологической цепочкой решения задачи. Непосредственно к программированию в этом списке относятся пункты 3, 4, 5.
На этапе постановки задачи должно быть четко сформулировано, что дано и что требуется найти. Здесь очень важно определить полный набор исходных данных, необходимых для получения решения.
Второй этап — формализация задачи. Здесь чаще всего задача переводится на язык математических формул, уравнений, отношений. Если решение требует математического описания какого-то реального объекта, явления или процесса, то формализация равносильна получению соответствующей математической модели.
Третий этап — построение алгоритма. Процесс разработки алгоритма для решения задачи называется алгоритмизацией.
Алгоритмизация играет важную роль в информатике и программировании, так как хорошо разработанные алгоритмы обеспечивают эффективное и корректное выполнение задач, а также упрощают процесс отладки и поддержки программного кода.
Первые три этапа предусматривают работу без компьютера. Дальше следует собственно программирование на определенном языке, в определенной системе программирования. Последний (шестой) этап — это использование уже разработанной программы в практических целях.
Таким образом, программист должен обладать следующими знаниями и навыками:
- уметь строить алгоритмы;
- знать языки программирования;
- уметь работать в соответствующей системе программирования.