Программирование - как подают и с чем едят

Mar 28, 2011 11:09

Всем читающим доброго времени суток.

В настоящее время понятия "программирование" и "программа" большинство людей ассоциирует исключительно с компьютерами, хотя, если посмотреть на эти понятия более пристально, они, безусловно, имеют прямое отношение к компьютерам, но это далеко не единственная область в которой они используются. Я не сильно ошибусь, если скажу что любой человек хотя бы раз в жизни устанавливал время звонка будильника, механического или электронного - это не имеет значения, имеет значение сам процесс. Это действие мы часто выполняем даже не задумываясь, но тем не менее оно является одним из многих примеров обычных бытовых действий которые можно в некоторой степени отнести к области программирования. А теперь вопрос - сколько домохозяек не знает как запустить стиральную машинку (при ее наличии разумеется)? Практически ни одной! В общем примеров масса.

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

И так начнем
"Алгоритм", "Программа" и "Программирование".
Это одни из самых простых понятий не смотря на иностранное происхождение слов, что часто и сбивает с толку. Слова же "Порядок действий" или "Последовательность действий" вызывают меньшее отторжение и понятны любому, хотя фактически означают одно и тоже. Для того чтобы что-либо сделать нужно выполнить тот или иной набор действий в строго определенной последовательности либо с некоторыми вариантами, не нарушающими общий порядок действий. Пример? А пожалуйста (я знаю что чайник всех достал, не о нем, не надейтесь). Задача: попасть с работы (из школы) домой. Порядок действий (он же алгоритм): Выйти на улицу -> дойти до автобусной остановки -> дождаться автобуса -> посмотреть подходит он нам или нет, если нет, ждем следующий, если да - садимся и едем -> смотрим на остановки: если нужная - выходим, если нет - едем дальше  -> доходим до дома -> заходим домой. Сложно? Да каждый день вы делаете это даже не задумываясь.

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

Таким образом "Программирование" - это ни что иное как составление программы действий для исполнителя - человека или устройства. Однако несмотря на все сказанное может возникнуть некоторая путаница, а именно, выше упоминались будильники, стиральные машины и прочие так сказать "программируемые" устройства. На самом деле используя данные устройства мы не программируем их, а всего лишь сообщаем им необходимую информацию для выполнения заложенных в них программ - настраиваем программу. Если взять стиральную машину, то программой можно считать, например, режим "быстрая стирка". Настройкой программы будет температура воды, число оборотов в минуту при отжиме, время начала при отложенном запуске и т.п.

В следующий раз я постараюсь рассказать о том что такое информация и о некоторых связанных с ней понятиях.

Отдельное спасибо volt220  за конструктивную критику

ЛикБез

Previous post
Up