Может ли представление об этапах решения задачи с помощью компьютера пригодиться в жизни?

Обновлено: 22.11.2024

Кендра Черри, магистр медицины, писательница и консультант по вопросам образования, помогающая учащимся изучать психологию.

Контент Verywell Mind тщательно проверяется командой квалифицированных и опытных специалистов по проверке фактов. Специалисты по проверке фактов проверяют статьи на предмет фактической точности, актуальности и своевременности. Мы полагаемся на самые актуальные и авторитетные источники, которые цитируются в тексте и перечислены внизу каждой статьи. Контент проверяется на факт после редактирования и перед публикацией. Узнать больше.

Джеймс Лейси, MLS, занимается проверкой фактов и исследователем.

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

Что такое алгоритм в психологии?

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

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

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

Примеры алгоритмов

Есть много разных примеров того, как алгоритмы можно использовать в повседневной жизни. Вот некоторые распространенные из них:

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

Причины использования алгоритмов в психологии

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

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

Потенциальные ловушки при использовании алгоритмов

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

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

Подведение итогов

Алгоритмы могут быть отличным выбором для решения проблем, когда ответ должен быть точным на 100 % или когда каждое решение должно следовать одному и тому же процессу. Если главной задачей является скорость, может потребоваться другой подход.

Алгоритмы и эвристики

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

Что такое эвристика?

Эвристика – это умственный прием, который позволяет людям быстро выносить суждения и решать проблемы.

Эти ментальные ярлыки обычно основаны на нашем прошлом опыте и позволяют нам действовать быстро. Однако эвристика на самом деле больше похожа на эмпирическое правило; они не всегда гарантируют правильное решение.

Выбор стратегии

Как же определить, когда использовать эвристику, а когда алгоритм?При решении проблем решение о том, какой метод использовать, зависит от потребности в точности или скорости.

Когда использовать алгоритм

Если требуется полная точность, лучше всего использовать алгоритм. Использование алгоритма повышает точность и сводит к минимуму возможные ошибки.

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

Следуя алгоритму, вы можете быть уверены, что получите правильный ответ на каждую задачу.

Когда использовать эвристику

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

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

Слово от Verywell

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

Хотя каждая ситуация уникальна, вы можете использовать алгоритм, когда точность является главной задачей. Но если время имеет существенное значение, то алгоритм, вероятно, не лучший выбор.

Решение проблем – основа информатики. Программисты должны сначала понять, как человек решает проблему, затем понять, как преобразовать этот «алгоритм» в то, что может сделать компьютер, и, наконец, как «написать» определенный синтаксис (требуемый компьютеру), чтобы выполнить работу. Иногда бывает так, что машина решает проблему совершенно иначе, чем человек.

Программисты умеют решать проблемы. Для решения проблемы на компьютере необходимо:

Уметь представлять информацию (данные), описывающую проблему.

Определить шаги для преобразования информации из одного представления в другое.

Представление информации

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

Хороший программист "закодирует" все "факты", необходимые для представления проблемы, в переменных (см. Переменные). Кроме того, существуют «хорошие способы» и «плохие способы» кодирования информации. Хорошие способы позволяют компьютеру легко «вычислять» новую информацию.

Алгоритм

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

Суть хороших программистов заключается в том, чтобы определить шаги, необходимые для достижения цели. К сожалению, компьютер знает только очень ограниченный и ограниченный набор возможных шагов. Например, компьютер может сложить два числа. Но если вы хотите найти среднее двух чисел, это выходит за рамки базовых возможностей компьютера. Чтобы найти среднее значение, необходимо:

  1. Сначала сложите два числа и сохраните результат в переменной.
  2. Затем: разделите это новое число на два и сохраните результат в переменной.
  3. Наконец: предоставьте этот номер остальной части программы (или распечатайте его для пользователя).

Инкапсуляция, абстракция и сокрытие сложности

