JavaRush /Java блог /Random /Что такое компьютерное мышление? “Залог успеха” и “жизнен...

Что такое компьютерное мышление? “Залог успеха” и “жизненно важный навык XXI века.”

Статья из группы Random
В статьях на JavaRush мы не только говорим о Java, его изучении, особенностях и последующем трудоустройстве в сфере компьютерной разработки, но и “вкладываемся” во всестороннее развитие наших читателей. Для этого мы уделяем внимание и базовым понятиям, понимание которых не только позволит стать профессиональным программистом, но и поможет совершенствоваться в дальнейшем, независимо от выбранного направления. И сегодня у нас как раз такая тема. Фундаментальная, как пирамида Хеопса. А именно: Компьютерное мышление (Computational thinking). “Залог успеха” и “жизненно важный навык XXI века.” Что такое компьютерное мышление? - 1

Что такое Компьютерное мышление?

Компьютерное мышление (“вычислительное мышление” кажется более подходящим термином на русском, но в Рунете более распростран именно первый вариант) — это концепция систематического подхода к проблеме для последующего создания решения, которое может реализовать компьютер. Попросту говоря, прежде чем учить компьютер, как решать ту или иную проблему, в самой проблеме и способах ее решения должен разобраться человек, и компьютерное мышление — техника именно для этого. Данную концепцию в 1980 году предложил математик и специалист по компьютерным наукам Сеймур Паперт (Seymour Papert) как теоретическую базу для более эффективного решения проблем. В образовательной сфере компьютерное мышление как концепция начало набирать популярность после заметки профессора компьютерных наук Джаннетт Уинг (Jeannette Wing): в 2006 году она предложила ввести компьютерное мышление в образовательную программу для детей в качестве одного из фундаментальных навыков, которым должны обладать все люди. “Залог успеха” и “жизненно важный навык XXI века.” Что такое компьютерное мышление? - 2

Четыре столпа Компьютерного мышления

Компьютерное мышление как техника базируется на четырех ключевых методах.
  • Декомпозиция.

    Разделение комплексной проблемы на ряд более мелких и решаемых проблем.

  • Абстракция.

    Фокусировка исключительно на важной для решения информации и игнорирование ненужных деталей.

  • Распознавание паттернов.

    Поиск сходства рассматриваемой проблемы с другими, уже решенными, чтобы перенести на нее уже отработанные подходы.

  • Алгоритмы.

    Разработка пошагового решения проблемы или правил для ее решения.

Все эти компоненты — равноценно важные составные части компьютерного мышления. Это значит, что без правильного применения каждого из них не получится эффективно использовать данную технику. А правильное применение компьютерного мышления — это основа основ программирования. “Залог успеха” и “жизненно важный навык XXI века.” Что такое компьютерное мышление? - 3

Применение Компьютерного мышления в жизни

По большому счету, компьютерное мышление как метод выходит далеко за рамки программирования, а его составные части постоянно используются большинством людей при решении задач разного уровня сложности. Классический базовый пример: вам нужно попасть из точки А в точку Б в незнакомом городе. Чтобы решить, какой путь выбрать, вы:
  • Разделяете эту задачу на ряд более мелких (декомпозиция): изучить карту и возможные варианты маршрута, выбрать способ передвижения в точку Б и т.д.
  • Затем вы оцениваете привлекательность разных маршрутов в зависимости от их длины, наличия по пути интересных мест или удобству передвижения (абстракция).
  • Потом обдумываете возможные варианты, исходя из прошлого опыта передвижения в других городах, наиболее схожих по размеру и городскому ландшафту (распознавание паттернов).
  • На основе всего этого выбираете наиболее подходящий маршрут и способ передвижения (алгоритмы).
Это базовый пример, но более глубокое понимание компьютерного мышления будет полезным во многих областях, причем не только технических. Многие комплексные проблемы с обилием факторов и разного рода данных в повседневной жизни можно решить с применением компьютерного мышления. Сейчас компьютерное мышление как концепция набирает популярность в качестве базовой образовательной дисциплины и в целом становится важной техникой, которую можно интегрировать во многие рабочие процессы для улучшения результатов. “Стремясь найти наиболее эффективное решение проблемы, мы постоянно оцениваем самые очевидные варианты решения, находя в них достоинства и недостатки. Компьютерное мышление позволяет форматировать кажущуюся сложной проблему в ту, которую мы можем решить. Суть компьютерного мышления также состоит в рекурсивном мышлении и параллельной обработке информации. В программировании это означает, что мы интерпретируем код в виде данных и данные в виде кода. Это и проверка типов как обобщение размерного анализа, и признание как достоинств, так и недостатков алиасинга или присвоения кому-либо или чему-либо более одного имени. Это также и оценка качества написанной программы не только по критериям правильности ее работы и эффективности, но и с точки зрения эстетики и дизайна системы с учетом ее простоты и элегантности,” — поясняет Джаннетт Уинг в своей заметке о важности изучения компьютерного мышления, опубликованной в 2006 году. “Залог успеха” и “жизненно важный навык XXI века.” Что такое компьютерное мышление? - 4

Изучение и развитие навыков Компьютерного мышления

