프로그램 설계 방법
How to Design Programs| 작가. | 마티아스 펠라이슨, 로버트 브루스 핀들러, 매튜 플랫, 슈리람 크리슈나무르티 |
|---|---|
| 나라 | 미국 |
| 주제 | 컴퓨터 프로그래밍 |
| 장르. | 교재 |
| 출판인 | MIT 프레스 |
발행일자 | 2001년 2월 12일 |
| 미디어 타입 | 인쇄물 |
| 페이지 | 720 |
| ISBN | 0-262-06218-6 |
| LC Class | QA76.6.H697 2001 |
| 웹 사이트 | htdp |
HtDP(How to Design Programs)는 마티아스 펠라이슨, 로버트 브루스 핀들러, 매튜 플랫, 슈리람 크리슈나무르티가 쓴 컴퓨터 프로그램의 체계적인 설계에 관한 교과서입니다.MIT Press는 2001년에 초판을, 2018년에 제2판을 발행했습니다.이 판은 온라인과 인쇄로 자유롭게 구할 수 있습니다.이 책은 문제 진술로부터 프로그램을 만드는 6단계 과정인 디자인 레시피의 개념을 소개하고 있다.이 책은 원래 교육 프로젝트인 TeachScheme!(ProgramByDesign으로 명칭 변경)와 함께 사용되었지만, 많은 대학에서 프로그램 설계 원칙을 가르치는 데 채택되었습니다.
HtDP에 따르면, 설계 프로세스는 원하는 프로그램이 소비하고 생성하는 데이터의 종류에 대한 엄격한 설명을 추출하는 것을 목표로 문제 설명의 신중한 분석에서 시작합니다.이러한 데이터 설명의 구조에 따라 프로그램의 구성이 결정됩니다.
그런 다음, 이 책은 점차 증가하는 복잡성의 데이터 형태를 조심스럽게 소개한다.원자 형태의 데이터로 시작하여 임의로 클 수 있는 데이터를 포함한 복합 형태로 진행됩니다.이 책은 각 종류의 데이터 정의에 대해 원칙적으로 프로그램을 구성하는 방법을 설명하므로 새로운 형태의 데이터를 접한 프로그래머가 여전히 체계적으로 프로그램을 구축할 수 있다.
SICP(Structure and Interpreteration of Computer Programs)와 마찬가지로 HtDP는 다른 프로그래밍 언어 체계에 의존합니다.여기에는 일련의 프로그래밍 언어를 제공하는 자체 프로그래밍 통합 개발 환경(IDE)인 DrRacket이 포함되어 있습니다.제1언어는 함수, 원자 데이터 및 단순한 구조만 지원합니다.각 언어는 이전 언어에 표현력을 더합니다.가장 큰 교육 언어를 제외하고, HtDP의 모든 언어는 기능성 프로그래밍 언어입니다.
교육학적 근거
2004년의 논문 「컴퓨터 사이언스 [1]커리큘럼의 구조와 해석」에서는, 같은 저자가, HtDP(How to Design Programs)의 교육학적 초점과 SICP(Structure and Interpretation of Computer Programs)의 교육학적 초점을 비교 및 대조했습니다.14페이지 분량의 논문에서 저자들은 HtDP의 교육학적 초점을 SICP의 교육적 초점과 구별하여 일부 학생과 교사가 SICP와 관련된 문제를 해결하기 위한 교과서로 HtDP가 어떻게 설계되었는지 보여준다.
이 논문은 SICP의 출판을 둘러싼 교육학적 지형을 소개한다.이 백서는 SICP에 대한 역사와 비평으로 시작하여 컴퓨팅 커리큘럼의 목표에 대해 설명합니다.그런 다음 HtDP의 배후에 있는 교육 원리, 특히 설계 원리에 대한 암묵적 교육 대 명시적 교육 간의 차이를 설명합니다.다음으로 스킴의 역할과 이상적인 프로그래밍 환경의 중요성에 대해 설명하고 SICP와 SICP의 경험에 대한 콘텐츠 및 학생/시설적 반응을 폭넓게 평가하여 마무리합니다.HtDP.
이 문서의 주요 초점 중 하나는 SICP와 HtDP 간의 필수 도메인 지식 차이에 대한 강조입니다.이 문서의 도표는 SICP와 HtDP의 주요 연습을 비교하고 있으며, 관련 텍스트는 HtDP의 연습보다 훨씬 더 정교한 도메인 지식을 필요로 하는 전자의 연습에 대해 설명하고 있다.이 백서에서는 이러한 필수 도메인 지식의 차이가 특정 학생들이 도메인 지식과 프로그램 설계 지식을 혼동하는 결과를 초래하는 이유를 계속 설명합니다.
이 문서에서는 HtDP의 저자들이 SICP와 관련하여 인식된 문제를 해결하기 위해 수행한 다음과 같은 4가지 주요 노력을 소개합니다.
- HtDP는 프로그램의 구성 방법을 암묵적으로 처리하는 것이 아니라 명시적으로 설명합니다.
- 프로그래밍을 쉽게 하기 위해 이 책은 복잡성의 데이터 정의 수준에 해당하는 5가지 지식 수준을 안내합니다.
- 이 책의 연습은 도메인 지식보다는 프로그램 설계 가이드라인에 초점을 맞추고 있습니다.
- 이 책은 SICP보다 도메인 지식이 적다고 가정하고 있다.
다음으로 이 백서는 관련된 데이터 정의가 자기반복적인 구조재귀와 문제해결 프로세스 중간에 새로운 문제데이터가 생성되고 문제해결방법이 재사용되는 생성재귀로 구분한다.수학적 통찰력 및 이러한 차이를 통해 접근 방식이 객체 지향(OO) 세계에 어떻게 확장 가능한지 강조합니다.
마지막으로, 이 논문은 교실에서 HtDP를 사용한 후 다양한 교직원과 학생들의 반응을 설명하는 것으로 마무리된다.
레퍼런스
- ^ The Structure and Interpretation of the Computer Science Curriculum. Journal of Functional Programming, Volume 14, Issue 4 (July 2004) Pages: 365 - 378 (PDF), NEU, 2004, archived (PDF) from the original on May 11, 2008 저자들이 HtDP와 SICP를 비교 대조하는 논문.
외부 링크
- 공식 홈페이지, 2018년 2회, 2003년 1회
- Abelson과 Sussman에 대한 비판 - 또는 - 왜 계산이 계획보다 나은가?