Компьютерщики любят использовать причудливое слово "Инкапсуляция", чтобы показать, насколько мы умны. Это просто термин для вещей, которые мы, люди, делаем каждый день. Он сочетается с другим причудливым термином: «Абстракция».

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

Например, если вашему профессору нужна чашка кофе, и он просит вас об одном элементе: "Принесите мне чашку кофе", он использовал как инкапсуляцию, так и абстракцию. Количество шагов, необходимых для фактического получения кофе, можно перечислить. В том числе вставать, идти по коридору, садиться в машину, подъезжать к кофейне, платить за кофе и т. д. и т. д. и т. д.Кроме того, представление о том, что такое чашка кофе, абстрактно. Вы приносите кружку кофе или пенопластовую чашку? Он с кофеином или нет? Он свежесваренный или из концентрата? Это из Африки или Америки?

Всей этой информации СЛИШКОМ МНОГО, и мы бы быстро не смогли работать, если бы нам пришлось помнить все эти детали. Таким образом, мы «абстрагируемся» от деталей и запоминаем только несколько важных элементов.

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

Инкапсуляция

Идея инкапсуляции заключается в том, чтобы хранить информацию, необходимую для конкретной идеи, в наборе переменных, связанных с одним «объектом». Затем мы создаем функции для управления этим объектом независимо от фактических данных. С этого момента мы относимся к идее с «высокого уровня», а не беспокоимся обо всех частях (данных) и действиях (функциях), необходимых для представления объекта в компьютере.

Грубая сила

Грубая сила – это метод решения проблем, основанный на скорости компьютера (насколько быстро он может повторять шаги) для решения проблемы. Например, если вы хотите узнать, сколько раз число 8 встречается в числе 100, вы можете сделать следующее:

Конечно, это глупый способ для компьютера (или человека) решить эту проблему. Реальный способ сделать это:

Если вы сомневаетесь, вы часто можете использовать «грубую силу» для решения проблемы, но это часто экономит время (по крайней мере, время компьютера), чтобы обдумать проблему и решить ее элегантным способом.

Как быстро сориентироваться в продуктовом магазине? Почему никому не нравится мой статус в Facebook? Как быстро расставить книжные полки по алфавиту? Визуализатор данных Apple и выпускник MIT System Design and Management Али Альмоссави решает эти распространенные дилеммы и многое другое в своей новой книге «Плохой выбор: как алгоритмы могут помочь вам мыслить умнее и жить счастливее» — причудливом иллюстрированном руководстве по алгоритмическому мышлению.

Для непосвященных: что такое алгоритм? И как алгоритмы могут помочь нам мыслить умнее?

Алгоритм – это процесс с однозначными шагами, у которого есть начало и конец и который делает что-то полезное.

Алгоритмическое мышление делает шаг назад и задается вопросом: "Если алгоритмы так полезны в вычислениях для достижения предсказуемости, могут ли они также быть полезны в повседневной жизни, когда дело доходит, скажем, до выбора между альтернативными способами? решить проблему или выполнить задачу?» Во всех случаях мы оптимизируем для повышения эффективности: мы заботимся о времени или пространстве.

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

Почему вы написали эту книгу и кому она может быть полезна?

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

Я писал книгу, думая о двух аудиториях. Любой, будь то ученик или преподаватель, который интересуется компьютерными науками и хочет увлекательного и беззаботного, но не глупого введения в эту область. Во-вторых, любой, кто уже знаком с этой областью и хочет испытать способ объяснения некоторых фундаментальных понятий информатики не так, как их преподают.

Я иду в продуктовый магазин, и у меня всего 15 минут. Что мне делать?

Знаете ли вы заранее, как выглядит продуктовый магазин? Если вы знаете, как это выглядит, это определяет ваш список. Как вы расставляете приоритеты в своем списке? Расположите товары таким образом, чтобы вам не приходилось дважды проходить по одним и тем же проходам.

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

Никто не подписан на меня в Instagram. Как получить больше подписчиков?

