Этапы решения задач на компьютере: особенности и требования
Компьютеры и программирование - новое качество в решении задач. Но может автоматы Мура и Мили пришлись не к месту. Возможно, формы Бэкуса-Наура не следовало использовать. Быть может, что-то вообще было сделано не так, но выбор между аналоговой и цифровой техникой был определен в пользу последней.
Если бы человек ориентировался на многогранный аналоговый сигнал, а не на двоичную систему счисления и циклический процессор, который манипулирует всего двумя цифрами, то сегодня достижения в информационных технологиях были бы значительно скромнее.
Общественное сознание середины 80-х годов прошлого века сделало правильный выбор: простота - залог успеха. И не ошиблось.
Традиции прошлого века
Компетентные источники, авторитетные специалисты и многочисленные образовательные сайты утверждают, что существует шесть или семь этапов решения задачи на компьютере. Просто, как в сказке:
- Постановка задачи.
- Построение модели.
- Разработка алгоритма.
- Составление программы.
- Отладка и тестирование программы на компьютере.
- Анализ результатов и уточнение модели.
- Факультативно (не все так считают), корректировка.
Все просто и ясно. Информатику по сей день преподают в каждой школе, каждом колледже, каждом высшем учебном заведении и в многочисленных образовательных центрах.
В конце прошлого века ушли в мир иной идеи «программостроительных» предприятий и большие вычислительные машины (ЕС ЭВМ/IBM). Компьютерное дело приобрело свое истинное лицо. Окончательно определились компьютерные архитектуры, сложились синтаксические конструкции языков программирования, закончилась «война» между С/С++ и Паскалем.
Функциональные языки забились в свои узкие ниши, классическое программирование стало называться объектно-ориентированным, а язык Пролог и его аналоги убедили общественное сознание, что до искусственного интеллекта человеку еще далеко.
Логика века текущего
Современное программирование - это сложные задачи, многочисленные коллективы разработчиков, огромные объемы информации и высокая ответственность. В области информационных технологий образовалось множество профессий. С компьютером работает:
- обыватель (лицо без квалификации и ориентации в компьютерном деле);
- домохозяйка;
- директор крупной корпорации;
- бухгалтер частного предприятия;
- инженер коммунальной службы;
- пилот дальнего бомбардировщика;
- повар ресторана местного значения.
И множество других людей, которые даже не представляют, что при решении реальных задач они проходят, как минимум, шесть этапов. Компьютеры не только вошли в повседневную жизнь и стали привычными. Они стали сердцем кофеварки, автомобиля любого класса, смартфона.
Существуют реально действующие идеи умных домов и удаленного управления работой крупной корпорации, в которой последовательность решения любой задачи планируется и контролируется программой.
Из сказанного следует, что этапы решения задач с помощью компьютера - не есть фундаментальное положение информатики или современных информационных технологий, а есть естественное положение вещей.
Задолго до появления компьютера человек сначала что-то думал, потом моделировал, планировал, реализовывал, проверял и анализировал. Все это человек всегда делал на автомате и многократно повторял, чтобы достичь желаемого результата или убедиться в том, что никакого результата быть не может.
Особенности процесса решения задач
Этапность и последовательность достижения цели - залог успеха. Объективность каждого элемента процесса - главное требование. Можно как угодно относиться к реальным обстоятельствам, но они есть.
Тот факт, что многочисленные источники выделяют именно шесть пунктов в решении любой задачи, не говорит об объективности данного, но утверждает: общественное сознание четко выделяет шесть этапов в решении любой задачи. Будет при этом применен компьютер или нет, не важно. Программа - это не прерогатива компьютера. Это особенность поведения человека. Программы были еще во времена фараонов, если не раньше.
В дипломатии программа выглядит как регламент, этикет, правило, обычай, и не обязательно эта программа действий выражена письменно. Логика дипломата - это результат развития поколений.
На производстве программы были еще до конвейера и поточного производства Генри Форда. В горном деле без строгого регламента действий можно обрушить гору, нарушить баланс природных сил, затопить территорию. В школьном обучении программа образования создается опытом и знаниями множества специалистов, а меняется с огромным трудом.
Главная особенность любого этапа решения любой задачи - объективность. Важнейшее требование - достоверная и полная информация. Существенные детали: аккуратность, внимательность, пунктуальность.
Условия достижения результата
Когда в решении задачи принимает участие компьютер, этапы решения задач меняют свое содержание. Требование надлежащей квалификации не обсуждается никогда. Когда человек берется за решение задачи, но не имеет никакого представления о том, как применить компьютер, результата не будет.
Постановка задачи. Требуется знание не только текстового редактора, но и умение рисовать графики, выполнять числовые расчеты.
Построение модели. Без анализа программ моделирования никак не обойтись. Требуется собрать достоверную информацию о том, какие существуют программы моделирования в области решаемой задачи, и научиться их использовать.
Разработка алгоритма. Если сам не программист, то нужно уметь сделать постановку задачи программисту. Самому изучить язык программирования можно за 3-4 месяца, а чтобы прилично владеть языком программирования, нужно, как минимум, год реальной работы.
Остальные пункты - это практика, анализ, практика, анализ, и так в цикле до полного понимания, как именно нужно выполнить постановку задачи, чтобы правильно ее решить.
Все шесть пунктов, которые признало общественное сознание, являются существенными при современном уровне познания, следовательно, требуют к себе пристального внимания и серьезного отношения.
Мышление и психология человека
Задачи приходится решать постоянно. В современном мире без компьютера не обойтись. Времени планировать этапы решения задач с использованием компьютера нет. Решения требуются моментально, точные и обоснованные.
Подсознание определяет работу сознания, но, как это происходит, сознание по сей день не догадывается. Единственное, в чем можно быть однозначно уверенным: основные этапы решения задач с использованием компьютера или без него лежат в подсознании. Сознательное мышление просто следует привычной логике человека, который учитывает собственный опыт и вероятную реакцию окружающего его социума.
В школе этапы решения задач на компьютере школьник обозначает так, как этого хочет учительница, знания которой (по мнению этого школьника) морально устарели еще в прошлом веке.
Современный школьник может легко сделать сайт или поставить хостинг. При этом ему в голову не придет проектировать последовательность этапов решения задач на компьютере, в то время, как задач в разработке сайта, как минимум несколько десятков, а при решении задачи придется подсознательно запланировать действия на несколько месяцев, а то и лет вперед.
Современный студент определяет этапы решения задач на компьютере, как того требует программа обучения, и серьезно обсуждает с преподавателем все шесть этапов решения каждой из них, но здесь все происходит по спирали. Постановка задачи и желаемый результат - это одно целое, если последнее должно быть достигнуто, то первая должна быть уточнена в процессе решения задачи.
Современному компьютерному специалисту не с кем обсуждать этапы решения задач на компьютере. Директор или менеджер его просто не поймет и может отказать в зарплате. Здесь нужно решать задачи, а не думать, как что-то планировать.
Фактически в современном компьютерном деле повторяется давняя традиция психологии человека. Сознание делает свою работу, но в конкретной ситуации играет по правилам социума, в котором оно находится.
Информатика и компьютерное дело
Информационные технологии действительно достигли высот, но это каменный век. Глыбы знаний и умений едва умещаются в сложившиеся синтаксические конструкции языков программирования. Будучи заключенными в них, остаются без движения.
Сомнительно, что Министерство образования похоронит информатику как предмет. Нет сомнения, что компьютерное дело - уже наука. Сфера информационных технологий - это бурлящий океан знаний, профессий, денег, амбиций, идей, и нет такого ученого или коллектива ученых, которые бы дали ему четкое определение.
В каждом конкретном случае квалифицированный специалист воспринимает программирование как этап решения задачи на компьютере, но, прежде чем этот этап наступит, происходит адаптация его сознания к тому, что именно определяет слово программирование и слово компьютер.
Сегодня программирование - это распределенная обработка информации, это несколько языков гипертекста, язык браузера, язык сервера и масса условностей на хостинге. Сегодня компьютер - это личный ноут или смартфон, сотня компьютеров в локальной сети, пара сотен серверов DNS и несколько миллионов компьютеров потенциальных клиентов.
Однако программирование может быть и другим. По сей день жив Паскаль, Си и ФоксПро. Последняя реликвия садит сознание квалифицированного программиста на психологическое расстройство: в мире, где уже летают самолеты, плавают корабли и летают спутники, ему приходится решать задачи на Visual FoxPro в бухгалтерии, которая категорически не желает переходить на Битрикс или ему подобное современное изделие.
Основные этапы решения задач на компьютере определяет конкретное рабочее место, конкретный трудовой коллектив и знания руководства, как следует поступать. Это не объективное, но фактическое положение вещей.
Каменный век информационных технологий
Мнение информатики, что придерживается образовательная программа престижного ВУЗа, которому так указало Министерство образования, не против признать этапы решения задач на компьютере объективными и обоснованными шестью позициями. Но это ничего не меняет в корне.
Решение любой задачи - это процесс применения знаний и умений. Процесс - это всегда этапность, которая повторяется до достижения понимания, как правильно сделать постановку задачи. Результат - это вторично. Главное - определить задачу, прежде чем ее решить.
Применение программирования и компьютера - это применение формализации к информации, которую современный человек не в силах формализовать. Результат: знания и умения помещаются в железобетонные синтаксические конструкции языков программирования и застывают в них. Человек идет дальше, но программа - не результат его действий.
Программирование - это зеркало интеллекта, но умение правильно применить компьютер и написать хорошую программу, это дорогого стоит.
Перспективы информационных технологий
«Глыбы» знаний и умений, застывшие в программах - это не так плохо. Если так делают все, и нет альтернативы, значит, так надо делать. В прошлом веке прославились не только С/С++, Паскаль и Бейсик. Научно-технический прогресс, банковское дело, экономика, управление предприятием и государством обязаны Фортрану, Каболу, PL/1, малым и большим электронно-вычислительным машинам.
Тогда не было современных компьютерных достижений, но многочисленные знания и умения, будучи заключенными в жесткие рамки синтаксиса и формальностей, во многом стали основой современных информационных технологий.
Пора поставить задачу, определить, что будет дальше. Можно предположить, что очередной шестой этап завершен. Пора вернуться в начало. Нужно сделать постановку задачи. Обоснованно и требовательно подойти к этой «новой» задаче.