Питер Макоуэн - Вычислительное мышление: Метод решения сложных задач

Тут можно читать онлайн Питер Макоуэн - Вычислительное мышление: Метод решения сложных задач - бесплатно ознакомительный отрывок. Жанр: Справочники, издательство Альпина Паблишер, год 2017. Здесь Вы можете читать ознакомительный отрывок из книги онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Вычислительное мышление: Метод решения сложных задач
  • Автор:
  • Жанр:
  • Издательство:
    Альпина Паблишер
  • Год:
    2017
  • Город:
    Москва
  • ISBN:
    978-5-9614-5020-0
  • Рейтинг:
    5/5. Голосов: 11
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 100
    • 1
    • 2
    • 3
    • 4
    • 5

Питер Макоуэн - Вычислительное мышление: Метод решения сложных задач краткое содержание

Вычислительное мышление: Метод решения сложных задач - описание и краткое содержание, автор Питер Макоуэн, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru
Вычислительное мышление – это мощный инструмент для решения задач и понимания мира. Оно лежит в основе программирования, благодаря ему ученые решают задачи в области информатики, но его же можно использовать и для решения повседневных проблем. Оно настолько важно, что во многих странах его стали преподавать в школе. Но в чем же его суть?
Если вы хотите узнать больше о вычислительном мышлении, ищете новые способы стать эффективнее и любите математические игры и головоломки, эта книга для вас. В то же время вы научитесь навыкам, необходимым для программирования и создания новых технологий. Даже если вы не планируете писать программы и изобретать, вы сможете применять навыки вычислительного мышления, чтобы справиться с любыми жизненными проблемами.

Вычислительное мышление: Метод решения сложных задач - читать онлайн бесплатно ознакомительный отрывок

Вычислительное мышление: Метод решения сложных задач - читать книгу онлайн бесплатно (ознакомительный отрывок), автор Питер Макоуэн
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Есть еще один тип абстрагирования — абстрагирование данных. В этом случае прячут подробности хранения данных, то есть как они представленына самом деле. Например, числа в реальности хранятся на компьютере в бинарном коде — как последовательность нолей и единиц. То есть число 16 выглядит как 00010000. Мы игнорируем этот факт, когда думаем о числах. У нас в голове именно 16 — десятичное число, которое мы привыкли использовать. Когда мы пишем программы, то используем в инструкциях десятичные числа, а не двоичные. Но наши программы просят пользователей вводить десятичные числа. При этом компьютер с ними не работает. Пользователям вообще не надо знать, что числа хранятся именно в таком виде, — эта подробность спрятана.

Мы используем абстрагирование не только при создании программ. Оно подходит и для их оценки. Например, как мы видели ранее, оно кстати при выборе алгоритма для помощи пациенту с синдромом «запертого человека». Если нужно решить, какой из двух алгоритмов с одинаковой задачей работает быстрее, не надо думать о времени как таковом. Отвлечемся от этих подробностей и будем думать только о выполненной работе — сколько операций нужно провести, чтобы довести до конца каждый алгоритм и справиться с задачей. Если для одного алгоритма нужно выполнить 100 инструкций, а для другого — только 10, то второй будет быстрее. Проверяем это, просто пересчитывая операции, не засекая время. Мы прячем подробности о временны`х затратах на операции, чтобы облегчить себе задачу.

Обобщение

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

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

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

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

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

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

Декомпозиция

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

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

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

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Питер Макоуэн читать все книги автора по порядку

Питер Макоуэн - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Вычислительное мышление: Метод решения сложных задач отзывы


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


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x