Концепция ссылок и сетей, которую я рассматриваю в главе 6, уместна здесь. Гораздо проще связаться с людьми, которые могут вас заинтересовать и которые могут заинтересоваться вами, если вы можете начать с клубка ссылок, который соединяет этих людей, а не начинать со случайного места.

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

Каковы секреты успешной публикации в Facebook?

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

С моей первой книгой Bad Arguments я потратил месяц, вложив около 5000 долларов США в рекламу этого проекта, и результаты были умеренными. А потом об этом написал один научный журналист с большой аудиторией, и проект взлетел и с тех пор не останавливается.

Какие проблемы вы хотели бы решить с помощью алгоритма, но не можете?

Когда мы заботимся об эффективности, полезно думать с точки зрения алгоритмов. Бывают случаи, когда это не то качество, для которого мы хотим оптимизировать — например, обучение или любовь. Я прохожу по несколько миль каждый день по всему городу, так как нахожу это расслабляющим. Я никогда не спрашивал себя: «Как мне удобнее всего передвигаться по улицам Сан-Франциско?» Это не имеет отношения к моей цели.

Алгоритмы — отличный способ думать об эффективности, но вопрос должен звучать так: «Какой подход вы можете оптимизировать для достижения этой цели?» Вот что меня беспокоит в самопомощи: книги дают вам серебряную пулю за то, что вы все делаете «правильно», но не учитывают все нюансы, которые отличают нас от других. То, что подходит вам, может не подойти мне.

Какие компании хорошо используют алгоритмы?

Когда вы читаете, что подавляющее большинство сериалов, которые смотрят пользователи, скажем, Netflix, связаны с рекомендательным механизмом Netflix, вы понимаете, что они делают что-то правильно.

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

Например, рассмотрим простое действие, например чистку зубов. Сначала это кажется достаточно простой задачей, но на самом деле чистка зубов включает в себя множество простых шагов. Во-первых, вам понадобится зубная щетка и зубная паста. Вам понадобится раковина с холодной водой. Вам нужно нанести зубную пасту на щетку. Не забудьте включить воду и провести под ней щеткой. Как видите, такое простое действие на самом деле включает в себя много шагов, и если вы пропустите один шаг или сделаете один из них не по порядку, вы можете получить огромный беспорядок!

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

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

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

Ключевые навыки вычислительного мышления

Существует четыре ключевых навыка вычислительного мышления:

  • Разложение
  • Распознавание образов
  • Абстракция шаблона
  • Дизайн алгоритма

Разложение

Декомпозиция — это разбиение сложных проблем на более мелкие, более управляемые части. С маленькими детьми вы можете научить их разложению, попросив их научить вас выполнять простую задачу. Подойдет любая простая деятельность, например, чистка зубов, приготовление завтрака или чтение книги. Студенты должны будут разбить задачу на небольшие простые шаги. Обязательно бросьте им вызов и делайте только то, о чем вас просят! Благодаря этому занятию дети быстро поймут, насколько важно давать ТОЧНЫЕ инструкции.

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

Декомпозиция – важный жизненный навык в будущем, когда учащимся и взрослым потребуется выполнять более масштабные задачи. Учащиеся узнают, как делегировать полномочия в групповых проектах, и приобретут навыки тайм-менеджмента.

Распознавание образов

Распознавание образов заключается в простом поиске закономерностей в головоломках и определении того, применимы ли какие-либо проблемы или решения, с которыми мы сталкивались в прошлом, здесь? Чему мы научились в прошлом, что может помочь нам разобраться в этой проблеме? Если вы когда-либо собирали мебель ИКЕА, вы поймете важность шаблонов. При сборке комода ИКЕА вам, скорее всего, понадобится гораздо больше времени, чтобы собрать первый ящик, чем четвертый или пятый. Когда мы повторяем шаги в нашей сборке, мы учимся решать инструкции быстрее и учимся на своих ошибках. Кропотливый процесс сборки этой первой детали учит нас тому, как выполнять этот процесс более эффективно в будущем.

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

