Разбиение задач на части

Разбивайте большие задачи на более мелкие, решаемые части.

Около 4 мин чтения
  • Дайте определение «Разбиение задач на части» и объясните своими словами
  • Правильно используйте ключевые термины, например «декомпозиция»
  • Применяйте изученное к новым примерам и вопросам
  • Избегайте типичных ошибок, которые допускают учащиеся в этой теме

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

Этот урок посвящён теме «Разбиение задач на части»: разбивайте большие задачи на более мелкие, решаемые части.

Определение: Разбиение задач на части

Разбивайте большие задачи на более мелкие, решаемые части.

Ключевые идеи

Закономерности превращают одно решение во множество

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

Четыре опоры работают вместе

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

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

Разобранный пример: Разбиение задач на части

Вам нужно организовать благотворительный забег. Назовите два способа разбить задачу на части.

Возможные разбиения: планирование маршрута, спонсорство и реклама; или до, во время и после мероприятия — любое разумное разбиение на подзадачи засчитывается.

Ответ: Возможные разбиения: планирование маршрута, спонсорство и реклама; или до, во время и после мероприятия — любое разумное разбиение на подзадачи засчитывается.

Типичные ошибки
  • Переход сразу к коду без обдумывания Исправление: потратьте десять минут на разбиение и планирование на бумаге — это сэкономит часы переписывания позже.
  • Принятие совпадения за закономерность Исправление: прежде чем строить решение на закономерности, проверьте, что она выполняется в нескольких случаях; один пример — не закономерность.

Практика

Почему «сделать игру» — слишком большая задача, чтобы сразу начинать писать код?
Подумайте о декомпозиции.

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

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

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

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

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

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

Абстракция — несущественная деталь (цвет автобуса) отброшена, осталось главное (маршруты и время).

Быстрая проверка

Разбиение задач на части — быстрая проверка

Что из этого лучше всего определяет "декомпозицию"?

Разбиение большой сложной задачи на более мелкие подзадачи, которые легче решать по одной.

Приведите пример автоматизации в повседневной жизни.

Стиральная машина, выполняющая цикл стирки, или таймер центрального отопления — оба следуют заранее заданным шагам без участия человека каждый раз.
Главные выводы
  • Разбиение задач на части: разбивайте большие задачи на более мелкие, решаемые части.
  • Закономерности превращают одно решение во множество: Написав процедуру, которая находит наибольшее число в списке, вы заодно решили задачи поиска наивысшего балла за экзамен, самого тёплого дня и самого дорогого товара — закономерность та же самая.
  • распознавание закономерностей: Замечание сходств или повторений внутри задач и между ними, чтобы можно было повторно использовать решение, которое уже сработало.
  • Осторожно: переход сразу к коду без обдумывания