Download programación de aula - McGraw
Document related concepts
Transcript
Programación del módulo Programación en lenguajes estructurados CICLOS FORMATIVOS DE GRADO SUPERIOR Autores: ♦ José Manuel Molina López (Coord.) ♦ Félix Chamorro Atance (Coord.) ♦ Agapito Ledezma Espino ♦ Javier Carbó Rubiera ♦ Jesús García Herrero ♦ Luis Martí Orosa ♦ Óscar Pérez Concha ÍNDICE ♦ INTRODUCCIÓN ♦ ORGANIZACIÓN DE LOS CONTENIDOS. TIPO Y ENUNCIADO DEL CONTENIDO ORGANIZADOR ♦ RELACIÓN SECUENCIADA DE UNIDADES ♦ RECOMENDACIONES PARA LA CONFECCIÓN Y EL DESARROLLO DE ACTIVIDADES ♦ DISTRIBUCIÓN DE LOS CONTENIDOS McGraw-Hill/Interamericana Programación de módulo Programación en lenguajes estructurados 2 de 42 INTRODUCCIÓN en el primer curso del ciclo formativo de grado superior correspondiente al título de Técnico superior en Desarrollo de Aplicaciones Informáticas y tiene una duración de 380 horas. El título de Técnico superior en Desarrollo de Aplicaciones Informáticas y sus enseñanzas mínimas vienen establecidos en el Real Decreto 1661/1994 de 22 de julio (B.O.E. del 30 de Septiembre de 1994), y el currículo del ciclo formativo viene establecido en el Real Decreto 1676/1994, de 22 de julio (B.O.E. del 6 de octubre de 1994). El modelo de programación propuesto en esta guía tiene su origen en la publicación "Desarrollo curricular del ciclo formativo de F.P. Desarrollo de Aplicaciones Informáticas". Secretaría de Estado de Educación. A.N.E.L.E. Madrid 1995. Para todos los aspectos que hacen referencia al sistema productivo, perfil profesional, capacidades profesionales, unidades de competencia, realizaciones y dominios profesionales, evolución de la competencia profesional, cambios en los factores tecnológicos, y demás cambios, se seguirá lo dispuesto en la normativa anteriormente citada. La referencia concreta del sistema productivo de este módulo la encontramos en la Unidad de Competencia nº 3 del correspondiente R.D. del Título, que tiene el siguiente enunciado: Elaborar, adaptar y probar programas en lenguajes de programación estructurados y de cuarta generación. Las realizaciones de esta Unidad de Competencia son las que se enuncian a continuación: ♦ Elaborar programas que cumplan las especificaciones establecidas en el diseño, con bajo coste de mantenimiento. ♦ Integrar y enlazar programas y rutinas siguiendo las especificaciones establecidas en el diseño. ♦ Realizar pruebas funcionales de programas especificaciones establecidas en el diseño. atendiendo a las ♦ Elaborar y mantener documentación descriptiva de programas y pruebas que permita la consulta y actualización por terceras personas. ♦ Efectuar cambios en programas requerimientos establecidos. de acuerdo con los nuevos McGraw-Hill/Interamericana Programación de módulo Programación en lenguajes estructurados 3 de 42 Las capacidades terminales de este módulo tal y como aparecen en el R.D. son las siguientes: ♦ Elaborar programas utilizando lenguajes estructurados, cumpliendo con las especificaciones establecidas en el diseño. ♦ Evaluar el funcionamiento de las aplicaciones mediante la realización de pruebas de los diferentes módulos de programación. ♦ Elaborar la documentación completa relativa a las aplicaciones desarrolladas. ♦ Adaptar aplicaciones a partir de nuevos requerimientos establecidos en el diseño. McGraw-Hill/Interamericana Programación de módulo Programación en lenguajes estructurados 4 de 42 ORGANIZACIÓN DE LOS CONTENIDOS. TIPO Y ENUNCIADO DEL CONTENIDO ORGANIZADOR El modelo de programación propuesto se basa en la elección del contenido organizador, ya que éste es el que define a grandes rasgos el proceso de aprendizaje relativo a un módulo profesional y, por lo tanto, va constituir el eje de todos los contenidos y la secuencia de unidades de trabajo del módulo. Considerando los contenidos de la Unidad de Competencia y de las Capacidades Terminales se deduce que el contenido organizador debe ser de tipo procedimental. Debido a que el objetivo final de este módulo, como ya se ha mencionado anteriormente, no constituye más que un paso intermedio en la consecución de las realizaciones de la correspondiente unidad de competencia, el enunciado del contenido organizador no coincide con el de la Unidad de Competencia de la que deriva. Por tanto, como enunciado del contenido organizador de este módulo formularemos el siguiente: Elaborar, adaptar y probar programas para mejorar la explotación del sistema y las aplicaciones. A este contenido de tipo procedimental se encuentran ligados una serie de contenidos conceptuales y actitudinales que originan los contenidos soporte de las destrezas y habilidades que el alumno debe adquirir. A continuación, se propone la organización de los contenidos, que tiene su fundamento en la naturaleza y enunciado del contenido organizador y las variables más importantes relacionadas con el aumento de complejidad de todo el procedimiento que se enseña. Partiendo de esta organización se obtiene la secuencia de unidades de trabajo constituidas por bloques de contenidos, actividades de aprendizaje y de evaluación. McGraw-Hill/Interamericana Programación de módulo Programación en lenguajes estructurados 5 de 42 RELACIÓN SECUENCIADA DE UNIDADES Este módulo profesional, cuya duración es de 380 horas, se distribuye a lo largo del curso a razón de doce horas semanales, que se corresponde con unas 32 semanas lectivas, aproximadamente. Es deseable, que las horas semanales figuren agrupadas en bloques horarios de dos, y tres periodos lectivos La propuesta de programación está constituida por una relación secuenciada de unidades de trabajo (UT) donde se integran y desarrollan, al mismo tiempo, alrededor de los procedimientos (contenidos organizadores), los conceptos (contenidos de soporte), las actividades de enseñanza-aprendizaje y los criterios de evaluación, huyendo de los clásicos temas o lecciones estancos que mediatizan el proceso de aprendizaje. Para el diseño de la programación será preciso contemplar: ♦ Los conocimientos previos del alumno. ♦ Los recursos materiales del Centro educativo. ♦ Los medios utilizados en el entorno productivo. En cuanto al primer aspecto, se ha considerado que los conocimientos previos del alumno son mínimos, limitándose a aquellos adquiridos en las materias cursadas en el Bachillerato. Para el segundo aspecto se ha considerado un aula de informática con el suficiente número de equipos como para que los alumnos puedan trabajar individualmente o en grupo de dos. Sería conveniente disponer en el aula de equipos de cierta envergadura, conectados en red y con la adecuada dotación de software, que incluirá Sistemas Operativos (UNIX, Linux, Windows, etc.), Protocolos de Redes de Comunicaciones, y Sistemas y Herramientas de Desarrollo de C, C++ y Java, de las versiones más recientes. En cuanto al tercer aspecto, dados los sistemas operativos utilizados y la portabilidad del lenguaje elegido, es el que menos problemas plantea. De la estructura de contenidos se pueden deducir cinco grandes bloques constituidos de la siguiente manera: El primer bloque, B1, está dedicado a los Fundamentos Metodológicos de la Programación, y consta de una única unidad, la UT1, denominada "Introducción a la Programación en C". En esta unidad se definen los conceptos de entorno de programación y entorno de programación integrado. Asimismo, se introduce la metodología de la programación, y se presentan algunas herramientas de diseño de algoritmos, estudiándose las pautas a seguir en su diseño y las técnicas de programación utilizadas en la actualidad. Los contenidos son de tipo conceptual y procedimental, y serán complementados con los contenidos de las siguientes unidades. McGraw-Hill/Interamericana Programación de módulo Programación en lenguajes estructurados 6 de 42 El segundo bloque, B2, se corresponde con las Técnicas de Programación, y está constituido por cuatro unidades, de la UT2 a la UT5, que son respectivamente: "Sintaxis Básica en C", "Funciones en C", "Estructuras y Uniones", y "Programación Estructurada". Este bloque comienza por los elementos básicos del lenguaje, y la estructura general de un programa en C. Después, se presentan los conceptos propios de las funciones como declaración y definición, devolución de valores, los punteros y el paso de argumentos por referencia, etc. El bloque continúa con las estructuras y uniones, que proporcionan una forma muy flexible de asociar información heterogénea. Por último se introducen los principios de la programación estructurada. El tercer bloque, B3, presenta las Estructuras de Datos y comprende tres unidades, la UT6, la UT7 y la UT9, que son respectivamente: "Gestión de Ficheros en C", "Estructuras de Datos Estáticas", y "Estructuras de Datos Dinámicas". En este bloque se introduce la gestión de ficheros en C, así como las diferentes operaciones que se pueden realizar con ellos. A continuación se describen las funcionalidades relacionadas con los arrays: su definición, uso, operaciones fundamentales, relación entre arrays y punteros, etc. También se discute un caso particular de array, las cadenas de caracteres. Por último, se estudian las estructuras dinámicas de datos. Este tipo de estructuras son características del lenguaje C, y proporcionan una forma muy flexible de gestionar la memoria. El cuarto bloque, B4, corresponde a la Programación Avanzada, y esta formado por tres unidades, la UT8, la UT10 y la UT11, que son respectivamente: "Operaciones Avanzadas con Arrays", "Gestión de Estructuras de Datos Dinámicas para el Desarrollo de Aplicaciones" y "Desarrollo de Aplicaciones de Gestión en C". Se trata de un bloque eminentemente práctico en el que se llevan a la práctica los principios teóricos estudiados sobre estructuras estáticas y dinámicas, terminando con un capitulo en el que se pretende poner en práctica la mayoría de los conocimientos vistos en las unidades de trabajo anteriores. Por último el quinto bloque, B5 está constituido por la Programación Orientada a Objetos, POO, y consta de tres unidades, la UT12, la UT13 y la UT14, que son respectivamente: "Introducción a la Programación Orientada a Objetos con C++", "Programación en Java. Sintaxis Básica", y "Objetos y Clases en Java". Este bloque comienza con la descripción de las características generales de la POO, desarrollando estos conceptos de forma práctica mediante el lenguaje C++. A continuación, se aborda el estudio de Java comenzando por las características básicas de este lenguaje, haciendo énfasis en la sintaxis y una introducción a la entrada/salida de datos. Para terminar, en la última unidad se presenta la creación de clases con el lenguaje Java como estructuras McGraw-Hill/Interamericana Programación de módulo Programación en lenguajes estructurados 7 de 42 apropiadas para representar los elementos que aparecen en una aplicación real. McGraw-Hill/Interamericana Programación de módulo Programación en lenguajes estructurados 8 de 42 RECOMENDACIONES PARA LA CONFECCIÓN Y EL DESARROLLO DE ACTIVIDADES Debido a la metodología empleada en el libro, que pretende enseñar a través de la práctica, se han incluido gran número de preguntas de evaluación, ejercicios y actividades que deben facilitar la labor del profesor: por una parte, podrá utilizar estos recursos directamente en su tarea; por otro, le pueden servir de base para el diseño de nuevas actividades, cuestionarios y guiones de refuerzo de las actividades programadas, así como para la evaluación del aprendizaje. De este modo, si fuera necesario, en cada unidad didáctica, estos recursos le ayudarán a desarrollar la programación de actividades específicas de recuperación, para los alumnos que no alcancen las capacidades propuestas, y de consolidación, para el resto. Las actividades y la distribución temporal de las unidades que se presentan deben ser consideradas como una guía u orientación general. Así pues, corresponderá al profesor adaptarlas, modificarlas o cambiarlas en función de las características inmediatas de su propio entorno de actividad: tipo de alumnos, conocimientos previos de estos, equipamiento del centro educativo, sistemas empleados en el entorno, etc. A continuación se presenta la distribución de los elementos curriculares de cada unidad. McGraw-Hill/Interamericana Programación de módulo Programación en lenguajes estructurados 9 de 42 DISTRIBUCIÓN DE LOS CONTENIDOS UNIDAD 01. INTRODUCCIÓN A LA PROGRAMACIÓN EN C 1. Capacidades profesionales ♦ Identificar las características del lenguaje de programación C. ♦ Identificar los componentes de un entorno de programación y un entorno integrado de desarrollo. ♦ Llevar a cabo la resolución de problemas mediante la utilización de algoritmos representados como diagramas de flujo y/o pseudocódigo. 2. Contenidos En esta unidad se presentan las características generales del lenguaje de programación C. De igual forma, se definen los conceptos de entorno de programación y entorno de programación integrado y se muestran algunos ejemplos. Por último, se realiza una introducción a la representación de algoritmos mediante diagramas de flujo y pseudocódigo. A. Conceptos ♦ Lenguaje C. ♦ ANSI e ISO. ♦ Entornos de Programación. ♦ Entornos de Programación Integrados o IDE. ♦ Algoritmo. ♦ Diagramas de Flujo. ♦ Ordinograma. ♦ Pseudocódigo. ♦ Instrucciones. McGraw-Hill/Interamericana Programación de módulo Programación en lenguajes estructurados 10 de 42 ♦ Palabras reservadas. ♦ Verbos de instrucción.Proceso y programa. B. Procedimientos ♦ Manejo e interpretación de los manuales y del material bibliográfico. ♦ Presentación de las características principales del lenguaje de programación C. ♦ Utilización de los distintos componentes de un entorno integrado de desarrollo. ♦ Descubrimiento y manejo de diferentes IDE. ♦ Identificación de las distintas formas de representar un algoritmo. ♦ Análisis e interpretación de problemas. ♦ Elección de las estructuras de programación necesarias para la resolución de problemas. ♦ Interpretación y construcción de algoritmos utilizando las estructuras elegidas. ♦ Edición del algoritmo. ♦ Realización de pruebas. ♦ Interpretación y corrección de los errores observados. ♦ Documentación del programa. C. Actitudes ♦ Reconocer la importancia del conocimiento de un lenguaje de programación en el entorno informático. ♦ Valorar el trabajo riguroso y bien realizado al resolver un problema mediante un algoritmo. ♦ Mostrar satisfacción por la precisión y el orden en que se realizan las actividades.Evaluar la importancia de la claridad y legibilidad de los programas para facilitar el mantenimiento y el trabajo en equipo. McGraw-Hill/Interamericana Programación de módulo Programación en lenguajes estructurados 11 de 42 3. Criterios de evaluación ♦ Describir las características principales del lenguaje C. ♦ Identificar las diferencias entre un entorno de programación y un entorno integrado de desarrollo. ♦ Identificar los distintos componentes de un entorno integrado de desarrollo. ♦ Enumerar distintos entornos integrados de desarrollo disponibles tanto para Windows y Linux como los especializados en Java. ♦ Citar las características que debe cumplir todo algoritmo. ♦ Identificar las distintas formas de representar un algoritmo. ♦ Definir los distintos tipos de diagramas de flujo. ♦ Resolver problemas mediante la aplicación de algoritmos. ♦ Justificar la utilización de sangrado en la representación de algoritmos mediante pseudocódigo. ♦ Representar las soluciones de distintos problemas mediante la utilización de ordinogramas y pseudocódigo. 4. Temporización El tiempo estimado para la adquisición de las capacidades propuestas deberá ser de aproximadamente 20 horas. 5. Sugerencias metodológicas ♦ Utilización y consulta de libros, manuales, y revistas. ♦ Discusión de las características del Lenguaje C. ♦ Discusión de las diferencias entre un entorno de programación y un entorno integrado de desarrollo. ♦ Planteamiento de ejercicios. ♦ Análisis de los problemas a desarrollar proponiendo los algoritmos más adecuados para su resolución. ♦ Resolución de los problemas propuestos utilizando distintos algoritmos. ♦ Discusión de ejercicios resueltos. McGraw-Hill/Interamericana Programación de módulo Programación en lenguajes estructurados 12 de 42 ♦ Puesta en común de las diferentes soluciones aportadas a los ejercicios propuestos. ♦ Documentación de los ejercicios resueltos de la forma en que se estime más conveniente. McGraw-Hill/Interamericana Programación de módulo Programación en lenguajes estructurados 13 de 42 UNIDAD 02. SINTAXIS BÁSICA EN C 1. Capacidades profesionales ♦ Identificar las características de la sintaxis del lenguaje C. ♦ Utilizar los distintos tipos de datos y operadores que posee el lenguaje C. ♦ Utilizar las distintas sentencias de control de flujo que posee C en elaboración de programas sencillos. ♦ Combinar los distintos tipos de datos, operadores y sentencias de control de flujo con la finalidad de elaborar programas para resolver tareas simples. 2. Contenidos En esta unidad se presenta la sintaxis básica del lenguaje de programación C. En primera instancia se presentan los elementos básicos del lenguaje, así como la estructura general de un programa en C. Posteriormente, se definen conceptos como variables y constantes, a partir de los cuales se presentan los distintos tipos de datos que se pueden utilizar en C, así como las posibles conversiones que se pueden dar entre estos. Una vez se ha visto cómo se almacenan los datos en C, se presentan los distintos operadores que permiten realizar operaciones con éstos. Por último, se presenta la sintaxis de las sentencias de control agrupadas en sentencias condicionales y sentencias de repetición. D. Conceptos ♦ Token. ♦ Palabra reservada. ♦ Tipos de datos. ♦ Variables y constantes. ♦ Sentencias. ♦ Función. ♦ Función main. McGraw-Hill/Interamericana Programación de módulo Programación en lenguajes estructurados 14 de 42 ♦ Datos de carácter. ♦ Datos numéricos. ♦ Conversión de tipos. ♦ Registro. ♦ Constantes simbólicas. ♦ Operadores. ♦ Expresión. ♦ Sentencias de control. ♦ Sentencias condicionales. ♦ Sentencias de repetición. E. Procedimientos ♦ Manejo e interpretación de los manuales y del material bibliográfico. ♦ Identificación de los elementos básicos del lenguaje de programación C. ♦ Identificación de los distintos tipos de datos que puede manipular el lenguaje C. ♦ Identificación de la sintaxis de las distintas sentencias de control que se pueden utilizar en C. ♦ Resolución de problemas mediante la programación de algoritmos. ♦ Identificación de las distintas formas de resolver un problema aplicando distintas sentencias de control. F. Actitudes ♦ Reconocer la importancia del conocimiento de la sintaxis de un lenguaje de programación a la hora de programar un algoritmo. ♦ Valorar el trabajo riguroso y bien realizado al resolver un problema mediante un algoritmo. ♦ Mostrar satisfacción por la precisión y el orden en que se realizan las actividades. McGraw-Hill/Interamericana Programación de módulo Programación en lenguajes estructurados 15 de 42 3. Criterios de evaluación ♦ Describir los elementos básicos del lenguaje C. ♦ Identificar las diferencias entre los distintos tipos de datos que pueden ser utilizados por C. ♦ Utilizar los distintos tipos de datos numéricos manejados por C. ♦ Identificar la diferencia entre variables y constantes. ♦ Identificar los componentes de una variable. ♦ Emplear los diferentes especificadores de formato utilizados por las funciones printf y scanf. ♦ Justificar la utilización de arrays para almacenar variables del mismo tipo de datos. ♦ Programar las soluciones de distintos problemas mediante la utilización del lenguaje de programación C. 4. Temporización El tiempo estimado para la adquisición de las capacidades propuestas deberá ser de aproximadamente 20 horas. 5. Sugerencias metodológicas ♦ Utilización y consulta de libros, manuales, y revistas. ♦ Discusión de la sintaxis del lenguaje C. ♦ Discusión de las diferencias entre los distintos tipos de datos. ♦ Planteamiento de ejercicios. ♦ Análisis de los problemas a desarrollar proponiendo los algoritmos más adecuados para su resolución. ♦ Resolución de los problemas propuestos programando distintos algoritmos. ♦ Discusión de ejercicios resueltos. ♦ Puesta en común de las diferentes soluciones aportadas a los ejercicios propuestos. McGraw-Hill/Interamericana Programación de módulo Programación en lenguajes estructurados 16 de 42 ♦ Documentación de los ejercicios resueltos de la forma en que se estime más conveniente. McGraw-Hill/Interamericana Programación de módulo Programación en lenguajes estructurados 17 de 42 UNIDAD 03. FUNCIONES EN C 1. Capacidades profesionales ♦ Utilizar funciones en el desarrollo de programas en C. ♦ Distinguir entre declaración y definición de una función. ♦ Utilizar el paso de argumentos tanto por valor como por referencia en el desarrollo de programas en C. ♦ Utilizar las funciones de bibliotecas ofrecidas por C en el desarrollo de programas. 2. Contenidos Esta unidad trata el tema de las funciones en C. En primera instancia, se realiza una breve introducción al concepto de función. A continuación, se definen conceptos como declaración y definición de funciones, devolución de valores mediante una función y el acceso a una función. Además, la unidad dedica un apartado al ámbito de variables y las clases de almacenamiento, en el cual se realizan las distinciones entre variables locales, globales y de registro. De igual forma, existe un apartado dedicado a los punteros y el paso de argumentos por referencia. Por último, se trata el concepto de recursividad aplicado a una función y se profundiza en la utilización de algunas funciones de biblioteca. G. Conceptos ♦ Función. ♦ Parámetros. ♦ Argumentos. ♦ Argumentos formales. ♦ Argumentos reales. ♦ Instrucción return. ♦ Declaración de una función. ♦ Definición de una función. McGraw-Hill/Interamericana Programación de módulo Programación en lenguajes estructurados 18 de 42 ♦ Ámbito de una variable. ♦ Variables locales. ♦ Variables globales. ♦ Variables estáticas. ♦ Variables de registro. ♦ Puntero. ♦ Recursividad. ♦ Función de biblioteca. ♦ Función scanf. H. Procedimientos ♦ Manejo e interpretación de los manuales y del material bibliográfico. ♦ Identificación de los elementos que conforman la estructura de una función. ♦ Identificación de las diferencias entre la declaración de una función y la definición de la misma. ♦ Identificación de las diferencias entre variables de acuerdo a su ámbito y clase de almacenamiento. ♦ Solución de problemas mediante algoritmos utilizando funciones. ♦ Solución de problemas a través de la utilización de las distintas funciones de biblioteca de entrada/salida. la programación de I. Actitudes ♦ Reconocer la importancia de la utilización de funciones a la hora de programar un algoritmo. ♦ Valorar el trabajo riguroso y bien realizado al resolver un problema mediante un algoritmo. ♦ Mostrar satisfacción por la precisión y el orden en que se realizan las actividades. McGraw-Hill/Interamericana Programación de módulo Programación en lenguajes estructurados 19 de 42 3. Criterios de evaluación ♦ Describir la estructura de una función. ♦ Identificar las diferencias entre la declaración y la definición de una función. ♦ Citar los distintos tipos de variables de acuerdo a su ámbito y clase de almacenamiento. ♦ Identificar la diferencia entre variables locales y variables globales. ♦ Justificar la utilización de punteros en C. ♦ Justificar el uso de la recursividad en la solución de algunos problemas. ♦ Programar las soluciones de distintos problemas mediante la utilización funciones de usuario y funciones de biblioteca. 4. Temporización El tiempo estimado para la adquisición de las capacidades propuestas deberá ser de aproximadamente 20 horas. 5. Sugerencias metodológicas ♦ Utilización y consulta de libros, manuales, y revistas. ♦ Discusión de la utilización de funciones en el lenguaje C. ♦ Discusión de las diferencias entre los distintos tipos de variables de acuerdo a su ámbito. ♦ Planteamiento de ejercicios. ♦ Análisis de los problemas a desarrollar proponiendo los algoritmos más adecuados para su resolución. ♦ Resolución de los problemas propuestos programando distintos algoritmos. ♦ Discusión de ejercicios resueltos. ♦ Puesta en común de las diferentes soluciones aportadas a los ejercicios propuestos. ♦ Documentación de los ejercicios resueltos de la forma en que se estime más conveniente. McGraw-Hill/Interamericana Programación de módulo Programación en lenguajes estructurados 20 de 42 UNIDAD 04. ESTRUCTURAS Y UNIONES 1. Capacidades profesionales ♦ Definir tipos de datos a medida con las estructuras y uniones. ♦ Descubrir la forma en que se anidan estructuras. ♦ Realizar llamadas a funciones con una estructura como argumento. ♦ Trabajar con la dirección en la que se almacenan las estructuras. ♦ Operar con vectores de estructuras. 2. Contenidos Esta unidad presenta las estructuras y uniones. Este tipo de variables proporciona una forma muy flexible de asociar información heterogénea. Al finalizar la unidad, el alumno debe haber adquirido los conocimientos y destrezas necesarios para definir, operar y diferenciar las estructuras y uniones. A. Conceptos ♦ Justificación de estructuras y uniones. ♦ Definición de estructuras. ♦ Declaración de variables de tipo estructura. ♦ Definición de uniones. ♦ Estructuras/uniones anidadas. ♦ Paso de estructuras a funciones. ♦ Punteros a estructuras. ♦ Vectores y matrices de estructuras. ♦ Estructuras más avanzadas. McGraw-Hill/Interamericana Programación de módulo Programación en lenguajes estructurados 21 de 42 B. Procedimientos ♦ Manejo e interpretación de los manuales y del material bibliográfico. ♦ Interpretación del problema. ♦ Elección de las estructuras y uniones necesarias para la resolución del problema. ♦ Construcción del algoritmo utilizando las estructuras y uniones elegidas. ♦ Codificación del algoritmo. ♦ Compilación del programa fuente. ♦ Realización de pruebas. ♦ Corrección de los errores observados. ♦ Documentación del programa. C. Actitudes ♦ Evaluar la importancia de la claridad y legibilidad de los programas para facilitar el mantenimiento y el trabajo en equipo. ♦ Documentar y describir las estructuras de datos utilizadas en un proyecto o ejercicio realizado en el aula. ♦ Redactar guías de uso de las aplicaciones realizadas. 3. Criterios de evaluación ♦ Describir la utilidad de estructuras y uniones. ♦ Justificar la importancia de la adecuada representación de la información para la resolución de problemas de programación. ♦ Distinguir las diferencias entre estructuras y vectores, y entre estructuras y uniones. ♦ Elaborar estructuras y uniones para la resolución de problemas. McGraw-Hill/Interamericana Programación de módulo Programación en lenguajes estructurados 22 de 42 ♦ Determinar las operaciones que realizar sobre estructuras y uniones en un problema dado. ♦ Utilizar la dirección de una estructura en un problema dado. ♦ Elaborar un programa en el que estructuras se pasen como argumentos de funciones. 4. Temporización El tiempo estimado para la adquisición de las capacidades propuestas deberá ser de aproximadamente 18 horas. 5. Sugerencias metodológicas ♦ Utilización y consulta de libros, manuales, y revistas. ♦ Utilización de ejemplos de información estructurada para la identificación de las estructuras y uniones a utilizar para representar la información, y valoración de su funcionalidad. ♦ Planteamiento de propuestas de información que parezcan adecuadas para ser representadas como estructuras y uniones. ♦ Análisis de los problemas cuyo desarrollo requiera operar con las estructuras y uniones más adecuadas para su resolución. ♦ Resolución de los problemas propuestos utilizando distintas estructuras y uniones. ♦ Discusión de ejercicios resueltos. ♦ Puesta en común de las diferentes soluciones aportadas a los ejercicios propuestos. ♦ Documentación de los ejercicios resueltos de la forma en que se estime más conveniente. McGraw-Hill/Interamericana Programación de módulo Programación en lenguajes estructurados 23 de 42 UNIDAD 05. PROGRAMACIÓN ESTRUCTURADA 1. Capacidades profesionales ♦ Comprender la utilidad de programar sin 'goto'. ♦ Realizar un diseño estructurado de una aplicación. ♦ Describir las ventajas que aporta la programación estructurada en la mejora y mantenimiento de las aplicaciones. 2. Contenidos Esta unidad introduce la programación estructurada. Tradicionalmente se entiende por tal a la programación secuencial sin saltos incondicionales (instrucciones 'goto'). Tras entender esta visión de la programación estructurada, se explica cómo deben segmentarse los programas para facilitar el mantenimiento de las aplicaciones. Al finalizar la unidad el alumno debe haber adquirido los conocimientos y destrezas necesarios para diseñar una aplicación estructurada de forma lógica, en segmentos de código semánticamente relacionados como una librería de funciones. A. Conceptos ♦ Visión clásica de la programación sin 'goto'. programación estructurada: la ♦ Visión moderna de la programación segmentación en librerías de funciones. estructurada: la ♦ Programación estructurada y orientación a objetos. B. Procedimientos ♦ Manejo e interpretación de los manuales y del material bibliográfico. ♦ Presentación de la sintaxis y las estructuras del lenguaje Java para construir programas con el paradigma de la programación orientada a objetos. McGraw-Hill/Interamericana Programación de módulo Programación en lenguajes estructurados 24 de 42 ♦ Identificación de los elementos de la declaración de clases y construcción de objetos mediante el análisis de ejemplos completos ♦ Elección de las clases, las interfaces y los accesos apropiados de acuerdo con las características de los tipos de problemas que resolver. ♦ Ilustración de la utilidad de la herencia y el polimorfismo mediante casos prácticos. C. Actitudes ♦ Evaluar la importancia de la claridad y legibilidad de los programas mediante la segmentación del código en librerías y la ausencia de uso de 'goto', para facilitar el mantenimiento y el trabajo en equipo. ♦ Documentar y describir las librerías de funciones utilizadas en un proyecto o ejercicio realizado en el aula. ♦ Redactar guías de uso de las aplicaciones realizadas. 3. Criterios de evaluación ♦ Describir la utilidad de programar sin sentencias del tipo 'goto'. ♦ Justificar la importancia de la adecuada segmentación de una aplicación para la resolución de problemas de programación. ♦ Distinguir las diferencias entre programación orientada a objetos. programación estructurada y ♦ Elaborar librerías de funciones para la resolución de problemas complejos. ♦ Determinar las operaciones que realizar con librerías de funciones para resolver un problema dado. 4. Temporización El tiempo estimado para la adquisición de las capacidades propuestas deberá ser de aproximadamente 30 horas. McGraw-Hill/Interamericana Programación de módulo Programación en lenguajes estructurados 25 de 42 5. Sugerencias metodológicas ♦ Utilización y consulta de libros, manuales, y revistas. ♦ Utilización de ejemplos de programas complejos que requieran una estructuración en librerías de funciones, para la identificación de las funciones a utilizar en la resolución de problemas. ♦ Planteamiento de propuestas de librerías de funciones que parezcan adecuadas para estructurar una aplicación. ♦ Análisis de los problemas a desarrollar que requieran una estructuración en librerías de funciones. ♦ Resolución de los problemas propuestos estructuraciones en librerías de funciones. utilizando distintas ♦ Discusión de ejercicios resueltos. ♦ Puesta en común de las diferentes soluciones aportadas a los ejercicios propuestos. ♦ Documentación de los ejercicios resueltos de la forma en que se estime más conveniente. McGraw-Hill/Interamericana Programación de módulo Programación en lenguajes estructurados 26 de 42 UNIDAD 06. GESTIÓN DE FICHEROS EN C 1. Capacidades profesionales ♦ Descubrir la utilidad de los ficheros. ♦ Realizar operaciones de lectura y escritura sobre un fichero. ♦ Leer y escribir caracteres aislados y cadenas de caracteres en ficheros. ♦ Leer y escribir octetos en ficheros aleatoriamente. ♦ Crear y vaciar un buffer de entrada/salida. 2. Contenidos Esta unidad introduce la gestión de ficheros en C. Los ficheros dotan de carácter permanente a los datos contenidos en ellos, por lo que es importante saber realizar operaciones de lectura y escritura con ellos. Primero veremos la estructura FILE que nos permitirá manejarlos abstrayéndonos de operaciones a bajo nivel (acceso octeto a octeto). Al finalizar la unidad el alumno debe haber adquirido los conocimientos y destrezas necesarios para realizar operaciones de entrada/salida tanto con caracteres individuales y cadenas de caracteres, como con contenidos binarios. A. Conceptos ♦ Introducción a los ficheros. ♦ Abrir y cerrar ficheros. ♦ Las funciones para trabajar con caracteres individuales. ♦ Las funciones para trabajar con cadenas de caracteres ♦ Las funciones para trabajar con contenidos binarios ♦ Operaciones con el buffer. ♦ Funciones informativas de errores relacionados con ficheros. ♦ Otras operaciones sobre ficheros. McGraw-Hill/Interamericana Programación de módulo Programación en lenguajes estructurados 27 de 42 B. Procedimientos ♦ Manejo e interpretación de los manuales y del material bibliográfico. ♦ Interpretación del problema. ♦ Elección de los datos de almacenar/leer de ficheros). ♦ Construcción del algoritmo principal que opera con dichos ficheros. ♦ Codificación del citado algoritmo. ♦ Compilación de las librerías y del programa principal. ♦ Realización de pruebas. ♦ Corrección de los errores observados. ♦ Documentación del programa. naturaleza permanente (a C. Actitudes ♦ Evaluar la importancia de la claridad y legibilidad de los programas, mediante la segmentación del código en librerías y la ausencia de uso de goto para facilitar el mantenimiento y el trabajo en equipo. ♦ Documentar y describir las librerías de funciones utilizadas en un proyecto o ejercicio realizado en el aula. ♦ Redactar guías de uso de las aplicaciones realizadas. 3. Criterios de evaluación ♦ Justificar la importancia de un adecuado almacenamiento de la información en ficheros. Distinguir las diferencias entre operaciones de entrada/salida sobre caracteres individuales, cadenas de caracteres y contenidos binarios. ♦ Elaborar programas que lean y escriban datos en ficheros. ♦ Determinar la información y el formato en que debe ser almacenada en un fichero para su utilización posterior. McGraw-Hill/Interamericana Programación de módulo Programación en lenguajes estructurados 28 de 42 4. Temporización El tiempo estimado para la adquisición de las capacidades propuestas deberá ser de aproximadamente 30 horas. 5. Sugerencias metodológicas ♦ Utilización y consulta de libros, manuales, y revistas. ♦ Utilización de ejemplos de programas que requieran un almacenamiento permanente de datos para la identificación de las operaciones de entrada/salida necesarias. ♦ Planteamiento de propuestas de algoritmos que parezcan adecuadas para operar con ficheros en los ejemplos anteriores. ♦ Resolución de los problemas propuestos utilizando ficheros. ♦ Discusión de ejercicios resueltos. ♦ Puesta en común de las diferentes soluciones aportadas a los ejercicios propuestos. ♦ Documentación de los ejercicios resueltos de la forma en que se estime más conveniente. McGraw-Hill/Interamericana Programación de módulo Programación en lenguajes estructurados 29 de 42 UNIDAD 08. OPERACIONES AVANZADAS CON ARRAYS 1. Capacidades profesionales ♦ Utilizar los distintos algoritmos de búsqueda en arrays. ♦ Aplicar los métodos clásicos de ordenación. ♦ Tratar el problema de la mezcla de arrays ordenados. ♦ Dominar la programación usando arrays de estructuras y las facilidades que éstas proporcionan. 2. Contenidos En esta unidad se presentan distintas operaciones avanzadas que se realizan con arrays. Se tratan los problemas de búsqueda de elementos dentro de un array, la ordenación de los elementos de un array y la mezcla de arrays ordenados. Todos estos problemas están subyacentes en cualquier programa medianamente complejo y, sin duda, merecen una atención especial debido a su impacto en la eficiencia y desempeño final de la aplicación. También se trata el uso de arrays de estructuras y como se implementan las operaciones que se discuten usando esta funcionalidad. A. Conceptos ♦ Búsqueda en arrays. ♦ Ordenación de arrays. ♦ Inserción directa. ♦ Selección directa. ♦ Intercambio directo: la burbuja. ♦ Mezcla de arrays ordenados. ♦ Arrays de estructuras. B. Procedimientos ♦ Manejo e interpretación de los manuales y del material bibliográfico. McGraw-Hill/Interamericana Programación de módulo Programación en lenguajes estructurados 30 de 42 ♦ Comprensión de las ventajas y desventajas de las operaciones sobre arrays que se presentan. ♦ Interpretación del problema. ♦ Elección de las estructuras de datos dinámicas necesarias para la resolución del problema. ♦ Construcción del algoritmo utilizando las estructuras dinámicas elegidas. ♦ Codificación del algoritmo. ♦ Compilación del programa fuente. ♦ Realización de pruebas. ♦ Corrección de los errores observados. ♦ Documentación del programa. C. Actitudes ♦ Evaluar la importancia de la claridad y legibilidad de los programas para facilitar el mantenimiento y el trabajo en equipo. ♦ Documentar y describir las estructuras de datos utilizadas en un proyecto o ejercicio realizado en el aula. ♦ Redactar guías de uso de las aplicaciones realizadas. 3. Criterios de evaluación ♦ Comprender las características, posibilidades y diferencias de los distintos métodos propuestos. ♦ Aplicar una metodología de desarrollo estructurado y modular para la implementación de los métodos. ♦ Justificar la importancia de la abstracción de datos. ♦ Definir las instrucciones, funciones y librerías del lenguaje más básicas y su utilidad. ♦ Evaluar la importancia de la claridad y legibilidad de los programas para facilitar el mantenimiento y el trabajo en equipo. ♦ Elaborar módulos, funciones o procedimientos utilizando las técnicas de la programación estructurada y modular. McGraw-Hill/Interamericana Programación de módulo Programación en lenguajes estructurados 31 de 42 ♦ Documentar el código de un módulo de programación con comentarios significativos, concisos y legibles. ♦ Integrar y enlazar módulos de programación, rutinas y utilidades, siguiendo las especificaciones del diseño y el diagrama de estructuras. ♦ Realizar pruebas para cada módulo de una aplicación y pruebas de integración. ♦ Comprobar que el acceso y tratamiento de los datos cumplen las directrices de la administración de datos del sistema y las especificaciones establecidas en el diseño. ♦ Comprobar que los formatos de entrada y salida de la aplicación son los esperados. ♦ Verificar que la funcionalidad de los datos es la esperada. ♦ Verificar los diversos tratamientos de error. ♦ Elaborar los distintos documentos que deben acompañar a una aplicación. 4. Temporización El tiempo estimado para la adquisición de las capacidades propuestas deberá ser aproximadamente de unas 24 horas. 5. Sugerencias metodológicas ♦ Utilización y consulta de libros, manuales, revistas y recursos de Internet. ♦ Utilización de listados de programas impresos en papel para la identificación de las estructuras dinámicas utilizadas, y valoración de su funcionalidad. ♦ Planteamiento de ejercicios. ♦ Creación de funciones de cliente. ♦ Análisis de los problemas a desarrollar proponiendo las distintas operaciones presentadas en la unidad. ♦ Resolución de los problemas propuestos utilizando distintas estructuras de datos, funciones de librería y de cliente. ♦ Discusión de ejercicios resueltos. McGraw-Hill/Interamericana Programación de módulo Programación en lenguajes estructurados 32 de 42 ♦ Puesta en común de las diferentes soluciones aportadas a los ejercicios propuestos. ♦ Documentación de los ejercicios resueltos de la forma en que se estime más conveniente. McGraw-Hill/Interamericana Programación de módulo Programación en lenguajes estructurados 33 de 42 09. ESTRUCTURAS DE DATOS DINÁMICAS 1. Capacidades profesionales ♦ Definir estructuras de datos para la gestión dinámica de memoria. ♦ Conocer la organización de la información en forma de listas. ♦ Estudiar los tipos básicos de organización: pilas y colas. ♦ Realizar operaciones con los elementos de las pilas y las colas. ♦ Conocer la organización de la información en forma de árboles. 2. Contenidos Esta unidad presenta las estructuras dinámicas de datos. Este tipo de estructuras son características del lenguaje C, y proporcionan una forma muy flexible de gestionar la memoria. Para su utilización se seguirá el siguiente proceso: concreción del problema, diseño del algoritmo, codificación, ejecución, prueba, depuración y documentación. Al finalizar la unidad, el alumno debe haber adquirido los conocimientos y destrezas necesarios para el manejo de estas estructuras en problemas de gestión. El contenido es procedimental. A. Conceptos ♦ Estructuras de datos para gestionar la memoria de forma dinámica. ♦ Arrays dinámicos. ♦ Tipos abstractos de datos. ♦ Listas: definición y utilización. ♦ Pilas: definición y utilización. ♦ Colas: definición y utilización. ♦ Árboles: definiciones. ♦ Árboles binarios: representación. ♦ Operaciones en árboles binarios. McGraw-Hill/Interamericana Programación de módulo Programación en lenguajes estructurados 34 de 42 B. Procedimientos ♦ Manejo e interpretación de los manuales y del material bibliográfico. ♦ Gestión de la memoria del sistema. ♦ Interpretación del problema. ♦ Elección de las estructuras de datos dinámicas necesarias para la resolución del problema. ♦ Construcción del algoritmo utilizando las estructuras dinámicas elegidas. ♦ Codificación del algoritmo. ♦ Compilación del programa fuente. ♦ Realización de pruebas. ♦ Corrección de los errores observados. ♦ Documentación del programa. C. Actitudes ♦ Evaluar la importancia de la claridad y legibilidad de los programas para facilitar el mantenimiento y el trabajo en equipo. ♦ Documentar y describir las estructuras de datos utilizadas en un proyecto o ejercicio realizado en el aula. ♦ Redactar guías de uso de las aplicaciones realizadas. 3. Criterios de evaluación ♦ Describir las estructuras de datos dinámicas que maneja un lenguaje estructurado, su utilidad y ámbito de aplicación. ♦ Justificar la importancia de la adecuada selección de estructuras de datos dinámicas para la resolución de problemas de programación. ♦ Aplicar una metodología de desarrollo estructurado y modular para el diseño de algoritmos. ♦ Justificar la importancia de la abstracción de datos. McGraw-Hill/Interamericana Programación de módulo Programación en lenguajes estructurados 35 de 42 ♦ Definir las instrucciones, funciones y librerías del lenguaje más básicas y su utilidad. ♦ Evaluar la importancia de la claridad y legibilidad de los programas para facilitar el mantenimiento y el trabajo en equipo. ♦ Elaborar módulos, funciones o procedimientos utilizando las técnicas de la programación estructurada y modular. ♦ Documentar el código de un módulo de programación con comentarios significativos, concisos y legibles. ♦ Integrar y enlazar módulos de programación, rutinas y utilidades, siguiendo las especificaciones del diseño y el diagrama de estructuras. ♦ Realizar pruebas para cada módulo de una aplicación y pruebas de integración. ♦ Comprobar que el acceso y tratamiento de los datos cumplen las directrices de la administración de datos del sistema y las especificaciones establecidas en el diseño. ♦ Comprobar que los formatos de entrada y salida de la aplicación son los esperados. ♦ Verificar que la funcionalidad de los datos es la esperada. ♦ Verificar los diversos tratamientos de error. ♦ Elaborar los distintos documentos que deben acompañar a una aplicación. 4. Temporización El tiempo estimado para la adquisición de las capacidades propuestas deberá ser aproximadamente de unas 27 horas. 5. Sugerencias metodológicas ♦ Utilización y consulta de libros, manuales, y revistas. ♦ Utilización de listados de programas impresos en papel para la identificación de las estructuras dinámicas utilizadas, y valoración de su funcionalidad. ♦ Planteamiento de ejercicios. ♦ Creación de funciones de usuario. McGraw-Hill/Interamericana Programación de módulo Programación en lenguajes estructurados 36 de 42 ♦ Análisis de los problemas a desarrollar proponiendo las estructuras dinámicas más adecuadas para su resolución. ♦ Resolución de los problemas propuestos utilizando distintas estructuras de datos, funciones de librería y de usuario. ♦ Discusión de ejercicios resueltos. ♦ Puesta en común de las diferentes soluciones aportadas a los ejercicios propuestos. ♦ Documentación de los ejercicios resueltos de la forma en que se estime más conveniente. McGraw-Hill/Interamericana Programación de módulo Programación en lenguajes estructurados 37 de 42 10. GESTIÓN DE ESTRUCTURAS DE DATOS DINÁMICAS PARA EL DESARROLLO DE APLICACIONES 1. Capacidades profesionales ♦ Utilizar con destreza estructuras de datos dinámicas. ♦ Profundizar en el manejo de listas y árboles. ♦ Emplear las operaciones básicas sobre listas. ♦ Desarrollar librerías de funciones para la gestión de listas de nodos concretos. 2. Contenidos Esta unidad presenta las operaciones básicas a realizar con las estructuras dinámicas de datos y pretende que el alumno disponga de las herramientas necesarias para afrontar la resolución de problemas típicos en aplicaciones que usan listas simples, doblemente enlazadas o árboles binarios. A. Conceptos ♦ Gestión de estructuras de datos dinámicas para el desarrollo de aplicaciones. ♦ Definición de nodos para listas. ♦ Gestión de una lista simple: insertar, consultar y borrar nodos. ♦ Gestión de una lista doblemente enlazada: insertar, consultar y borrar nodos. ♦ Gestión de árboles binarios: insertar, consultar nodos y borrar nodos hoja. B. Procedimientos ♦ Manejo e interpretación de los manuales y del material bibliográfico. ♦ Gestión de la memoria del sistema. McGraw-Hill/Interamericana Programación de módulo Programación en lenguajes estructurados 38 de 42 ♦ Interpretación del problema. ♦ Elección de las estructuras de datos dinámicas necesarias para la resolución del problema. ♦ Construcción del algoritmo utilizando las estructuras dinámicas elegidas. ♦ Codificación del algoritmo. ♦ Compilación del programa fuente. ♦ Realización de pruebas. ♦ Corrección de los errores observados. ♦ Documentación del programa. ♦ Reutilización de módulos utilizados frecuentemente en la gestión de listas y árboles. C. Actitudes ♦ Evaluar la importancia de la claridad y legibilidad de los programas para facilitar el mantenimiento y el trabajo en equipo. ♦ Documentar y describir las estructuras de datos utilizadas en un proyecto o ejercicio realizado en el aula. ♦ Redactar guías de uso de las aplicaciones realizadas. ♦ Medir el grado de reusabilidad de módulos comunes en la gestión de listas y árboles. 3. Criterios de evaluación ♦ Aplicar una metodología de desarrollo estructurado y modular para el diseño de algoritmos. ♦ Evaluar la importancia de la claridad y legibilidad de los programas para facilitar el mantenimiento y el trabajo en equipo. ♦ Elaborar módulos, funciones o procedimientos utilizando las técnicas de la programación estructurada y modular. ♦ Documentar el código de un módulo de programación con comentarios significativos, concisos y legibles. McGraw-Hill/Interamericana Programación de módulo Programación en lenguajes estructurados 39 de 42 ♦ Integrar y enlazar módulos de programación, rutinas y utilidades, siguiendo las especificaciones del diseño y el diagrama de estructuras. ♦ Realizar pruebas para cada módulo de una aplicación y pruebas de integración. ♦ Comprobar que el acceso y tratamiento de los datos cumplen las directrices de la administración de datos del sistema y las especificaciones establecidas en el diseño. ♦ Comprobar que los formatos de entrada y salida de la aplicación son los esperados. ♦ Verificar que la funcionalidad de los datos es la esperada. ♦ Verificar los diversos tratamientos de error. ♦ Elaborar los distintos documentos que deben acompañar a una aplicación. ♦ Comprobar que el grado de reusabilidad de funciones y módulos es alto, ya que en la gestión de listas y árboles se recurre frecuentemente a los mismos procedimientos. 4. Temporización El tiempo estimado para la adquisición de las capacidades propuestas deberá ser aproximadamente de unas 27 horas. 5. Sugerencias metodológicas ♦ Utilización y consulta de libros, manuales, y revistas. ♦ Utilización de listados de programas impresos en papel para la identificación de las estructuras dinámicas utilizadas, y valoración de su funcionalidad. ♦ Planteamiento de ejercicios. ♦ Creación de funciones de usuario. ♦ Análisis de los problemas a desarrollar proponiendo las estructuras dinámicas adecuadas para su resolución. ♦ Resolución de los problemas propuestos utilizando distintas estructuras de datos, funciones de librería y de usuario. ♦ Discusión de ejercicios resueltos. McGraw-Hill/Interamericana Programación de módulo Programación en lenguajes estructurados 40 de 42 ♦ Puesta en común de las diferentes soluciones aportadas a los ejercicios propuestos. ♦ Documentación de los ejercicios resueltos de la forma en que se estime más conveniente. McGraw-Hill/Interamericana Programación de módulo Programación en lenguajes estructurados 41 de 42 11. DESARROLLO DE APLICACIONES DE GESTIÓN EN C 1. Capacidades profesionales ♦ Practicar en un entorno real con arrays y realizar operaciones avanzadas con ellos. ♦ Emplear los conocimientos de gestión de estructuras de datos dinámicas mediante el desarrollo de una aplicación de gestión. ♦ Profundizar en el manejo de listas. ♦ Relacionar entre listas y arrays. ♦ Interpretar el uso de arrays de estructuras. ♦ Aplicar la ordenación de datos. 2. Contenidos Esta unidad presenta, de forma práctica y mediante el ejemplo de una aplicación completa, la utilización conjunta de todas las técnicas de gestión de estructuras de datos dinámicas. A. Conceptos ♦ Desarrollo de aplicaciones de gestión en C. ♦ Funcionalidades básicas para la gestión. ♦ Estructuras de datos. ♦ Manejo de estructuras. ♦ Interacción con el usuario. ♦ Ejemplos de una aplicación de gestión. B. Procedimientos ♦ Manejo e interpretación de los manuales y del material bibliográfico. ♦ Gestión de la memoria del sistema. McGraw-Hill/Interamericana Programación de módulo Programación en lenguajes estructurados 42 de 42 ♦ Interpretación del problema. ♦ Elección de las estructuras de datos dinámicas necesarias para la resolución del problema. ♦ Construcción del algoritmo utilizando las estructuras dinámicas elegidas. ♦ Codificación del algoritmo. ♦ Compilación del programa fuente. ♦ Realización de pruebas. ♦ Corrección de los errores observados. ♦ Documentación del programa. ♦ Reutilización de módulos utilizados frecuentemente en la gestión de listas y árboles. C. Actitudes ♦ Evaluar la importancia de la claridad y legibilidad de los programas para facilitar el mantenimiento y el trabajo en equipo. ♦ Documentar y describir las estructuras de datos utilizadas en un proyecto o ejercicio realizado en el aula. ♦ Redactar guías de uso de las aplicaciones realizadas. ♦ Medir el grado de reusabilidad de módulos comunes en la gestión de listas y árboles. 3. Criterios de evaluación ♦ Aplicar una metodología de desarrollo estructurado y modular para el diseño de algoritmos. ♦ Evaluar la importancia de la claridad y legibilidad de los programas para facilitar el mantenimiento y el trabajo en equipo. ♦ Elaborar módulos, funciones o procedimientos utilizando las técnicas de la programación estructurada y modular. ♦ Documentar el código de un módulo de programación con comentarios significativos, concisos y legibles. McGraw-Hill/Interamericana Programación de módulo Programación en lenguajes estructurados 43 de 42 ♦ Integrar y enlazar módulos de programación, rutinas y utilidades, siguiendo las especificaciones del diseño y el diagrama de estructuras. ♦ Realizar pruebas para cada módulo de una aplicación y pruebas de integración. ♦ Comprobar que el acceso y tratamiento de los datos cumplen las directrices de la administración de datos del sistema y las especificaciones establecidas en el diseño. ♦ Comprobar que los formatos de entrada y salida de la aplicación son los esperados. ♦ Verificar que la funcionalidad de los datos es la esperada. ♦ Verificar los diversos tratamientos de error. ♦ Elaborar los distintos documentos que deben acompañar a una aplicación. ♦ Comprobar que el grado de reusabilidad de funciones y módulos es alto, ya que en la gestión de listas y árboles se recurre frecuentemente a los mismos procedimientos. 4. Temporización El tiempo estimado para la adquisición de las capacidades propuestas deberá ser aproximadamente de unas 34 horas. 5. Sugerencias metodológicas ♦ Utilización y consulta de libros, manuales, y revistas. ♦ Utilización de listados de programas impresos en papel para la identificación de las estructuras dinámicas utilizadas, y valoración de su funcionalidad. ♦ Planteamiento de ejercicios. ♦ Creación de funciones de usuario. ♦ Análisis de los problemas a desarrollar proponiendo las estructuras dinámicas adecuadas para su resolución. ♦ Resolución de los problemas propuestos utilizando distintas estructuras de datos, funciones de librería y de usuario. ♦ Discusión de ejercicios resueltos. McGraw-Hill/Interamericana Programación de módulo Programación en lenguajes estructurados 44 de 42 ♦ Puesta en común de las diferentes soluciones aportadas a los ejercicios propuestos. ♦ Documentación de los ejercicios resueltos de la forma en que se estime más conveniente. McGraw-Hill/Interamericana Programación de módulo Programación en lenguajes estructurados 45 de 42 12. INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS CON C++ 1. Capacidades profesionales ♦ Describir los conceptos básicos de la Programación Orientada a Objetos (POO) y los principios del diseño orientado a objetos, diferenciándolo de las técnicas de programación estructurada trabajadas previamente a lo largo del libro. ♦ Emplear la sintaxis de C++ y la notación apropiada de POO para construir clases, constructores, calificadores de acceso, herencia, etc., mediante el desarrollo de ejemplos prácticos. ♦ Aplicar los conceptos generales de la POO. ♦ Implementar aplicaciones con el paradigma de la POO. ♦ Resaltar las diferencias del lenguaje C++ con respecto al lenguaje C, desarrollado en unidades anteriores, ofreciendo una síntesis resumida de las principales mejoras y extensiones que introduce C++. 2. Contenidos En esta unidad nos iniciamos en las técnicas de Programación Orientada a Objetos, presentando a los objetos como una agrupación de atributos y funciones que permiten trasformar el flujo de ejecución en un intercambio de mensajes entre unidades encapsuladas. Se describirán las características generales de la POO, desarrollando estos conceptos de forma práctica mediante el lenguaje C++. Se presenta una visión general de los conceptos más importantes y su codificación con C++ a través de ejemplos, sin entrar en absoluto a describir exhaustivamente todas las posibilidades de este lenguaje. Se han presentado ejemplos codificados completos en el texto para facilitar en lo posible la familiarización del alumno con el nuevo lenguaje, así como de funciones de biblioteca de utilidad (entrada/salida, manipulación de cadenas, etc.), junto al código de las soluciones a los ejercicios proporcionadas en esta guía. A. Conceptos ♦ Programación Abstracción. Orientada a Objetos. Encapsulación McGraw-Hill/Interamericana Programación de módulo Programación en lenguajes estructurados 46 de 42 y ♦ Objetos y clases en C++. ♦ Construcción y destrucción de instancias, operadores new y delete. ♦ Calificadores de acceso. Atributos globales de clases. ♦ Arrays de objetos en C++. ♦ Funciones y clases amigas. ♦ Sobrecarga de operadores. ♦ Clases derivadas en C++. Constructores y acceso en las clases derivadas. ♦ Métodos virtuales y polimorfismo. ♦ Mejoras de C++ frente a C. B. Procedimientos ♦ Manejo e interpretación de los manuales y del material bibliográfico. ♦ Presentación de la sintaxis y estructuras del lenguaje C++ para construir programas según las directrices de la POO. ♦ Identificación de los elementos de la declaración de clases y construcción de objetos a través del análisis de ejemplos completos. ♦ Organización de los programas en ficheros de cabecera, implementación y funciones. ♦ Elección de las clases, interfaces y accesos apropiadas de acuerdo con las características de los tipos de problemas a resolver. ♦ Ilustración de la sobrecarga de operadores, métodos virtuales, herencia y polimorfismo a través de casos prácticos. C. Actitudes ♦ Mostrar interés por aprender conceptos nuevos de programación con un paradigma de enorme aceptación para el diseño de aplicaciones profesionales. ♦ Reconocer la importancia de un diseño con programación orientada a objetos para tener claridad y legibilidad de McGraw-Hill/Interamericana Programación de módulo Programación en lenguajes estructurados 47 de 42 programas bien estructurados que faciliten su mantenimiento y distribución en amplios equipos de trabajo. ♦ Mostrar una actitud abierta a aprender nuevas formas de resolver problemas que podrían ser abordados con el paradigma de programación funcional, valorando críticamente ventajas e inconvenientes de ambas aproximaciones. ♦ Participar activamente en la resolución de ejercicios y actividades propuestas, proponiendo soluciones y comprobando el conocimiento adquirido ♦ Reconocer la importancia de documentar el código de un módulo de programación utilizando comentarios significativos, concisos y legibles que permitan identificar las decisiones tomadas en el diseño y la implementación del programa. 3. Criterios de evaluación ♦ Describir las características principales de C++ en los conceptos de programación orientada a objetos y estructura de los programas. ♦ Identificar la sintaxis y palabras reservadas de C++ en lo referente a clases, constructores calificadores y herencia. ♦ Justificar la importancia de un diseño adecuado de clases que ponga en práctica la abstracción para la resolución de problemas de programación. ♦ Resolver ejemplos prácticos mediante un apropiado diseño de clases que contemple estructuras de datos así como interfaces y mensajes intercambiados. ♦ Elaborar aplicaciones con una estructura modular en clases que permita realizar por separado pruebas para cada clase y pruebas de integración, con objeto de optimizar la mantenibilidad de la aplicación final. ♦ Dominar el lenguaje de programación C++ para la resolución de problemas prácticos en la entrada y salida de datos, codificación de algoritmos, representación de información, etc. 4. Temporización El tiempo estimado para la adquisición de las capacidades propuestas deberá ser aproximadamente de unas 30 horas. McGraw-Hill/Interamericana Programación de módulo Programación en lenguajes estructurados 48 de 42 5. Sugerencias metodológicas ♦ Utilización y consulta de libros y manuales del lenguaje. ♦ Utilización de listados de programas completos para la identificación y explicación de los elementos del lenguaje Java para declarar clases y construir objetos. ♦ Planteamiento de ejercicios, proponiendo para los primeros los objetos adecuados y sus funcionalidades, dejando al alumno que diseñe y desarrolle en detalle la implementación adecuada a cada clase. ♦ Resolución de dudas surgidas después que el alumno intente implementar las soluciones a los ejercicios en el ordenador. ♦ Resolución de los problemas propuestos, valorando las diferentes alternativas posibles (mayor aún al descomponer un problema en objetos), y recalcando las ventajas de una solución que aplique un diseño orientado a objetos frente a una solución funcional. McGraw-Hill/Interamericana Programación de módulo Programación en lenguajes estructurados 49 de 42 UNIDAD 13. PROGRAMACIÓN EN JAVA. SINTAXIS BÁSICA 1. Capacidades profesionales ♦ Conocer los principios y las características básicas de Java. ♦ Dominar la sintaxis de Java y comprender sus diferencias respecto a la sintaxis de C. ♦ Revisar y utilizar los tipos de datos, operadores y sentencias de control de flujo en Java mediante ejemplos sencillos. ♦ Identificar los elementos básicos del entorno de programación Java. ♦ Manejar los aspectos prácticos de entrada y salida de datos en Java, a través de consola y de ficheros. 2. Contenidos En esta unidad se presenta un nuevo lenguaje de programación: Java. Se describirán sus características básicas, poniendo especial énfasis en la sintaxis, y se realizará una introducción a la entrada-salida de datos, lo que supone revisar también el mecanismo de generación de excepciones. Se subrayarán las principales diferencias que presenta respecto al lenguaje C, del que ya nos hemos ocupado y con el que guarda una estrecha relación en su sintaxis fundamental. El tratamiento estrictamente relacionado con la programación orientada a objetos, una de las principales fuentes de diferencias, se reserva para una unidad posterior, si bien en Java es inevitable tratar con objetos desde el principio. A. Conceptos ♦ Lenguaje Java. Organización de los programas en clases. ♦ Entorno de desarrollo Java. JDK y JRE. ♦ Sintaxis básica. Palabras operadores e instrucciones. ♦ Arrays en Java. ♦ Métodos en Java. ♦ Algunas clases de utilidad en Java. Envoltorios y clase String. reservadas, tipos básicos, McGraw-Hill/Interamericana Programación de módulo Programación en lenguajes estructurados 50 de 42 ♦ Entrada-salida en Java a través de flujos (streams). Clases para entrada-salida estándar y con ficheros de texto. ♦ Introducción al mecanismo de excepciones en Java. B. Procedimientos ♦ Manejo e interpretación de los manuales y del material bibliográfico. ♦ Presentación de las características principales del lenguaje de programación Java. ♦ Utilización de los componentes básicos para desarrollar, compilar y ejecutar programas en Java. ♦ Identificación de los principales elementos de la sintaxis Java mediante el análisis de ejemplos completos. ♦ Elección de las estructuras de programación necesarias para la resolución de problemas. ♦ Presentación de clases de utilidad de Java y explicación de su utilización para resolver problemas específicos. C. Actitudes ♦ Reconocer la ventaja de dominar un nuevo lenguaje de programación que constituye la evolución de otro ya conocido y perfecciona algunos de sus aspectos. ♦ Mostrar paciencia a la hora de asimilar conceptos de un lenguaje que incorpora muchas novedades: variaciones en sintaxis, completa orientación a objetos, clases de utilidad, etc. ♦ Participar activamente en la resolución de los ejercicios y las actividades propuestas, proponiendo soluciones y comprobando el conocimiento adquirido. ♦ Reconocer la importancia de la claridad y legibilidad de los programas para facilitar el mantenimiento y el trabajo en equipo. ♦ Reconocer la importancia de documentar el código de un módulo de programación con comentarios significativos, concisos y legibles. McGraw-Hill/Interamericana Programación de módulo Programación en lenguajes estructurados 51 de 42 ♦ Mantener orden y precisión en la presentación de conceptos nuevos y su aplicación a las actividades propuestas. 3. Criterios de evaluación ♦ Describir las características básicas del lenguaje de programación Java. ♦ Identificar las diferencias entre Java y C en determinados aspectos, como arrays, funciones, punteros, entrada y salida, etc. ♦ Identificar las dos formas de representar los datos de un programa en Java: tipos predefinidos (básicos) y clases. ♦ Identificar los distintos tipos básicos de datos en Java, operadores y reglas de conversión. ♦ Justificar la importancia de la adecuada selección de estructuras de datos para la resolución de problemas de programación. ♦ Resolver ejemplos prácticos mediante la implementación de algoritmos con instrucciones y tipos de datos en Java. ♦ Describir las clases de utilidad para manipular cadenas de texto, extraer tipos básicos de texto, y hacer entrada-salida de estructuras de datos dinámicas que maneja un lenguaje estructurado, su utilidad y ámbito de aplicación. ♦ Describir el mecanismo de generación y tratamiento de excepciones en Java y su utilización en la entrada-salida. ♦ Comprobar que los formatos de entrada y salida de la aplicación son los esperados. 4. Temporización El tiempo estimado para la adquisición de las capacidades propuestas deberá ser de aproximadamente 30 horas. 5. Sugerencias metodológicas ♦ Utilización y consulta de libros y manuales del lenguaje, y acceso a la API web con las clases de utilidad de Java (página web de Sun). ♦ Utilización de listados de programas para la identificación y explicación de los elementos de los primeros programas completos en Java. McGraw-Hill/Interamericana Programación de módulo Programación en lenguajes estructurados 52 de 42 ♦ Planteamiento de ejercicios y variantes de los ejemplos presentados en clase. ♦ Análisis de los problemas que se van a desarrollar proponiendo las estructuras y funciones adecuadas para su resolución, dejando que el alumno proponga y desarrolle con detalle la implementación adecuada. ♦ Resolución de las dudas surgidas después de que el alumno intente implementar las soluciones a los ejercicios en el ordenador. ♦ Resolución de los problemas propuestos utilizando distintas estructuras de datos, clases de utilidad y métodos desarrollados. ♦ Discusión de los ejercicios resueltos, con puesta en común y valoración de las diferentes soluciones aportadas. McGraw-Hill/Interamericana Programación de módulo Programación en lenguajes estructurados 53 de 42 UNIDAD 14. OBJETOS Y CLASES EN JAVA 1. Capacidades profesionales ♦ Utilizar la sintaxis de Java para la definición de clases y objetos. ♦ Conocer la notación apropiada para construir clases, constructores, calificadores de acceso, herencia, etc. mediante el desarrollo de ejemplos prácticos. ♦ Subrayar las diferencias distintivas de Java con respecto al lenguaje C++, desarrollado en una unidad anterior. ♦ Desarrollar aplicaciones utilizando objetos en Java. 2. Contenidos En esta unidad se presenta la creación de clases con el lenguaje Java como estructuras apropiadas para representar los elementos que aparecen en una aplicación real. Los conceptos básicos de la programación orientada a objetos se han introducido y desarrollado previamente con C++; los objetos se han presentado como una agrupación de atributos y métodos que hacen uso de su información e intercambian mensajes, y cuyas características comunes quedan definidas en las clases. Así pues, esta unidad se centra en la sintaxis que emplea Java para desarrollar los elementos, ya familiares para el alumno, de la programación orientada a objetos. A. Conceptos ♦ Objetos y clases en Java. Instancias con operador new y destrucción automática. ♦ Constructores en Java para inicialización de instancias. ♦ Calificadores de acceso: atributos constantes y globales de clases. ♦ Arrays de objetos en Java. ♦ Clases derivadas en Java: constructores y acceso en las clases derivadas. ♦ Sobreescritura polimorfismo. de métodos en clases derivadas McGraw-Hill/Interamericana Programación de módulo Programación en lenguajes estructurados 54 de 42 y B. Procedimientos ♦ Manejo e interpretación de los manuales y del material bibliográfico. ♦ Presentación de la sintaxis y las estructuras del lenguaje Java para construir programas con el paradigma de la programación orientada a objetos. ♦ Identificación de los elementos de la declaración de clases y construcción de objetos mediante el análisis de ejemplos completos ♦ Elección de las clases, las interfaces y los accesos apropiados de acuerdo con las características de los tipos de problemas que resolver. ♦ Ilustración de la utilidad de la herencia y el polimorfismo mediante casos prácticos. C. Actitudes ♦ Mostrar interés por asimilar conceptos de programación orientada a objetos en un lenguaje nuevo de programación, para desarrollar aplicaciones que aprovechen la posibilidad de aplicar la abstracción y el encapsulamiento al diseño. ♦ Reconocer la importancia de un diseño con programación orientada a objetos para tener claridad y legibilidad de programas bien estructurados que faciliten su mantenimiento y distribución en equipos de trabajo. ♦ Mostrar una actitud abierta a aprender nuevas formas de resolver problemas que podrían ser abordados con el paradigma de programación funcional, valorando críticamente las ventajas y los inconvenientes de ambas aproximaciones. ♦ Participar activamente en la resolución de los ejercicios y las actividades propuestas, proponiendo soluciones y comprobando el conocimiento adquirido. ♦ Reconocer la importancia de documentar el código de un módulo de programación con comentarios significativos, concisos y legibles que permitan identificar las decisiones tomadas en el diseño y la implementación del programa. McGraw-Hill/Interamericana Programación de módulo Programación en lenguajes estructurados 55 de 42 3. Criterios de evaluación ♦ Aplicar una metodología de desarrollo estructurado y modular para el diseño de algoritmos. ♦ Realizar pruebas para cada uno de los módulos de una aplicación y pruebas de integración. ♦ Justificar la importancia de la abstracción de datos. ♦ Describir las características principales de Java respecto a los conceptos de programación orientada a objetos y estructura de los programas. ♦ Identificar las diferencias entre Java y C++ en aspectos como los siguientes: arrays de objetos; creación, manipulación y destrucción de objetos; funciones de clase; punteros y referencias; herencia, herencia múltiple y polimorfismo; entrada-salida, etc. ♦ Utilizar la sintaxis y las palabras reservadas de Java en lo referente a clases, constructores calificadores y herencia. ♦ Justificar la importancia de un diseño adecuado de clases que ponga en práctica la abstracción para la resolución de problemas de programación. ♦ Resolver ejemplos prácticos mediante la implementación de clases con determinadas interfaces y mensajes intercambiados. ♦ Elaborar aplicaciones con una estructura modular en clases que permita realizar por separado pruebas para cada clase y pruebas de integración, con objeto de optimizar el mantenimiento de la aplicación final. 4. Temporización El tiempo estimado para la adquisición de las capacidades propuestas deberá ser de aproximadamente 20 horas, si el alumno ya está familiarizado con la programación orientada a objetos. En caso contrario, habría que dedicar más tiempo a los conceptos fundamentales y ejemplos, con una dedicación de 30 horas. 5. Sugerencias metodológicas ♦ Utilización y consulta de libros y manuales del lenguaje, y acceso a la API web con las clases de utilidad de Java (página web de Sun). McGraw-Hill/Interamericana Programación de módulo Programación en lenguajes estructurados 56 de 42 ♦ Utilización de listados de programas completos para la identificación y explicación de los elementos del lenguaje Java para declarar clases y construir objetos. ♦ Planteamiento de ejercicios, proponiendo los objetos adecuados y sus funcionalidades, dejando que el alumno diseñe y desarrolle con detalle la implementación oportuna para cada clase. ♦ Resolución de las dudas surgidas después de que el alumno haya intentado implementar las soluciones a los ejercicios en el ordenador. ♦ Resolución de los problemas propuestos, valorando especialmente las diferentes alternativas posibles (mayor aún al descomponer un problema en objetos), y subrayando las ventajas de una solución que aplique un diseño orientado a objetos frente a una solución funcional. McGraw-Hill/Interamericana Programación de módulo Programación en lenguajes estructurados 57 de 42