Существует множество способов обучения распознаванию образов в классе. Младшим школьникам может быть полезно исследовать узоры с помощью музыки или цветных кубиков. Учащиеся старшего возраста могут узнать о закономерностях, просматривая периодическую таблицу или исследуя закономерности, наблюдаемые в таблицах умножения. Учащиеся, которым нравится LEGO, могут использовать свои навыки конструирования для изучения моделей. В наборах LEGO часто повторяются шаблоны для одинаковых частей сборки. Например, для набора LEGO может потребоваться собрать 4 колеса таким же образом. Учителя могут дать учащимся построить объект, состоящий из нескольких повторяющихся шаблонов, и дать инструкции только для первой части.

Обобщение шаблонов и абстракция

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

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

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

Дизайн алгоритма

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

Видео о вычислительном мышлении

Примеры вычислительного мышления в реальной жизни

Вычислительное мышление определяется как процесс формулирования и решения задач путем их разбиения на простые этапы. Это мощная техника решения проблем, которая дает нам возможность решать сложные проблемы в современном мире.

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

  • Использование алгоритма для поиска наилучшего маршрута между двумя местами с учетом пробок и других факторов, таких как строительство или дорожные заграждения.
  • Учащиеся используют навыки вычислительного мышления, когда решают, планировать ли занятие на основе прогнозов погоды в приложении.
  • Следуя рецепту, чтобы испечь торт, пример алгоритма.
  • Планирование бюджета включает в себя распознавание закономерностей и декомпозицию, когда вы определяете свои привычки расходования средств в каждой категории.

Упражнения и уроки вычислительного мышления

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

Рабочие листы по вычислительному мышлению

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

Другие ресурсы по вычислительному мышлению:

Вычислительное мышление в классе

Начать обучение вычислительному мышлению в классе легко. Вы можете использовать многие из действий и ресурсов, перечисленных выше, чтобы привнести мощь вычислительного мышления в свой класс. Однако, если вы предпочитаете читать более подробно, вот несколько рекомендуемых книг для начала:

Вычислительное мышление важно!

Как видите, вычислительное мышление — важный навык для понимания учащимися. Навыки, которые учащиеся приобретают, «думая как компьютер», настроят их на успех в будущем. Привнесли ли вы вычислительное мышление в свой класс? Я хотел бы услышать, как это было! Дайте мне знать в комментариях ниже.

Часто задаваемые вопросы о вычислительном мышлении

Вычислительное мышление – очень полезный метод решения проблем, который позволяет разбивать задачи на простые этапы.

Существует четыре ключевых навыка вычислительного мышления. Это декомпозиция, распознавание образов, абстракция образов и разработка алгоритмов.

Мы используем вычислительное мышление каждый день! Вы используете вычислительное мышление, когда решаете, по какому маршруту добраться до работы или учебы, основываясь на такой информации, как отчеты о дорожном движении, погоде и строительных работах.

Преподавателям доступен широкий спектр ресурсов, которые помогут им планировать уроки и освещать важные аспекты вычислительного обучения. Многие ресурсы бесплатны! Ознакомьтесь с нашими примерами в разделе ресурсов выше.

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

Вывод: улучшите навыки своих будущих лидеров, обучив их вычислительному мышлению сейчас

Вычислительное мышление заключается в решении задачи с помощью вычислительных навыков. Этот навык поможет будущим лидерам не только в карьере, но и в повседневной жизни.

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

Закрепить на потом!

Кэти — мама двух непослушных мальчиков и самопровозглашенная суперботанка. Имея опыт работы в области неврологии, она страстно хочет поделиться своей любовью ко всему, что связано с STEM, со своими детьми. Она любит находить творческие способы обучения детей информатике и увлекаться программированием и математикой. Вы можете найти ее блог в Teach Your Kids Code.

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

Проблемы, решения и инструменты