Что касается изучения компьютерного мышления как техники и дисциплины, на сегодняшний день желающим доступно довольно много материалов на эту тему. Так, Международное общество технологий в образовании (ISTE) предлагает всем желающим разработанный при поддержке компании Google бесплатный курс Computational thinking, предназначенный в том числе и для технических специалистов. Также бесплатный курс по компьютерному мышлению можно найти на ресурсе Coursera, например. Программы по компьютерному мышлению, как для студентов разных уровней, так и для преподавателей, предлагает и Академия робототехники Университета Карнеги-Меллона. Ну и наконец, в компьютерном мышлении одну из главенствующих ролей играет логика. Для ее тренировки будет полезно регулярно решать задачи и головоломки, например. Ниже — несложный базовый подход к освоению, развитию и постоянному использованию четырех основных техник компьютерного мышления.
  • Практика декомпозиции.

    Просто старайтесь применять этот принцип (если, конечно, вы этого еще не делаете) к разного рода задачам и проблемам, которые нуждаются в решении. “Фишка” здесь в том, чтобы приучить свой ум к применению данного подхода на постоянной основе без сознательной концентрации. Несмотря на то, что разделение одной проблемы/задачи на ряд более мелких — это довольно-таки банальное для многих решение (особенно в программировании), далеко не все умеют его применять и делают это регулярно.

  • Практика абстракции.

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

  • Практика навыка распознавания паттернов.

    По мере практического применения компьютерного мышления, которое начинается с декомпозиции, будут развиваться и навыки распознавания паттернов. Подход здесь тот же, что и к декомпозиции — просто практикуйте поиск сходств с другими, уже решенными проблемами. Распознавание паттернов позволяет решать проблемы быстрее, используя уже отработанные и привычные для вашего мозга шаблоны мышления.

  • Практика навыка формирования алгоритмов

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

“Залог успеха” и “жизненно важный навык XXI века.” Что такое компьютерное мышление? - 5

Мнения

Ну и завершим данный материал несколькими цитатами экспертов, которые показались нам наиболее интересными и лаконичными. “Компьютерное мышление является жизненно важным навыком для работников 21-го века. Несмотря на то, что сейчас обучение компьютерным наукам и компьютерному мышлению становится все более распространенным, им все еще не уделяется достаточно внимания как базовым дисциплинам, которые могут принести студентам, в частности, большую пользу, помогая им адаптироваться и привыкнуть к “традиционному программированию,” — отмечают Джеймс Локвуд (James Lockwood) и Эйдан Муни (Aidan Mooney), профессора Университета Мейнута в Ирландии и авторы доклада Computational Thinking in Education: Where does it fit? “Компьютерное мышление, в значительной степени, — это залог вашего успеха, о какой бы сфере мы ни говорили. Эта техника настолько сильна в решении реальных, а не только компьютерных, задач, что ее нужно сделать одним из основных образовательных предметов. По крайней мере, если вы, как и я, согласны с тем, что основополагающая цель образования должна состоять в обогащении нашей жизни через поиск наиболее эффективных решений проблем любого рода,” — считает Конрад Вольфрам (Conrad Wolfram), известный британский техно-эксперт и предприниматель. Ну и завершим, пожалуй, цитатой уже упоминавшейся выше Джаннетт Уинг, которую можно считать одним из основных современных популяризаторов компьютерного мышления как концепции: “Образовательные преимущества компьютерного мышления — начиная с использования абстракций, — повышают и укрепляют интеллектуальные навыки и, следовательно, могут быть перенесены в любую область. Ученые в сфере компьютерных наук хорошо знают ценность абстракций, мышления на разных уровнях абстракции, абстрагирования для управления сложностью и увеличения масштаба и т. д. На текущий момент, наша задача — объяснить ученым, не занимающимся компьютерными науками, и всем остальным, что мы подразумеваем под компьютерным мышлением, и в чем состоят его преимущества!”
Комментарии (5)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
oncer Уровень 15
31 июля 2020
Есть в этом что-то от изобретения велосипеда. Особенно умиляет высказывание Джаннетт Уинг: "На текущий момент, наша задача — объяснить ученым, не занимающимся компьютерными науками, и всем остальным, что мы подразумеваем под компьютерным мышлением, и в чем состоят его преимущества!” Серьезно? Объяснить ученым, что такое абстрагирование, алгоритм, применение уже известных методов при решении новых, но схожих проблем (здесь - распознавание паттернов) и т.д. Что же это за ученые такие темные? Я вовсе не отрицаю важности и пользы изложенных здесь приемов - все верно и очень полезно, Просто за правило взять! Но говорить об этом, как о чем-то суперновом и ранее неведомом, которое даже ученым надо "объяснить", все же чересчур.
11 мая 2020
Курс от Гугл, НЕ бесплатный: 75-99$.
Fen4kin Уровень 14
5 мая 2020
Вот это прям то, чего лично мне не хватает в программировании. Только недавно, при втором прохождении курса, начала понимать, что язык программирования, в частности Java, — то всего лишь средство. А для успешного программирования нужен именно такой системный подход. Спасибо за наводку на Курсеру. Гугл пока заполнен)
Sergej Carik Уровень 27
4 мая 2020
Согласен. Особенно декомпозицию начал часто использовать в работе, отдаленной от IT сферы. Стало легче принимать трудные решения.