Впервые термин «вычислительное мышление» (ориг. computational thinking) использовал Сеймур Пейперт – один из основоположников теории искусственного интеллекта и создатель языка LOGO. Этот язык программирования был первой и наиболее значимой попыткой дать детям доступ к новым технологиям.
Но вернемся к нашей теме. Идею «вычислительного мышления» подхватила профессор Корнельского университета Жаннетт Винг, опубликовав одноимённую работу. Она дала следующее определение вычислительному мышлению: «мыслительный процесс, включающий в себя постановку проблемы и возможных вариантов её решения, при котором решения представляются в форме, достаточной для эффективного их выполнения (достаточная степень ясности) специалистом в соответствующей области или компьютером».
Вычислительное мышление применимо не только в различных областях знаний, но и в нашей повседневной жизни. Навыки такого мышления являются ключевыми в науке, инженерии и математике. Можно выделить несколько основных составляющих такого мышления:
Декомпозиция (Decomposition)
Декомпозиция – это умение разбить сложный объект (проблему) на несколько частей, для того чтобы процесс нахождения решения стал проще и понятнее. Простыми словами провести декомпозицию – это разделить целое на части. За счёт декомпозиции проблему можно изложить в более простой форме для членов команды, для исполнителей. Также принцип умелого «дробления» позволяет обозначить круг задач, необходимых для решения каждой части проблемы в отдельности, и как результат всей проблемы в целом. Зачастую декомпозиция перекликается со следующим принципом вычислительного мышления –обобщение.
Пример декомпозиции. При подготовке к отпуску, как правило, можно выделить следующие задачи: покупка билетов, резервирование отеля, упаковка чемодана и др.
Обобщение (Pattern Recognition)
Обобщение – это способность распознать при анализе задачи некие общие черты и признаки, которые присущи ряду известных предметов и явлений. То есть это поиск какого-либо типового шаблона, который ляжет в основу будущего алгоритма решения.
Пример обобщения. Все светофоры работают с повторяющейся во времени последовательностью сигналов.
Алгоритмическое мышление (Algorythm)
Алгоритмическое мышление – это навык представления решения проблемы в виде последовательности действий, которые шаг за шагом приведут к достижению результата. И снова можно отметить, что алгоритмизация решения тесно взаимосвязана с принципом обобщения – если решение той или иной задачи лежит в области известной последовательности действий, не стоит придумывать велосипед. И наоборот.
Пример алгоритмического мышления: Когда мы готовим блюдо по какому-либо рецепту, мы выполняем последовательность действий, работаем по алгоритму от шеф-повара.
Абстрагирование (Abstraction)
Абстрагирование – это способность исключить незначительные и несущественные детали, выделив при этом основную концептуальную идею.
Пример абстрагирования: Когда мы представляем себе велосипед, мы оперируем только значимыми деталями – руль, два колеса, рама. В то же время мы абстрагируемся от числа зубьев у звездочек переключения скоростей.
Оценка промежуточных результатов (Debugging)
Ещё одной из важнейших составляющих вычислительного мышления является промежуточная оценка результатов, с отладкой в случае необходимости. На каждом этапе работы над решением, необходимо задавать себе вопрос – «Работает ли прототип (алгоритм) как требуется, либо есть отклонения от желаемого поведения, что можно улучшить для достижения корректных результатов?».
Если пренебречь этим принципом и упорно двигаться к результату, то последствия могут быть крайне печальны – неработающий прототип, уйма потерянного времени и, самое худшее, – нежелание продолжать работу над проектом после таких само спровоцированных сложностей.
Пример оценки результата: В процессе готовки блюда мы пробуем его на промежуточных стадиях – достаточно ли соли, разварился ли картофель и др.
В своё время Жаннета Винг предполагала, что вычислительное мышление станет неотъемлемой частью образования каждого ребенка. В наши дни преподаватели в области науки, техники, инженерии и математики (STEM) активно используют в своих методиках задачи, требующие навыков вычислительного мышления, что позволяет студентам оттачивать свои способности.
С другой стороны, в секциях образовательной робототехники для детей также возможно внедрение задач, направленных на развитие вычислительного мышления у детей с раннего возраста. В нашей методике мы сочли необходимым использовать задачи такого рода – это позволяет привить детям инженерные навыки через игровой образовательный процесс.