Как разрабатывать программы


How to Design Programs ( HtDP ) — учебник Матиаса Феллейзена , Роберта Брюса Финдлера , Мэтью Флэтта и Шрирама Кришнамурти по систематическому проектированию компьютерных программ . MIT Press опубликовало первое издание в 2001 году, а второе издание в 2018 году, которое находится в свободном доступе в Интернете и в печатном виде. Книга знакомит с концепцией рецепта проектирования , состоящего из шести шагов процесса создания программ на основе постановки задачи. Хотя изначально книга использовалась вместе с образовательным проектом TeachScheme! (переименован в ProgramByDesign), он был принят во многих колледжах и университетах для обучения принципам разработки программ.

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

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

Как и Структура и интерпретация компьютерных программ (SICP), HtDP опирается на вариант языка программирования Scheme . Он включает в себя собственную интегрированную среду разработки программирования (IDE) под названием DrRacket , которая предоставляет ряд языков программирования. Первый язык поддерживает только функции, атомарные данные и простые структуры. Каждый язык добавляет выразительности к предыдущему. За исключением самого большого обучающего языка, все языки для HtDP являются функциональными языками программирования.

В статье 2004 года «Структура и интерпретация учебной программы по информатике» [1] те же авторы сравнили и противопоставили педагогическую направленность « Как разрабатывать программы» (HtDP) с « Структурой и интерпретацией компьютерных программ » (SICP). В 14-страничной статье авторы различают педагогическую направленность HtDP и SICP и показывают, как HtDP был разработан как учебник для решения некоторых проблем, с которыми некоторые студенты и учителя столкнулись с SICP.

В статье представлен педагогический ландшафт, окружающий публикацию SICP. Статья начинается с истории и критики SICP, после чего следует описание цели учебной программы по информатике. Затем описываются принципы обучения, лежащие в основе HtDP; в частности, разница между неявным и явным обучением принципам дизайна. Затем он продолжает описывать роль Scheme и важность идеальной среды программирования и завершается подробной оценкой содержания и реакции студентов/преподавателей на опыт работы с SICP и HtDP.