У меня проблема! Мне нужно поблагодарить тетю Кей за подарок на день рождения, который она прислала мне. Я мог бы отправить благодарственное письмо по почте. Я мог бы позвонить ей по телефону. Я мог бы отправить ей сообщение по электронной почте. Я мог бы подъехать к ней домой и поблагодарить ее лично. На самом деле, я мог бы отблагодарить ее многими способами, но суть не в этом. Дело в том, что я должен решить, как я хочу решить проблему, и использовать соответствующий инструмент для реализации (выполнения) моего плана. Почта, телефон, Интернет и мой автомобиль — это инструменты, которые я могу использовать, но ни один из них на самом деле не решает мою проблему. Точно так же компьютер не решает проблемы, это всего лишь инструмент, который я могу использовать для реализации своего плана решения проблемы.

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

История тети Кей использует знакомый контекст, чтобы подготовить почву для полезной точки зрения на компьютеры и компьютерные программы. В следующем списке приведены основные аспекты этой точки зрения.

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

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

Алгоритм – это план решения проблемы.

Человек должен разработать алгоритм.

Человек должен перевести алгоритм в компьютерную программу.

Эта точка зрения закладывает основу для процесса, который мы будем использовать для разработки решений проблем Jeroo. Базовый процесс важен, потому что его можно использовать для решения самых разных задач, в том числе тех, решение которых будет написано на каком-то другом языке программирования.

Процесс разработки алгоритма

Каждое решение проблемы начинается с плана. Этот план называется алгоритмом.

Есть много способов написать алгоритм. Некоторые из них очень неформальные, некоторые довольно формальные и математические по своей природе, а некоторые довольно графические. Инструкция по подключению DVD-проигрывателя к телевизору представляет собой алгоритм. Математическая формула, такая как πR 2, является частным случаем алгоритма. Форма не имеет особого значения, если она обеспечивает хороший способ описания и проверки логики плана.

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

Шаг 1. Получите описание проблемы.

Шаг 2. Проанализируйте проблему.

Шаг 3. Разработайте высокоуровневый алгоритм.

Шаг 4. Усовершенствуйте алгоритм, добавив больше деталей.

Шаг 5. Просмотрите алгоритм.

Шаг 1. Получите описание проблемы.

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

Клиент отвечает за создание описания проблемы, но зачастую это самая слабая часть процесса. Довольно часто описание проблемы страдает от одного или нескольких из следующих типов дефектов: (1) описание основано на невысказанных предположениях, (2) описание неоднозначно, (3) описание неполно или (4) описание имеет внутренние противоречия. Эти дефекты редко возникают из-за невнимательности со стороны клиента. Вместо этого они связаны с тем, что естественные языки (английский, французский, корейский и т. д.) довольно неточны. Частью ответственности разработчика является выявление дефектов в описании проблемы и работа с клиентом над устранением этих дефектов.

Шаг 2. Проанализируйте проблему.

Целью этого шага является определение начальной и конечной точек решения проблемы. Этот процесс аналогичен математику, определяющему, что дано и что должно быть доказано. Хорошее описание проблемы облегчает выполнение этого шага.

Определяя отправную точку, мы должны начать с поиска ответов на следующие вопросы:

Какие данные доступны?

Где эти данные?

Какие формулы относятся к задаче?

Какие существуют правила работы с данными?

Какие отношения существуют между значениями данных?

При определении конечной точки нам необходимо описать характеристики решения. Другими словами, как мы узнаем, когда закончим? Задавание следующих вопросов часто помогает определить конечную точку.

Какие новые факты мы получим?

Какие элементы будут изменены?

Какие изменения будут внесены в эти элементы?

Каких вещей больше не будет?

Шаг 3. Разработайте высокоуровневый алгоритм.

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

Проблема: мне нужно отправить поздравительную открытку моему брату Марку.

Анализ: у меня нет карты. Я предпочитаю купить открытку, а не делать ее самостоятельно.

Этот алгоритм подходит для повседневного использования, но в нем отсутствуют детали, которые пришлось бы добавлять, если бы решение выполнял компьютер. Эти сведения включают ответы на следующие вопросы.

