Теория:

Повседневно человек выполняет большое количество самых разнообразных задач. Мы об этом даже не задумываемся, потому что некоторые задачи для нас стали автоматизированными действиями. Например, «почистить зубы», «перейти дорогу», «собрать портфель»  и т.д.
  
Иные задачи, наоборот, бывают настолько трудными, что требуют от нас длительных размышлений и немалых усилий для получения результата. Например, задача «выучить английский язык» требует от нас большое количество сложных действий, чем решение задачи «купить воды».
 
Любую, даже самую простую задачу мы всегда решаем за несколько последовательных шагов.
 
Рассмотрим задачу «вскипяти чайник» как последовательность действий:
  1. взять чайник;
  2. открыть крышку;
  3. налить воды;
  4. закрыть крышку;
  5. включить плиту;
  6. поставить чайник на плиту;
  7. дождаться, пока чайник закипит;
  8. выключить плиту.
Таким образом можно описать процесс решения любой задачи. Например, задачи, которые ты решаешь в школе «найти сумму двух чисел», «вычислить площадь прямоугольника», «выполнить синтаксический разбор предложения», «найти размер компьютерного файла».
  
Последовательность действий в решении задачи называется алгоритмом. Исполнитель — это объект, который может выполнить алгоритм. Исполнителем может быть человек, животное или какое-то устройство: компьютер, стиральная машина.
Алгоритм — это описание последовательности действий, приводящих к решению задачи.
Свойства алгоритма.
  1. Понятность. Алгоритм должен быть написан на понятном для исполнителя языке. Действия должны быть точными, ясными, однозначными.
  2. Прерывность (раздельность). Алгоритм должен представлять собой отдельные шаги. Необходимо использовать минимальное количество шагов. Каждый шаг должен приносить определенный результат.
  3. Результативность. Каждый алгоритм должен приводить к обязательному решению поставленной задачи.
  4. Обобщенность (массовость). Алгоритм должен решать не одну какую-то задачу, а некоторый класс однотипных задач. Например, написали алгоритм для вычисления суммы двух чисел. Этот алгоритм должен работать для сложения любых двух чисел.