Cómo diseñar programas


Cómo diseñar programas ( HtDP ) es un libro de texto de Matthias Felleisen , Robert Bruce Findler , Matthew Flatt y Shriram Krishnamurthi sobre el diseño sistemático de programas informáticos . MIT Press publicó la primera edición en 2001 y la segunda edición en 2018, que está disponible gratuitamente en línea e impresa. El libro introduce el concepto de receta de diseño , un proceso de seis pasos para crear programas a partir de un enunciado del problema. Si bien el libro se usó originalmente junto con el proyecto educativo TeachScheme! (renombrado ProgramByDesign), ha sido adoptado en muchos colegios y universidades para enseñar principios de diseño de programas.

Según HtDP, el proceso de diseño comienza con un análisis cuidadoso de la declaración de un problema con el objetivo de extraer una descripción rigurosa de los tipos de datos que consume y produce el programa deseado. La estructura de estas descripciones de datos determina la organización del programa.

Luego, el libro introduce cuidadosamente formas de datos de complejidad progresivamente creciente. Comienza con datos de formas atómicas y luego progresa a formas compuestas , incluidos datos que pueden ser arbitrariamente grandes. Para cada tipo de definición de datos, el libro explica cómo organizar el programa en principio, lo que permite a un programador que encuentra una nueva forma de datos seguir construyendo un programa sistemáticamente.

Al igual que la Estructura e Interpretación de Programas Informáticos (SICP), HtDP se basa en una variante del lenguaje de programación Scheme . Incluye su propio entorno de desarrollo integrado (IDE) de programación, denominado DrRacket , que proporciona una serie de lenguajes de programación. El primer lenguaje solo admite funciones, datos atómicos y estructuras simples. Cada idioma añade poder expresivo al anterior. Excepto por el lenguaje de enseñanza más grande, todos los lenguajes para HtDP son lenguajes de programación funcionales .

En el artículo de 2004, The Structure and Interpretation of the Computer Science Curriculum, [1] los mismos autores compararon y contrastaron el enfoque pedagógico de Cómo diseñar programas (HtDP) con el de Estructura e interpretación de programas informáticos (SICP). En el documento de 14 páginas, los autores distinguen el enfoque pedagógico de HtDP del de SICP y muestran cómo HtDP fue diseñado como un libro de texto para abordar algunos problemas que algunos estudiantes y maestros tenían con SICP.

El artículo presenta el panorama pedagógico que rodea la publicación de SICP. El documento comienza con una historia y una crítica de SICP, seguido de una descripción del objetivo del plan de estudios de computación . Luego describe los principios de enseñanza detrás de HtDP; en particular, la diferencia entre la enseñanza implícita y explícita de los principios de diseño. Luego continúa describiendo el papel de Scheme y la importancia de un entorno de programación ideal , y concluye con una extensa evaluación del contenido y la reacción de los estudiantes/profesores a la experiencia con SICP frente a HtDP.