stringtranslate.com

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 presenta el concepto de receta de diseño , un proceso de seis pasos para crear programas a partir del planteamiento de un problema. Si bien el libro se utilizó 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 del planteamiento del 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 presenta cuidadosamente formas de datos de complejidad progresivamente creciente. Comienza con datos de formas atómicas y luego avanza hacia 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, permitiendo así que un programador que encuentre una nueva forma de datos pueda 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 de programación (IDE), denominado DrRacket , que proporciona una serie de lenguajes de programación. El primer lenguaje sólo admite funciones, datos atómicos y estructuras simples. Cada idioma añade poder expresivo al anterior. Excepto el lenguaje de enseñanza más grande, todos los lenguajes para HtDP son lenguajes de programación funcionales .

Base pedagógica

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 artículo 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 profesores tenían con SICP.

El artículo presenta el panorama pedagógico que rodea la publicación del SICP. El artículo comienza con una historia y crítica del SICP, seguida de una descripción del objetivo del plan de estudios de informática . Luego describe los principios de enseñanza detrás del 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 evaluación exhaustiva del contenido y la reacción de los estudiantes y profesores ante la experiencia con SICP frente a HtDP.

Uno de los principales enfoques del artículo es el énfasis en la diferencia en el conocimiento del dominio requerido entre SICP y HtDP. Un gráfico en el artículo compara los ejercicios principales en SICP y HtDP, y el texto relacionado describe cómo los ejercicios del primero requieren conocimientos de dominio considerablemente más sofisticados que los de HtDP. El artículo continúa explicando por qué esta diferencia en el conocimiento del dominio requerido ha resultado en que ciertos estudiantes hayan confundido el conocimiento del dominio con el conocimiento del diseño de programas.

El artículo afirma los siguientes cuatro esfuerzos principales que los autores de HtDP han realizado para abordar los problemas percibidos con SICP:

  1. HtDP aborda explícitamente, en lugar de implícitamente, cómo se deben construir los programas.
  2. Para facilitar la programación, el libro guía a los estudiantes a través de cinco niveles de conocimiento diferentes correspondientes a niveles de complejidad de definición de datos.
  3. Los ejercicios del libro se centran en directrices de diseño de programas, más que en conocimientos del dominio.
  4. El libro asume menos conocimiento del dominio que el de SICP.

Luego, el artículo distingue entre recursividad estructural , donde la definición de datos relacionados resulta ser autorreferencial , lo que generalmente requiere un proceso de diseño sencillo, y recursividad generativa, donde se generan nuevos datos del problema en medio del proceso de resolución del problema. El método se reutiliza, lo que a menudo requiere conocimientos matemáticos ad hoc , y enfatiza cómo esta distinción hace que su enfoque sea escalable al mundo orientado a objetos (OO).

Finalmente, el artículo concluye con una descripción de las respuestas de varios profesores y estudiantes después de haber utilizado HtDP en el aula.

Referencias

  1. ^ La estructura e interpretación del plan de estudios de informática. Journal of Functional Programming, volumen 14, número 4 (julio de 2004) Páginas: 365 - 378 (PDF) , NEU, 2004, archivado (PDF) desde el original el 11 de mayo de 2008un artículo en el que los autores comparan y contrastan HtDP con SICP.

enlaces externos