"Какой магазин я посещу?"

"Какие карты нравятся Марку: юмористические, сентиментальные, рискованные?"

Такие детали рассматриваются на следующем этапе нашего процесса.

Шаг 4. Усовершенствуйте алгоритм, добавив больше деталей.

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

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

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

Поэтапное уточнение – это процесс разработки подробного алгоритма путем постепенного добавления деталей к алгоритму высокого уровня.

Шаг 5. Просмотрите алгоритм.

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

Решает ли этот алгоритм очень конкретную проблему или более общую проблему? Если он решает очень конкретную проблему, следует ли его обобщать?

Например, алгоритм, вычисляющий площадь круга радиусом 5,2 метра (формула π*5,2 2 ), решает очень конкретную задачу, а алгоритм, вычисляющий площадь любого круга (формула π*R 2 ), решает более общая проблема.

Можно ли упростить этот алгоритм?

Одна из формул для вычисления периметра прямоугольника:

Более простой формулой будет:

Похоже ли это решение на решение другой проблемы? Чем они похожи? Чем они отличаются?

Например, рассмотрим следующие две формулы:

Сходство: каждый вычисляет площадь. Каждый умножает два измерения.

Различия: используются разные измерения. Формула треугольника содержит 0,5.

Гипотеза. Возможно, каждая формула площади предполагает умножение двух измерений.

Пример 4.1. Собрать и посадить

Этот раздел содержит расширенный пример, демонстрирующий процесс разработки алгоритма. Чтобы завершить алгоритм, нам нужно знать, что каждый Джеру может прыгать вперед, поворачиваться влево и вправо, срывать цветок с его текущего местоположения и сажать цветок в его текущем местоположении.

Постановка задачи (шаг 1)

Иеру начинается с точки (0, 0) лицом на восток, и в его сумке нет цветов. В локации (3, 0) есть цветок. Напишите программу, которая предписывает Джеру сорвать цветок и посадить его в точке (3, 2). После посадки цветка Джеру должен прыгнуть на одну клетку на восток и остановиться. На острове нет других сетей, цветов или джеруа.

НачалоЗавершение

Анализ проблемы (шаг 2)

Цветок ровно на три клетки впереди джеру.

Цветок нужно посадить ровно на две клетки южнее его текущего местоположения.

Иеру должен стоять лицом на восток на одну клетку к востоку от посаженного цветка.

Нет сетей, о которых нужно беспокоиться.

Алгоритм высокого уровня (шаг 3)

Давайте назовем Джеру Бобби. Бобби должен сделать следующее:

Подробный алгоритм (шаг 4)

Давайте назовем Джеру Бобби. Бобби должен сделать следующее:

Просмотрите алгоритм (шаг 5)

Алгоритм высокого уровня разделил проблему на три довольно простых подзадачи. Это кажется хорошей техникой.

Этот алгоритм решает очень специфическую проблему, поскольку Джеру и цветок находятся в очень определенных местах.

На самом деле этот алгоритм является решением немного более общей проблемы, в которой Джеру начинается где угодно, а цветок находится на 3 клетки прямо перед Джеру.

Код Java для "Выбери и посади"

Хороший программист не пишет программу сразу. Вместо этого программист будет писать и тестировать программу в серии сборок. Каждая сборка дополняет предыдущую. Алгоритм высокого уровня поможет нам в этом процессе.

Хороший программист работает постепенно, добавляя маленькие кусочки по одному и постоянно перепроверяя работу до сих пор.

ПЕРВАЯ СТРОКА

Чтобы увидеть это решение в действии, создайте новый сценарий Greenfoot4Sofia и используйте команду меню Edit Palettes Jeroo, чтобы сделать классы Jeroo видимыми. Щелкните правой кнопкой мыши класс Island и создайте новый подкласс с именем по вашему выбору. Этот подкласс будет содержать ваш новый код.

Рекомендуемая первая сборка содержит три вещи:

