- Дайте определение «Разбиение задач на части» и объясните своими словами
- Правильно используйте ключевые термины, например «декомпозиция»
- Применяйте изученное к новым примерам и вопросам
- Избегайте типичных ошибок, которые допускают учащиеся в этой теме
Задолго до того, как кто-то напишет код, программисты думают. Вычислительное мышление — это четырёхчастный образ мышления, стоящий за каждым приложением, игрой и сайтом: разбивай задачи, замечай закономерности, игнорируй несущественные детали и проектируй пошаговые решения. Овладейте этими привычками — и программирование станет намного проще; они пригодятся и для подготовки к экзаменам, и в повседневной жизни.
Этот урок посвящён теме «Разбиение задач на части»: разбивайте большие задачи на более мелкие, решаемые части.
Разбивайте большие задачи на более мелкие, решаемые части.
Ключевые идеи
Закономерности превращают одно решение во множество
Написав процедуру, которая находит наибольшее число в списке, вы заодно решили задачи поиска наивысшего балла за экзамен, самого тёплого дня и самого дорогого товара — закономерность та же самая. Понимание этого избавляет программистов от необходимости изобретать решения заново.
Четыре опоры работают вместе
Представьте, что вы организуете школьную ярмарку: вы разбиваете её на палатки, билеты и рекламу; замечаете закономерность — продажа билетов работает так же, как на прошлогоднем концерте; отбрасываете несущественные детали вроде цвета билетов; затем пишете алгоритм — упорядоченные шаги по установке каждой палатки. Настоящие программисты постоянно проходят через все четыре этапа.
Ключевой термин — декомпозиция: Разбиение большой сложной задачи на более мелкие подзадачи, которые легче решать по одной.
Вам нужно организовать благотворительный забег. Назовите два способа разбить задачу на части.
Возможные разбиения: планирование маршрута, спонсорство и реклама; или до, во время и после мероприятия — любое разумное разбиение на подзадачи засчитывается.
Ответ: Возможные разбиения: планирование маршрута, спонсорство и реклама; или до, во время и после мероприятия — любое разумное разбиение на подзадачи засчитывается.
- Переход сразу к коду без обдумывания Исправление: потратьте десять минут на разбиение и планирование на бумаге — это сэкономит часы переписывания позже.
- Принятие совпадения за закономерность Исправление: прежде чем строить решение на закономерности, проверьте, что она выполняется в нескольких случаях; один пример — не закономерность.
Практика
Это огромная задача, скрывающая десятки подзадач — графику, управление, подсчёт очков, — которые нужно разбить и решать по одной.
Неверно — это общий образ мышления для решения задач, который подходит для планирования, учёбы и организации чего угодно.
Задачи с одинаковой структурой решаются одним и тем же методом, поэтому замеченная закономерность позволяет повторно использовать метод вместо того, чтобы начинать с нуля.
Абстракция — несущественная деталь (цвет автобуса) отброшена, осталось главное (маршруты и время).
Быстрая проверка
Что из этого лучше всего определяет "декомпозицию"?
Приведите пример автоматизации в повседневной жизни.
- Разбиение задач на части: разбивайте большие задачи на более мелкие, решаемые части.
- Закономерности превращают одно решение во множество: Написав процедуру, которая находит наибольшее число в списке, вы заодно решили задачи поиска наивысшего балла за экзамен, самого тёплого дня и самого дорогого товара — закономерность та же самая.
- распознавание закономерностей: Замечание сходств или повторений внутри задач и между ними, чтобы можно было повторно использовать решение, которое уже сработало.
- Осторожно: переход сразу к коду без обдумывания
