Как разрабатывать программы
Автор | Маттиас Феллизен , Роберт Брюс Финдлер , Мэттью Флэтт , Шрирам Кришнамурти |
---|---|
Предмет | Компьютерное программирование |
Жанр | Учебник |
Издатель | С Прессой |
Дата публикации | 12 февраля 2001 г. |
Место публикации | Соединенные Штаты |
Тип носителя | распечатать |
Страницы | 720 |
ISBN | 0-262-06218-6 |
Класс ЛК | QA76.6 .H697 2001 г. |
Веб-сайт | htdp |
«Как разрабатывать программы» ( 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.
Одним из основных направлений статьи является акцент на разнице в необходимых знаниях предметной области между SICP и HtDP. В диаграмме в документе сравниваются основные упражнения по SICP и HtDP, а в соответствующем тексте описывается, как упражнения в первом требуют значительно более глубоких знаний предметной области, чем упражнения в HtDP. В статье далее объясняется, почему эта разница в необходимых предметных знаниях привела к тому, что некоторые студенты путают предметные знания со знаниями по разработке программ.
В документе говорится о следующих четырех основных усилиях, которые авторы HtDP предприняли для решения предполагаемых проблем с SICP:
- HtDP явно, а не неявно определяет, как следует создавать программы.
- Чтобы упростить программирование, книга знакомит учащихся с пятью различными уровнями знаний, соответствующими уровням сложности определения данных.
- Упражнения в книге сосредоточены на рекомендациях по разработке программ, а не на знании предметной области.
- Книга предполагает меньшие знания предметной области, чем книга SICP.
Затем в статье проводится различие между структурной рекурсией , когда определение связанных данных оказывается самореферентным и обычно требует простого процесса проектирования, и генеративной рекурсией, когда новые данные о проблеме генерируются в середине процесса решения проблемы и самого решения проблемы. метод используется повторно, часто требуя специального математического понимания, и подчеркивается, как это различие делает их подход масштабируемым для объектно-ориентированного (ОО) мира.
Наконец, статья завершается описанием ответов различных преподавателей и студентов после использования HtDP в классе.
Ссылки [ править ]
- ^ Структура и интерпретация учебной программы по информатике. Журнал функционального программирования, том 14, выпуск 4 (июль 2004 г.) Страницы: 365–378 (PDF) , NEU, 2004, заархивировано (PDF) из оригинала 11 мая 2008 г., статья, в которой авторы сравнивают и противопоставляют HtDP с СИКП.
Внешние ссылки [ править ]
- Официальный сайт , 2-е издание 2018 г., 1-е издание 2003 г.
- Критика Абельсона и Сассмана – или – Почему расчеты лучше, чем интриги