Основной метод (здесь myProgram() в подклассе вашего острова).

Объявление и создание экземпляра каждого Jeroo, который будет использоваться.

Алгоритм высокого уровня в виде комментариев.

Экземпляр в начале myProgram() помещает Бобби в (0, 0), лицом на восток, без цветов.

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

ВТОРАЯ СТРОКА

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

Выполнив работу на данный момент, вы можете проверить, работает ли этот шаг в запланированном алгоритме должным образом.

ТРЕТЬЯ СТРОКА

В этой сборке добавлена ​​логика "положить цветок". Новый код обозначается комментариями, представленными здесь для обозначения дополнений.

ЧЕТВЕРТАЯ СТРОКА (последняя)

Эта сборка добавляет логику "прыжка на восток".

Пример 4.2. Замена сети на цветок

Этот раздел содержит второй пример, демонстрирующий процесс разработки алгоритма.

Постановка задачи (шаг 1)

Есть два Джеру. Один Джеру начинается в (0, 0) лицом на север с одним цветком в мешочке. Второй начинается в (0, 2) лицом на восток с одним цветком в мешочке. В локации (3, 2) есть сеть. Напишите программу, которая предписывает первому Джеру отдать свой цветок второму. Получив цветок, второй Джеру должен отключить сеть и посадить на ее место цветок. Посадив цветок, Джеру должен повернуться лицом на юг. На острове нет других сетей, цветов или джеруа.

НачалоЗавершение

Анализ проблемы (шаг 2)

Jeroo_2 отстает ровно на два деления от Jeroo_1.

Единственная сеть находится ровно на три позиции впереди Jeroo_2.

У каждого Джеру ровно один цветок.

У Джеру_2 будет два цветка после получения одного от Джеру_1.
Для отключения сети необходимо использовать один цветок.
Другой цветок должен быть посажен в месте расположения сетки, то есть (3, 2).

Jeroo_1 финиширует на (0, 1) лицом на юг.

Jeroo_2 должен финишировать на (3, 2) лицом на юг.

Каждый Джеру закончит с 0 цветами в мешочке. Один цветок был использован для отключения сети, а другой был посажен.

Алгоритм высокого уровня (шаг 3)

Давайте назовем первого Джеру Энн, а второго Энди.

Найдите сеть (но не запрыгивайте на нее)
Отключите сеть
Посадите цветок в месте сети
Лицом на юг

Подробный алгоритм (шаг 4)

Давайте назовем первого Джеру Энн, а второго Энди.

Просмотрите алгоритм (шаг 5)

Алгоритм высокого уровня помогает управлять деталями.

Этот алгоритм решает очень конкретную проблему, но конкретные местоположения не важны. Единственное, что важно, это начальное положение Джеру относительно друг друга и расположение сети относительно местоположения и направления второго Джеру.

Код Java для «Заменить сеть на цветок»

Как и прежде, код следует писать поэтапно в виде серии сборок. Для этой задачи подойдут четыре билда. Как обычно, первая сборка будет содержать основной метод, объявление и инстанцирование объектов Jeroo, а также высокоуровневый алгоритм в виде комментариев. Во второй сборке Энн отдаст свой цветок Энди. В третьей сборке Энди найдет и отключит сеть. В финальном билде Энди разместит цветок и повернет на восток.

ПЕРВАЯ СТРОКА

Эта сборка создает метод main, инстанцирует Jeroos и описывает высокоуровневый алгоритм. В этом примере основным методом будет myProgram(), содержащийся в подклассе Island .

ВТОРАЯ СТРОКА

В этой сборке добавлена ​​логика, позволяющая Энн найти Энди и подарить ему цветок.

ТРЕТЬЯ СТРОКА

В этой сборке добавлена ​​логика, позволяющая Энди находить и отключать сеть.

ЧЕТВЕРТАЯ СТРОКА (последняя)

Эта сборка добавляет логику для Энди, чтобы поместить цветок в (3, 2) и повернуть на юг.

Читайте также: