Document ID: /fineweb-2-swissfilter-quality_10-filterrobots/filtered/05133.jsonl.gz/27

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).
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 .
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
Los estudiantes deberían ser capaces de:
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.
Los estudiantes deberían ser capaces de:
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
Los estudiantes deberían ser capaces de:
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 mínimos necesarios:
Recursos opcionales:
Esta unidad es esencial para la preparación de los Módulos general y profesional del Nivel Avanzado