Unidad P2 - Diseño descendente de programas

 

Objetivo final de la unidad

Los estudiantes deberían ser capaces de diseñar, programar, y evaluar algoritmos estructurados para problemas que necesiten un enfoque descendente (de arriba hacia abajo; con un principio y un fin).

Contexto

Después de las primeras experiencias con algoritmos sencillos diseñados y programados en la unidad P1: Introducción a la Programación, los estudiantes deberían aprender a utilizar un enfoque descendente mientras continúan usando las mismas herramientas de diseño y el mismo entorno de programación. Cuando los problemas son más complejos, la necesidad de un enfoque descendente es más que evidente. La programación descendente es la manera normal en que se diseña y produce el software comercial .

Resumen del Contenido de la Unidad

La unidad contiene tres actividades principales: el diseño de algoritmos descendente, la traducción del diseño a un programa y su introducción en el sistema. Como ocurría en la unidad P1: Introducción a la Programación, estas tres actividades siempre serán consecutivas y estarán estrechamente ligadas unas a otras. Aunque las siguientes descripciones traten cada actividad de forma separada, el orden de presentación no dicta necesariamente la secuencia de enseñanza.

 

1. Diseño descendente de algoritmos

Objetivos

Los estudiantes deberían ser capaces de:

  1. Describir y especificar el problema a resolver;
  2. Desarrollar algoritmos efectivos y eficientes para la resolución paso a paso de un problema, usando un enfoque descendente.

Contenido

Al principio el profesor presentará algunos problemas complejos para ser resueltos, pero dentro de un marco de procedimientos ya realizados y disponibles en el sistema (que correspondan a partes o subproblemas del problema original). En una segunda etapa, estos procedimientos serán analizados por los estudiantes que también deberán programarlos por sí mismos.

Algunos problemas deberían dirigirse al procesamiento de cadenas, usando las herramientas ofrecidas por el lenguaje de programación disponible. Los algoritmos de este tipo son importantes porque hacen evidente que sólo un procesamiento formal es el que se espera de la computadora. Algunos ejemplos de problemas convenientes son: concatenación, contar el número de palabras de un texto, escribir un texto al revés, cambiar todas las vocales de un texto y buscar una palabra en un texto.

Es importante indicar los problemas que estarían fuera del alcance de estas posibilidades formales, tales como: traducir, corregir o resumir un texto.

 

2. Traducir el diseño a un programa

Objetivos

Los estudiantes deberían ser capaces de:

  1. comprender que una computadora procesa sólo "objetos formales";
  2. transformar sus algoritmos en programas en un lenguaje procedimental que use funciones o procedimientos formales;
  3. producir un programa estructurado y procedimental, legible, comprensible e interactivo.

Contenido

Es importante que los algoritmos descendentes diseñados se transformen en programas que posean procedimientos y funciones, para que los estudiantes aprecien la necesidad de este tipo de construcciones.

Antes de que el programa real sea escrito, los estudiantes deberían evaluar y depurar, paso a paso, los diversos subalgoritmos de que conste; deberían crear su propio conjunto de datos de prueba y explorar las diferentes partes del algoritmo, pero también el algoritmo como una totalidad.

Los estudiantes deberían usar los siguientes elementos de programación: procedimientos, funciones, variables globales y locales y parámetros. Deberían ofrecérseles procedimientos y funciones como herramientas para el procesamiento de cadenas, las cuales deberán usar para solucionar problemas de procesamiento de texto.

 

3. Introducción en el sistema

Objetivos

Los estudiantes deberían ser capaces de:

  1. usar un entorno de programación estándar para editar, compilar, depurar, actualizar y ejecutar los programas diseñados.
  2. dar una descripción escrita significativa y útil del funcionamiento interno y externo del programa.

Contenido

Los estudiantes deberían almacenar y recuperar los programas en y desde el disco, para su uso y modificación posterior. Deberían aprender a diferenciar entre los errores de sintaxis y los errores de ejecución; e identificar las posibles causas para cada tipo de error.

Los estudiantes deberían probar sus programas con datos de prueba proporcionados o creados para determinar las correcciones y las limitaciones, y deberían aprender cómo obtener una copia impresa y una copia en disco de su código fuente.

Los profesores deberían asegurar que la documentación producida de los programas sea clara y adecuada para que los demás usuarios sean capaces de comprender cómo funcionan y poder realizar modificaciones adicionales.

Recursos

Recursos mínimos necesarios:

Recursos opcionales:

Conexiones

Esta unidad es esencial para la preparación de los Módulos general y profesional del Nivel Avanzado


Anexo 1 Sumario Menú principal