Download programación de aula - McGraw

Document related concepts

Programación funcional wikipedia , lookup

Racket (lenguaje de programación) wikipedia , lookup

J (lenguaje de programación) wikipedia , lookup

Rust (lenguaje de programación) wikipedia , lookup

Axiom wikipedia , lookup

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