Módulo General del Nivel Avanzado

Unidad GA1 - Fundamentos de programación y desarrollo de software

 

Objetivo

Los estudiantes deberían ser capaces de diseñar y programar sistemas relativamente pequeños, basados en computadora, que sean modelos de problemas orientados a procesos.

Subobjetivos

Los estudiantes deberían ser capaces de:

  1. asumir los principios básicos del ingeniería del software;
  2. analizar metódicamente los problemas orientados a procedimientos mediante la descomposición en pasos de dichos procedimientos;
  3. aplicar técnicas más o menos formales para diseñar algoritmos eficaces y estructuras de datos;
  4. codificar y realizar programas y subprogramas (Módulos) usando un entorno de programación de propósito general;
  5. usar un modelo funcional de computadora y su entorno de programación.

Contexto

Los estudiantes necesitan desarrollar las habilidades fundamentales de la Informática como una disciplina y del desarrollo del software a todos los niveles. Ello supone el uso de más o menos métodos formales de análisis de problemas , haciendo especial hincapié en que los diseños de los programas no sean demasiado complejos y, sobre todo, que posean todo tipo de especificaciones y consideraciones para el usuario que ha de utilizar el entorno.

Especial atención merece el tipo de problemas que se pueden programar usando, por un lado, tipos de datos fundamentales, simples y estructurados (carácter, entero, real, array, etc.) y un control básico de estructuras de alto nivel (secuencia, selección y repetición) y, por otro lado, un lenguaje estructurado por Módulos.

Asimismo, será de gran importancia la modelado mediante procesos de abstracción (descomposición descendente en subprocesos y subprogramas). Los métodos de análisis, el diseño de estrategias y entornos de lenguajes de programación deberían soportar este tipo de modelado.

Contenido

Los estudiantes resolverán varios problemas cuya complejidad y dificultad serán progresivas. Los problemas se obtienen de áreas de aplicación reales, a partir de las cuales los estudiantes puedan comprender claramente y crear modelos. Los pequeños problemas individuales se eligen para aprender a usar nuevas operaciones algorítmicas en conjunción con elementos ya conocidos. Pero también deberán incluirse algunos problemas para que los estudiantes los comprendan, los integren y aprendan de ellos.

Análisis de problemas

Los estudiantes aplicarán técnicas formales, informales y elementales para analizar problemas sencillos orientados a procesos en muchas áreas de aplicación y los describirán en términos de subproceso paso a paso.

Diseño

Algoritmos: Los estudiantes diseñarán soluciones modulares mediante análisis descendente y diseño por etapas. Elegirán y especificarán estructuras de datos y algoritmos para crear el diseño. Las estructuras de datos y las estructuras de control usadas en los algoritmos deberían estar directamente relacionadas con las estructuras primitivas del lenguaje de programación estructurado por bloques.

Interfaz de usuario: Los estudiantes diseñarán una interfaz sencilla de usuario para sus algoritmos en forma de un árbol de diseño de pantallas.

Programación

Los algoritmos y la estructura modular se codifican en un lenguaje de programación de propósito general.

Realización y evaluación

El código se realizará entonces en forma de programa, que deberá ejecutarse sobre un sistema haciendo uso de un entorno de programación disponible. Los estudiantes, después, probarán y depurarán los programas e identificarán las limitaciones de los mismos.

Temas

Diseño de Software

Análisis

Diseño

Algoritmos

Realización

Evaluación

Entorno de programación

Elementos del lenguaje de programación

Recursos

Recursos mínimos necesarios:

Recursos opcionales:

Conexiones

Metodología

Los conceptos y las habilidades incluidas en esta unidad son los que han estado presentes comúnmente en un primer curso sobre Informática para estudiantes avanzados y que algunos países encontrarán más adecuada para niveles preuniversitarios que para escuelas secundarias. La unidad es bastante extensa y requiere enseñarla semanalmente durante, como mínimo, la mitad de un año y, como máximo, un año completo. El tiempo que necesitarán dependerá de los antecedentes de los estudiantes y de su experiencia: si han estudiado Programación o Cultura Informática en el Nivel Fundamental. Dependiendo del grupo al que se destine, puede ser aconsejable una subdivisión de la unidad, organizada alrededor de los conceptos o principios objeto de estudio.

Debe ponerse un énfasis especial sobre las aplicaciones demostrativas. Los estudiantes deben aplicar técnicas y principios, comenzando con problemas elementales para ir adquiriendo habilidades, mediante la manipulación de problemas más complejos. Las habilidades y conceptos aprendidos en lecciones anteriores estarán reforzadas constantemente mediante la práctica de nuevos problemas que involucran nuevos conceptos. Deben incluirse también ejercicios periódicos que permiten a los estudiantes sintetizar e integrar lo que hayan aprendido.

 


Anexo 3 Sumario Menú principal