PD - Fundamentos de Programacion

66
Programación Didáctica Módulo Profesional: Fundamentos de Programación CFGS Administración de Sistemas Informáticos José Javier Vallés Vilar DNI: 33464024 J

Transcript of PD - Fundamentos de Programacion

Page 1: PD - Fundamentos de Programacion

Programación Didáctica

Módulo Profesional:

Fundamentos de Programación

CFGS Administración de Sistemas

Informáticos

José Javier Vallés Vilar

DNI: 33464024 J

Page 2: PD - Fundamentos de Programacion

- 2 -

Índice:

1- Introducción 4

1.1- Justificación 4

1.2- Base legal 5

1.3- Contextualización 6

1.4- Características del alumnado 6

1.5- Presentación del módulo 7

2- Objetivos 10

3- Contenidos generales 16

4- Secuenciación 19

5- Temporalización 42

6- Metodología 44

6.1- Espacios y agrupamientos 45

7- Actividades 46

7.1- De presentación y conocimientos previos 46

7.2- De enseñanza-aprendizaje 46

7.3- De refuerzo 47

7.4- De ampliación 47

7.5- De motivación 47

7.6- Extraescolares y complementarias 49

8- Recursos y elementos de instrumentación 49

8.1- Del centro 50

Page 3: PD - Fundamentos de Programacion

- 3 -

8.2- Del alumno 50

9- Evaluación 50

9.1- Criterios de evaluación 50

9.2- Criterios de calificación 52

9.3- Recuperaciones, examen de nivel cero, final y de mínimos 52

9.4- Evaluación del proceso enseñanza-aprendizaje 53

9.5- Evaluación de la Programación Didáctica 53

10- Atención a los alumnos con necesidades educativas

específicas de apoyo educativo

54

11- Temas transversales 55

12- Bibliografía 58

ANEXO - Relación de la propuesta de programación

didáctica con el currículo oficial

Page 4: PD - Fundamentos de Programacion

- 4 -

1- Introducción

1.1- Justificación

En la siguiente memoria se presenta la programación didáctica del módulo

Fundamentos de Programación. Éste consta de 285 horas de duración y se asocia con la

unidad de competencia nº 4: Proponer y coordinar cambios para mejorar la

explotación del sistema y las aplicaciones. Por tanto, está dirigido a futuros técnicos en

administración de sistemas.

Concretamente, tiene como capacidades terminales el dar una formación básica en la

programación en lenguajes estructurados, el manejo de estructuras de datos y diseño de

algoritmos. Para lograr esto se ha tomando como elemento vehicular las técnicas de

programación modular y el lenguaje arquetípico de la programación de sistemas, C.

Pero antes de realizar una programación didáctica se ha de tener en cuenta que se

entiende por ello, a qué se refiere el término “programación didáctica”, qué se pretende

conseguir al plantear una. Por tanto hay que partir de lo que implica tal tarea.

En primera instancia, la programación didáctica de un módulo profesional supone

organizarlo en Unidades Didácticas1. En cada unidad didáctica se deben estructurar y

concretar los elementos curriculares, capacidades terminales, criterios de realización y

contenidos, dentro del marco que establece la ley, pero manteniendo flexibilidad y

margen de maniobra.

1 A lo largo del texto, se usa de forma indistinta la abreviatura UD.

Page 5: PD - Fundamentos de Programacion

- 5 -

Se ha de tener en cuenta el contexto al que va a ir aplicada. Esto implica que hacer una

programación didáctica también supone aplicar y adaptar la normativa legal vigente a

una realidad educativa concreta, con sus necesidades y particularidades.

También se han de tener en cuenta las características de la materia a impartir, de qué

trata, qué proporción tiene de procedimientos, conceptos y actitudes y que capacidades

terminales trata de desarrollar, entre otros factores. Por todo ello se continúa analizando

estos tres factores, marco legal, contexto educativo y la materia en sí misma.

1.2- Base legal

La legislación vigente de relevancia en esta programación, a la que se hace referencia a

lo largo de esta memoria, es, de menor a mayor concreción:

• La Ley Orgánica 5/2002, de 19 de junio, de las Cualificaciones y de la Formación

Profesional.

• La Ley Orgánica de Educación 2/2006 de 3 de mayo.

• El Real Decreto 1538/2006, de 15 de diciembre, por el que se establece la

ordenación general de la formación profesional del sistema educativo.

• El Real Decreto 1660/1994, de 22 de julio, por el que se define el título de Técnico

superior en Administración de Sistemas Informáticos y las correspondientes

enseñanzas mínimas.

• El Real Decreto 1675/1994, de 22 de julio, por el que se establece el currículo del

ciclo formativo de grado superior correspondiente al título de Técnico superior en

Administración de Sistemas Informáticos.

Page 6: PD - Fundamentos de Programacion

- 6 -

Con este marco legal se regulan los estudios correspondientes al CFGS1 de

Administración de Sistemas Informáticos, pero se ha tener en cuenta que cada ley tiene

su ámbito de aplicación y se definen en ella diferentes elementos curriculares. Por ello,

a lo largo del texto, se irán desgranando estos elementos del currículo siguiendo un

esquema general-particular, de menor a mayor concreción

1.3- Contextualización

Otro factor a tener en cuenta es a quién está dirigida y el entorno en el que se va a

desarrollar la labor educativa. Es evidente que no es lo mismo un grupo de primaria que

uno de secundaria o formación profesional, por lo que se hace necesario contextualizar

la programación didáctica, definir en que circunstancias se pretende aplicar.

Para ello se toma como hipótesis de trabajo el IES Alan Turing de Valencia, cuya oferta

educativa consta de educación secundaria obligatoria y postobligatoria, ESO,

Bachillerato y CFGM2, aparte de diversos ciclos formativos de grado superior. Está

ubicado en la periferia urbana, con un entorno socioeconómico de clase media. La

reglamentación vigente ordena que el número de alumnos es de 30 por grupo, aunque la

el grupo supuesto consta sólo de 18 alumnos.

1.4- Características del alumnado

El CFGS de Administración de Sistemas Informáticos, es un grado de enseñanza

superior y dirigido a alumnos adultos. Dada esta circunstancia, se considera de menor

importancia el analizar con gran detalle el entorno en que se haya el alumnado al que va

1 Ciclo Formativo de Grado Superior. 2 Ciclo Formativo de Grado Medio.

Page 7: PD - Fundamentos de Programacion

- 7 -

dirigido el módulo. En cambio si que se considera una variable relevante del alumnado

su modo de acceso a estos estudios.

Los dos principales modos de acceso a un CFGS son por medio de una prueba de

acceso o por la posesión del título de Bachillerato, entre los que acceden por medio de

una prueba de acceso se puede distinguir los que han cursado el CFGM Explotación de

Sistemas Microinformáticos. Con estas tres categorías la distribución de alumnos es:

• 50% desde el CFGM Explotación de Sistemas Informáticos.

• 40% desde el bachillerato.

• El 10% restante proviene del mundo laboral.

De este reparto de alumnos se puede esperar que, aproximadamente la mitad de los

alumnos no tengan grandes conocimientos previos de informática. Aquellos

provenientes de Explotación de Sistemas Informáticos sí están relacionados con la

informática, pero no con la programación. En todo caso y como es habitual, es necesario

realizar una evaluación inicial, algo contemplado en la programación del módulo.

1.5- Presentación del módulo

Para terminar con esta introducción, el último elemento a tener en cuenta, es la propia

naturaleza del módulo y el ciclo en que se enmarca. De acuerdo con el RD1 1660/1994

que define el título de Técnico superior de Administración de Sistemas Informáticos, los

requerimientos generales de cualificación profesional del sistema productivo para este

técnico son:

1 Real Decreto.

Page 8: PD - Fundamentos de Programacion

- 8 -

Implantar, explotar y mantener en requerimientos de bajo y medio nivel los sistemas

informáticos...

Y en este contexto se enmarcan las diferentes unidades de competencia, entre las cuales,

se tiene que la 4º, proponer y coordinar cambios para mejorar la explotación del

sistema y las aplicaciones, se corresponde, entre otros, con el módulo de Fundamentos

de programación.

Un módulo se define como un “conjunto coherente de contenidos de la Formación

Profesional. Es la unidad de oferta educativa y la parte más pequeña que puede

acreditarse.” Existen diferentes clases de módulo, aquellos transversales (comunes a

varios Ciclos Formativos de ésta y otras Familias Profesionales) y los asociados a una

Unidad de Competencia, como Fundamentos de Programación.

Dentro de éste se especifican tres capacidades terminales, manejar y definir estructuras

de datos (tanto estáticas como dinámicas), aplicar la metodología estructurada de diseño

de algoritmos y codificar programas en un lenguaje estructurado de tercera generación

(del que cual no se especifica más).

A efectos de realizar la programación didáctica la ambigüedad que pudiera haber en este

último aspecto queda despejada por el RD 1675/1994 que define el currículo del título,

que menciona de forma explícita como contenido del módulo la programación en C.

Page 9: PD - Fundamentos de Programacion

- 9 -

Resumiendo lo anterior, por un lado se tiene que la cualificación profesional requiere

conocimientos del bajo y medio nivel y en el módulo Fundamentos de programación la

programación en C es mencionada como contenido en el propio currículo. Por todo esto

se propone una programación que toma al lenguaje C como elemento vehicular de la

mayor parte del curso.

C es el lenguaje clásico de la programación de sistemas, hoy día la mayor parte de

sistemas operativos, compiladores, ensambladores y demás herramientas del sistema

están programadas en él, esto hace particularmente lógico el transmitir su uso a quienes

han de entender y manipular el bajo y medio nivel.

También se ha de recordar que este es un módulo de introducción a la programación,

que no necesita de conocimientos previos, por que existe la necesidad de partir de cero

en él. Por ello antes de dedicarse a la programación C se propone un esquema de

contenidos y metodológico como el que sigue:

• Partiendo de una introducción del concepto “programar” se pasa a la necesidad de

un lenguaje.

• Este en primera instancia es uno supuesto, pseudocódigo o diagramas de flujo, que

constituye una herramienta de gran importancia por sí mismo.

• Luego se pasa al estudio de C, añadiendo de forma progresiva más dificultad y

recursos del propio lenguaje.

• En paralelo se introduce la necesidad de diseñar el qué hace un programa,

algoritmos, y sobre qué lo hace, datos. Esto se interrelaciona con otros contenidos y

así se divide el módulo en diferentes bloques, según se ve en apartados posteriores.

Page 10: PD - Fundamentos de Programacion

- 10 -

2- Objetivos

Se define a los objetivos como resultados de aprendizaje que se pretenden alcanzar al

final del periodo de formación. En un recorrido de menor a mayor grado de concreción

curricular, se tiene que estos objetivos los determina la Ley Orgánica de Educación

2/2006, el Real Decreto 538/2006, de la Organización de la Formación Profesional, el

Real Decreto de Enseñanzas mínimas 1660/1994, el de de Currículo, 1675/1994, y la

propia programación didáctica, cada uno con una mayor especificidad que el anterior.

Expresados en términos de capacidades y de acuerdo con la LOE1, desarrollada por el

Real Decreto 1538/2006, de 15 de diciembre, por el que se establece la ordenación

general de la formación profesional del sistema educativo, los objetivos de la Formación

Profesional son:

• Desarrollar la competencia general correspondiente a la cualificación o

cualificaciones objeto de los estudios realizados.

• Comprender la organización y las características del sector productivo

correspondiente, así como los mecanismos de inserción profesional; conocer la

legislación laboral y los derechos y obligaciones que se derivan de las relaciones

laborales.

• Aprender por sí mismos y trabajar en equipo, así como formarse en la prevención

de conflictos y en la resolución pacífica de los mismos en todos los ámbitos de la

vida personal, familiar y social. Fomentar la igualdad efectiva de oportunidades

entre hombres y mujeres para acceder a una formación que permita todo tipo de

opciones profesionales y el ejercicio de las mismas.

1 Ley Orgánica de Educación.

Page 11: PD - Fundamentos de Programacion

- 11 -

• Trabajar en condiciones de seguridad y salud, así como prevenir los posibles

riesgos derivados del trabajo.

• Desarrollar una identidad profesional motivadora de futuros aprendizajes y

adaptaciones a la evolución de los procesos productivos y al cambio social.

• Afianzar el espíritu emprendedor para el desempeño de actividades e iniciativas

empresariales.

• Lograr las competencias relacionadas con las áreas prioritarias referidas en la Ley

Orgánica 5/2002, de 19 de junio, de las Cualificaciones y de la Formación

Profesional.

• Hacer realidad la formación a lo largo de la vida y utilizar las oportunidades de

aprendizaje a través de las distintas vías formativas para mantenerse actualizado

en los distintos ámbitos: social, personal, cultural y laboral, conforme a sus

expectativas, necesidades e intereses.

En el siguiente grado de concreción curricular, el Real Decreto 1660/1994 por el que se

establece las Enseñanzas Mínimas se fija que los requerimientos generales de

cualificación profesional del sistema productivo para este técnico son:

Implantar, explotar y mantener en requerimientos de bajo y medio nivel los sistemas

informáticos en que se apoya la gestión y administración de la empresa, prestando

soporte directo o de primera línea a los usuarios finales y aplicando y cumpliendo con

los requisitos legales vigentes en el sector.

Este técnico actuará, en su caso, bajo la supervisión general de Ingenieros o

licenciados y/o Ingenieros Técnicos o diplomados.

Page 12: PD - Fundamentos de Programacion

- 12 -

Asimismo, las capacidades profesionales del módulo también quedan especificadas por

el mismo Real Decreto de enseñanzas mínimas, entre las que destacamos con negrita las

referidas al módulo de Fundamentos de programación:

• Organizar, administrar y controlar los servicios en sistemas informáticos

monousuarios, multiusuario y en red.

• Instalar y configurar sistemas informáticos en entornos monousuario y

multiusuario.

• Coordinar la puesta en marcha de redes de área local y la conexión a sistemas

informáticos enredes extensas.

• Organizar y administrar los recursos informáticos, compartidos y no compartidos,

atendiendo a las necesidades y/o requerimientos de la empresa.

• Implantar e integrar software de aplicación, específico y/o de propósito general

en el sistema informático.

• Interpretar y aportar soluciones a las necesidades y requerimientos funcionales

formulados por el/los usuario/s.

• Definir y proponer cambios y mejoras en el sistema y aplicaciones encaminados a

optimizar las prestaciones del sistema informático manteniéndose informado de

las innovaciones, tendencias, tecnología y normativa aplicable.

• Establecer y aplicar procedimientos que aseguren la integridad, disponibilidad y

confidencialidad de la información.

• Mantener relaciones fluidas con los miembros del grupo funcional en el que está

integrada, responsabilizándose de la consecución de los objetivos asignados al

grupo, respetando el trabajo de los demás, organizando y dirigiendo tareas

Page 13: PD - Fundamentos de Programacion

- 13 -

colectivas y cooperando en la superación de dificultades que se presenten, con una

actitud tolerante hacia las ideas de los compañeros y subordinados.

• Resolver problemas y tomar decisiones individuales sobre sus actuaciones o las de

otros, identificando y siguiendo las normas establecidas procedentes, dentro del

ámbito de su competencia, consultando dichas decisiones cuando sus repercusiones

organizativas, económicas o de seguridad son importantes.

• Actuar ante situaciones de posible emergencia, informando y solicitando ayuda a

quien proceda, dirigiendo las actuaciones de los miembros de su equipo, y

aplicando con seguridad y eficacia los distintos sistemas, medios o equipos para

prevenir/corregir las mismas.

A este técnico, en el marco de las funciones y objetivos asignados por técnicos de nivel

superior al suyo, se le requerirán en los campos ocupaciones concernidos, por lo

general, las capacidades de autonomía en:

• Organización y control de los servicios en sistemas informáticos de tipo medio

(ordenadores PC's y/o minis) operando en entornos monousuario, multiusuario y/o

conectados en red local.

• Supervisión de la entrega y aceptación de material informático (equipos, productos

sotfware y soportes de información).

• Instalación, configuración e integración de productos software en el sistema.

• Instalación y configuración de equipos (ordenadores y periféricos) en entornos

monousuario y multiusuario.

• Diseño y realización de pruebas de equipos y programas.

• Establecimiento de procedimientos para la seguridad y protección del sistema y la

información.

Page 14: PD - Fundamentos de Programacion

- 14 -

• Identificación de problemas en la utilización del sistema, derivados de la

instalación y/o configuración errónea de equipos y programas.

• Control del mantenimiento operativo o preventivo realizado a los equipos e

instalaciones.

• Realización de guías, manuales y programas que faciliten al usuario/cliente la

explotación del sistema y/o las aplicaciones.

• Elaboración de informes técnicos sobre las prestaciones de nuevos equipos y

programas para la toma de decisiones por el usuario/cliente.

Siguiendo con el aumento en la concreción curricular y, de acuerdo con este mismo

Real Decreto de enseñanzas mínimas se definen una serie de Unidades de

Competencia1. Cada una de ellas se corresponde con unas realizaciones y una serie de

módulos donde tales realizaciones se estudian, siendo la relevante en este caso la UC 4,

proponer y coordinar cambios para mejorar la explotación del sistema y las

aplicaciones. Además, las realizaciones profesionales vienen asociadas a unos criterios

de evaluación, como se muestra a continuación2:

UC 4: proponer y coordinar cambios para mejorar la explotación del sistema y las

aplicaciones. Realizaciones profesionales y criterios de realización

• Formular técnicamente los cambios y mejoras necesarios en el sistema y/o

aplicaciones para proporcionar criterios de decisión a la persona autorizada.

o Se detectan las carencias y dificultades de explotación del sistema y de las

aplicaciones observadas y sugeridas por los usuarios.

1 Se usa la abreviatura UC en el resto del texto. 2 Las realizaciones profesionales se marcan con negrita, los criterios de realización en tipo normal.

Page 15: PD - Fundamentos de Programacion

- 15 -

o Se definen de forma clara y concisa las funciones, prestaciones y recursos de los

cambios y mejoras que hay que programar.

o Se informa sobre las ventajas que aportaría al proceso de datos la incorporación

del nuevo producto indicando prestaciones, costes y servicios necesarios.

• Realizar, a su nivel, los cambios propuestos en el sistema y/o aplicaciones de

acuerdo con las prestaciones requeridas.

o Se identifican los ficheros y/o utilidades del sistema implicados en la realización

de los cambios propuestos.

o Se utiliza la interfaz de programación disponible en el sistema, si procede.

o El funcionamiento del sistema y/o aplicación no resulta afectado durante la

realización de los cambios y mejoras.

• Realizar pruebas funcionales y de usuario previas a la implantación de los

cambios desarrollados en el sistema y/o aplicaciones.

o La configuración y/u operatividad del sistema y/o aplicaciones no se ve afectada

durante la realización de las pruebas.

o Los datos utilizados y las condiciones de realización de las pruebas permiten

verificar la respuesta ante situaciones de error.

o La prueba verifica que la entrada, acceso y producción de datos es la requerida.

• Elaborar y mantener la documentación y guías del usuario descriptivas de los

cambios y mejoras introducidos en el sistema y/o aplicaciones según las normas y

procedimientos establecidos.

o Se cumple con las normas y procedimientos de documentación establecidos.

o Se elaboran las guías de usuario de forma sencilla y entendible para facilitar su

uso y aplicación.

Page 16: PD - Fundamentos de Programacion

- 16 -

o La información describe las estructuras de control, datos y características del

sistema utilizado en el cambio introducido y es interpretada fácilmente por

terceras personas.

Concretado el módulo, Fundamentos de Programación dentro de la UC 4, el Real

Decreto 1660/1994 determina qué capacidades terminales se pretenden conseguir y qué

criterios de evaluación están asociados a ellas, a continuación se especifican las

capacidades terminales, dejándose los criterios de evaluación para el apartado 9:

Módulo profesional 4: Fundamentos de Programación. Capacidades terminales

• Elegir y definir una estructura de datos para resolver un problema con lenguajes

estructurados.

• Aplicar la metodología de desarrollo estructurado para el diseño de algoritmos.

• Codificar programas en lenguajes estructurados de tercera generación.

Sólo resta el último grado de concreción curricular, los objetivos didácticos asociados a

cada unidad. Por motivos de claridad, se encuentran enumerados en cada una de las

Unidades Didácticas, que conforman la programación.

3- Contenidos generales

Se entiende por contenidos el conjunto de saberes, habilidades, destrezas y actitudes que

debe adquirir un alumno durante el periodo de formación. De forma análoga con el

apartado anterior, se ve cuales son los contenidos marcados por la ley, en un orden de

menor a mayor concreción curricular:

Page 17: PD - Fundamentos de Programacion

- 17 -

En este caso la LOE sólo referencia a los Reales Decretos correspondientes a cada

título, por lo que se procede a consultar estos. En el de Enseñanzas Mínimas, como su

propio nombre indica, se fijan los contenidos básicos del módulo que serán los que se

usen para confeccionar los criterios de evaluación de la prueba extraordinaria de

mínimos.

El RD 1675/1994 por el que se establece el currículo es el más conciso en cuanto a los

contenidos del módulo que se pueden diferenciar en conceptuales y procedimentales,

nótese que la legislación no menciona contenidos actitudinales específicos para el

módulo:

Contenidos conceptuales

• Estructuras de datos.

o Variables, tipos de variables.

o Registros, ficheros, arrays, listas, árboles.

o Algoritmos de utilización.

• Metodología de la programación y programación estructurada.

• Características de los lenguajes estructurados de tercera generación:

o Estructuras e instrucciones típicas.

o Procedimientos y funciones.

o Paso de argumentos.

o Características de la programación estructurada. Estructuras básicas.

• Entidades que maneja el lenguaje C: tipos de variables y estructuras de datos.

• Utilización de estructuras dinámicas: punteros en lenguaje C.

o Punteros, listas: pilas, colas. Árboles. Algoritmos de utilización.

o Funciones: paso de argumentos por parámetros y por dirección.

Page 18: PD - Fundamentos de Programacion

- 18 -

o Utilización de ficheros.

Contenidos procedimentales

• Aplicación de las estructuras a la resolución de problemas en programación.

• Características de los lenguajes estructurados de tercera generación:

o Métodos de diseño de programas y datos de prueba en programación

estructurada: análisis descendente; métodos orientados a las estructuras de

datos.

o Documentación y medidas de calidad en la programación.

o Aplicación de métodos de diseño de programas y datos de prueba en

programación estructurada.

o Documentación de programas.

• Programación en lenguajes estructurados: lenguaje C.

• Instrucciones del lenguaje: función y sintaxis; declaración de estructuras; E/S.

instrucciones de control.

o Aplicación práctica del lenguaje: diseño; procedimiento de codificación;

obtención de código ejecutable; depuración de errores.

o Funciones y librerías básicas del entorno de desarrollo.

o Documentación del programador del lenguaje C.

• Utilización de estructuras dinámicas: punteros en lenguaje C.

o Diseño y codificación de programas sobre: punteros, listas, pilas, colas. Arboles.

o Diseño y codificación de funciones.

o Diseño y codificación de programas sobre ficheros.

El grado más fino de concreción curricular, que se corresponde con el desglose por

Unidad Didáctica, se detalla en el siguiente apartado.

Page 19: PD - Fundamentos de Programacion

- 19 -

4- Secuenciación

Como ya se ha indicado antes, la legislación vigente asigna al módulo de Fundamentos

de Programación como objetivos tres capacidades terminales; metodología de

programación estructurada, estructuras de datos y codificación.

Al estar estos tres conceptos interrelacionados, se ha optado por dividir los contenidos

en unos bloques que no se corresponden de forma exacta con ese esquema. En su lugar,

los bloques propuestos están diseñados con la premisa metodológica de ir añadiendo

conceptos de acuerdo con su dificultad, conforme sean necesarios en la resolución de

problemas de carácter procedimental, más que en formar bloques de tipo temático por

conceptos. Dicho esto el esquema general de contenidos que se propone es el siguiente:

Bloque 1 Introducción

UD 1: Introducción a la programación

UD 2: Representación interna de la información

UD 3: Pseudocódigo

UD 4: Diagramas de flujo

Bloque 2: Programación básica en C

UD 5: Introducción al lenguaje C

UD 6: Entrada salida estándar

UD 7: Control de flujo

Page 20: PD - Fundamentos de Programacion

- 20 -

UD 8: Funciones

Bloque 3: Programación Avanzada en C

UD 9: Punteros

UD 10: Arrays y cadenas

UD 11: Ficheros

UD 12: Estructuras de datos

UD 13: Gestión dinámica de memoria

UD 14: Estructuras dinámicas

UD 15: Preprocesador, macros y librerías

Con más detalle, el desglose de contenidos, objetivos, sesiones y actividades por UD es

como sigue:

UD 1: Introducción a la programación

Temporalización:

• 1ª Evaluación: 8 Sesiones de teoría.

Objetivos:

• Diferenciar los componentes de un ordenador.

• Definir lenguaje de programación y distinguir entre alto y bajo nivel.

• Definir el concepto de algoritmo y tipos de datos.

Page 21: PD - Fundamentos de Programacion

- 21 -

Conocimientos previos:

• Ninguno, es la UD inicial del curso.

Contenidos conceptuales:

• Introducción a la informática.

• Unidades funcionales del ordenador. 2 sesiones

• Introducción a la programación.

• Alto y bajo nivel.

• Lenguajes de programación, ensambladores, compiladores.

3 sesiones

• Algoritmos y codificación.

• Datos: constantes, variables, tipos. 3 sesiones

Contenidos procedimentales:

• Ninguno.

Contenidos actitudinales:

• Interés por el estado actual de la informática.

• Interés por el funcionamiento básico de los ordenadores.

• Disposición a aprender a manejar software por cuenta propia.

• Apertura a los compañeros y valoración positiva al intercambio de ideas y

experiencias anteriores.

Actividades Enseñanza-Aprendizaje:

• Ninguna.

Criterios de evaluación:

• Definir las diferentes partes que componen un ordenador.

• Diferenciar entre lenguajes de alto y bajo nivel, código objeto y máquina.

• Distinguir entre algoritmo y codificación.

Page 22: PD - Fundamentos de Programacion

- 22 -

• Diferenciar entre tipos de datos.

UD 2: Representación interna de la información

Temporalización:

• 1ª Evaluación: 14 Sesiones totales, 7 teóricas + 7 prácticas.

Objetivos:

• Manejar los distintos sistemas de numeración.

• Conocer las principales codificaciones alfanuméricas.

Conocimientos previos:

• Aritmética básica y de la UD 1 los conceptos de; información, dato y tipos de datos

y de memoria principal.

Contenidos conceptuales:

• Sistemas de numeración. → 3 sesiones

• Representación de enteros, desbordamiento.

• Representación de números reales, coma flotante. 3 sesiones

• Codificaciones alfanuméricas: ASCII, Unicode. → 1 sesión

Contenidos procedimentales:

• Cambio entre sistemas de numeración decimal, binario, octal y hexadecimal.

• Operaciones aritméticas con diferentes sistemas de numeración.

• Consulta de tablas de caracteres.

Contenidos actitudinales:

• Disposición al uso de la documentación.

• Interés por el funcionamiento básico de los ordenadores.

Page 23: PD - Fundamentos de Programacion

- 23 -

Actividades Enseñanza-Aprendizaje:

• Resolución de problemas de cambios de numeración y

aritmética en bases diferentes a la decimal.

→ 7 sesiones

Criterios de evaluación:

• Distinguir entre los diferentes sistemas de numeración.

• Resolver problemas de cambios de base.

• Conocer los estándares de representación interna de los datos.

UD 3: Pseudocódigo

Temporalización:

• 1ª Evaluación: 28 Sesiones totales, 10 teóricas + 18 prácticas.

Objetivos:

• Diseñar algoritmos para la resolución de problemas.

• Entender los elementos básicos de la programación estructurada.

• Representar algoritmos usando pseudocódigo.

Conocimientos previos:

• De la UD 1 los conceptos de algoritmo.

• En menor medida, de la UD 2 datos, su almacenamiento y tipos.

Contenidos conceptuales:

• Pseudocódigo.

o Acciones simples; asignar, declarar, E/S.

o Condiciones, operandos.

o Secuencias

3 sesiones

Page 24: PD - Fundamentos de Programacion

- 24 -

• Control de flujo:

o Bifurcaciones

o Iteraciones.

4 sesiones

• Subprogramas

o Funciones

o Procedimientos

o Recursividad

3 sesiones

Contenidos procedimentales:

• Diseño y lectura de pseudocódigos.

Contenidos actitudinales:

• Valoración positiva de la metodología estructurada de diseño de software.

• Disposición al trabajo en equipo.

Actividades Enseñanza-Aprendizaje:

• Codificación en pseudocódigo de algoritmos secuenciales

sencillos.

→ 4 sesiones

• Codificación en pseudocódigo de algoritmos con control de

flujo.

→ 10 sesiones

• Codificación en pseudocódigo de algoritmos modulares → 4 sesiones

Criterios de evaluación:

• Codificar en pseudocódigo algoritmos.

• Interpretar pseudocódigos.

• Aplicar el pseudocódigo al diseño de programas.

Page 25: PD - Fundamentos de Programacion

- 25 -

UD 4: Diagramas de flujo

Temporalización:

• 1ª Evaluación: 20 Sesiones totales, 6 teóricas + 14 prácticas.

Objetivos:

• Diseñar algoritmos para la resolución de problemas.

• Representar algoritmos usando diagramas de flujo.

• Diferenciar entre organigramas y ordinogramas.

Conocimientos previos:

• De la UD 1 los conceptos de algoritmo.

• De la UD 3 el manejo de pseudocódigo y los conceptos de flujo, su control y

subprogramas.

Contenidos conceptuales:

• Diagramas de flujo:

o Organigramas.

o Ordinogramas.

6 sesiones

Contenidos procedimentales:

• Diseño y lectura de diagramas de flujo para un algoritmo.

• Traducción entre pseucódigos y diagramas de flujo.

Contenidos actitudinales:

• Valoración positiva de la metodología estructurada de diseño de software.

• Disposición al trabajo en equipo.

Actividades Enseñanza-Aprendizaje:

• Confección de ordinogramas y organigramas para algoritmos

sencillos.

→ 12 sesiones

Page 26: PD - Fundamentos de Programacion

- 26 -

• Traducción entre pseudocódigo y diagramas de flujo. → 2 sesiones

Criterios de evaluación:

• Diseñar diagramas de flujo dado un algoritmo.

• Interpretar diagramas de flujo.

• Aplicar los diagramas de flujo al diseño de programas.

UD 5: Introducción al lenguaje C

Temporalización:

• 1ª Evaluación: 17 Sesiones totales, 6 teóricas + 11 prácticas.

Objetivos:

• Conocer los componentes de un entorno de programación.

• Manejar la sintaxis de C para la construcción de sentencias.

• Usar la documentación del programador.

• Diferenciar entre constante y variable y sus tipos.

Conocimientos previos:

• De las UD 1 y 3 los conceptos de algoritmo, lenguaje y pseudocódigo.

• De la UD 2 el sistema binario de numeración, necesario para abordar las

operaciones con bits, un recurso muy característico de C.

Contenidos conceptuales:

• El software:

• Compilador, enlazador.

• Librería estándar.

• Documentación.

2 sesiones

Page 27: PD - Fundamentos de Programacion

- 27 -

• Tipos de datos de C.

• Declaración de variables y constantes.

• Operadores y órdenes de precedencia.

• Sentencias.

4 sesiones

Contenidos procedimentales:

• Instalación del entorno de programación.

• Lectura de documentación básica.

• Uso de la sintaxis básica de C: declaración de variables y constantes.

• Uso de la sintaxis básica de C: sentencias y operadores.

• Operaciones con bits.

Contenidos actitudinales:

• Disposición a la búsqueda de información adicional.

• Disposición al trabajo en equipo.

Actividades Enseñanza-Aprendizaje:

• Instalar entorno de desarrollo Dev-C++

• Primer contacto en C: “Hello world” 3 sesiones

• Codificación de sentencias sencillas en C y declaración de

variables.

→ 4 sesiones

• Resolución de problemas acerca de operadores de C. → 4 sesiones

Criterios de evaluación:

• Instalar software de programación.

• Reconocer y usar las herramientas ya instaladas en una máquina.

• Diferenciar entre los tipos de variables y constantes de C.

• Resolver problemas relacionados con la sintaxis básica y operadores de C.

Page 28: PD - Fundamentos de Programacion

- 28 -

UD 6: Entrada salida estándar

Temporalización:

• 2ª Evaluación: 17 Sesiones totales, 5 teóricas + 12 prácticas.

Objetivos:

• Usar las funciones de la librería de C para la E/S estándar.

• Diseñar y codificar programas interactivos básicos.

Conocimientos previos:

• Programación básica en C, de la UD 5 y técnicas descriptivas de algoritmos, de las

UD 3 y 4.

Contenidos conceptuales:

• Concepto de E/S estándar.

• Funciones de C para la E/S estándar

• Formato, secuencias de escape.

5 sesiones

Contenidos procedimentales:

• Uso de las funciones printf, scanf, get, getche.

• Diseño y codificación en C de programas que usen la E/S estándar.

• Diseño de programas amigables e informativos.

Contenidos actitudinales:

• Corrección en el diseño y codificación de programas.

• Uso de librerías en programas.

• Metodología de programación estructurada.

• Disposición al trabajo en equipo.

Page 29: PD - Fundamentos de Programacion

- 29 -

Actividades Enseñanza-Aprendizaje:

• Diseño y codificación de programas interactivos básicos → 12 sesiones

Criterios de evaluación:

• Entender el concepto de entrada salida estándar.

• Conocer y diferenciar las funciones básicas de E/S de C.

• Resolver problemas de programación que requieran la E/S estándar.

UD 7: Control de flujo

Temporalización:

• 2ª Evaluación: 18 Sesiones totales, 5 teóricas + 13 prácticas.

Objetivos:

• Definir el concepto de flujo de un programa.

• Distinguir entre bifurcación, iteración y salto.

• Diseñar y codificar programas en C que usen control de flujo.

Conocimientos previos:

• De la UD 5 y, en menor medida, 6, el concepto y los procedimientos de

programación secuencial en C.

Contenidos conceptuales:

• Flujo de un programa

• Bifurcaciones en C; if, else, if else.

• Bifurcaciones en C: switch, case.

2 sesiones

• Iteraciones en C: for, do, while → 2 sesiones

• Saltos en C: goto, break, continue. → 1 sesión

Contenidos procedimentales:

Page 30: PD - Fundamentos de Programacion

- 30 -

• Uso de las palabras claves de C: if, else, for, do, while, goto y break.

• Diseño y codificación en C de programas que usen control de flujo.

Contenidos actitudinales:

• Corrección en el diseño y codificación de programas.

• Metodología de programación estructurada.

• Buenas prácticas de programación estructurada: limitar el uso de saltos

incondicionales.

• Disposición al trabajo en equipo.

Actividades Enseñanza-Aprendizaje:

• Diseño y codificación de programas interactivos básicos que

usen control de flujo.

→ 13 sesiones

Criterios de evaluación:

• Conocer y diferencias las palabras claves de C asociadas al control de flujo.

• Diseñar y codificar programas que necesiten de control de flujo.

• Valorar la eficacia de los métodos de programación estructurada.

UD 8: Funciones

Temporalización:

• 2ª Evaluación: 18 Sesiones totales, 6 teóricas + 12 prácticas.

Objetivos:

• Definir el concepto de rutina y subprograma.

• Reconocer el ámbito de una variable en un programa de C.

• Diseñar y codificar programas modulares en C.

• Usar librerías en la programación.

Page 31: PD - Fundamentos de Programacion

- 31 -

Conocimientos previos:

• De las UD 3 y 5-7 los conceptos de control de flujo y las herramientas de

programación secuencial en C.

Contenidos conceptuales:

• Concepto de función: rutinas y subprogramas.

• La función main. 2 sesiones

• Declaración y definición de funciones.

• Ámbito de una variable.

• Recursividad.

2 sesiones

• Librerias, APIs, enlazadores.

• Concepto de compilación estática y dinámica. 2 sesiones

Contenidos procedimentales:

• Diseño y codificación en C de programas que usen funciones y recursividad.

• Codificación en C de librerías.

Contenidos actitudinales:

• Corrección en el diseño y codificación de programas.

• Buenas prácticas de programación estructurada: modularidad y librerías.

• Buenas prácticas de programación estructurada: documentar el código.

• Disposición al trabajo en equipo.

Actividades Enseñanza-Aprendizaje:

• Resolución de problemas básicos de programación con

funciones y recursividad: Hanoi, etc.

→ 8 sesiones

• Enlazar un programa con una librería en código objeto.

• Compilar una librería de rutinas. 4 sesiones

Page 32: PD - Fundamentos de Programacion

- 32 -

Criterios de evaluación:

• Reconocer la utilidad de la programación modular.

• Implementar programas que hagan uso de rutinas y funciones.

• Compilar programas con librerías propias o ajenas por compilación estática.

UD 9: Punteros

Temporalización:

• 2ª Evaluación: 20 Sesiones totales, 6 teóricas + 14 prácticas.

Objetivos:

• Definir el concepto de puntero y posición de memoria.

• Usar los operadores *, & de C.

• Diseñar y codificar programas en C que usen punteros y llamen a funciones por

referencia o valor.

Conocimientos previos:

• Programación modular en C de las UD 5-8 y representación y almacenamiento

interno de información, de la UD 2.

Contenidos conceptuales:

• Concepto de puntero.

• Operadores *, &. 3 sesiones

• Paso de argumentos por referencia y por valor → 3 sesiones

Contenidos procedimentales:

• Diseño y codificación en C de programas que usen punteros y paso de funciones por

referencia y valor.

Contenidos actitudinales:

• Interés por el funcionamiento básico de los ordenadores.

Page 33: PD - Fundamentos de Programacion

- 33 -

• Corrección en el diseño y codificación de programas.

• Metodología de programación estructurada.

• Buenas prácticas de programación en C: inicializar punteros a NULL y vigilar a

donde apuntan.

• Disposición al trabajo en equipo.

Actividades Enseñanza-Aprendizaje:

• Primeros bug en C: “Hello,protection/segmentation fault” → 1 sesión

• Resolución de problemas básicos de programación con

punteros y paso por referencia.

→ 13 sesiones

Criterios de evaluación:

• Diferenciar entre variable, posición en memoria y puntero.

• Distinguir entre los operadores *, &.

• Codificar y depurar programas en C que usen punteros y paso de argumentos a

funciones por referencia.

UD 10: Arrays y cadenas

Temporalización:

• 2ª Evaluación: 14 Sesiones totales, 4 teóricas + 10 prácticas.

Objetivos:

• Diferenciar entre array, cadena y puntero.

• Conocer la aritmética de punteros.

• Diseñar y codificar programas en C que usen arrays y cadenas de caracteres.

• Usar las funciones de librería de C para el manejo de cadenas.

• Conocer los algoritmos de ordenación.

Page 34: PD - Fundamentos de Programacion

- 34 -

Conocimientos previos:

• Programación modular en C de las UD 5-8 y punteros de la UD 9.

Contenidos conceptuales:

• Concepto y utilidad de arrays y cadenas.

• Funciones de librería para manipular cadenas.

• Relación con punteros.

• Aritmética de punteros

2 sesiones

• Algoritmos de ordenación: burbuja, kicksort → 2 sesiones

Contenidos procedimentales:

• Uso de las funciones de libreria: strcat, strcpy, strlen, strcmp, etc.

• Diseño y codificación en C de programas que usen cadenas y arrays.

• Implementación de algoritmos de ordenación.

Contenidos actitudinales:

• Interés por el funcionamiento básico de los ordenadores.

• Corrección en el diseño y codificación de programas.

• Metodología de programación estructurada.

• Buenas prácticas de programación en C: vigilar la longitud de cadenas y arrays.

• Disposición al trabajo en equipo.

Actividades Enseñanza-Aprendizaje:

• Diseño y codificación de programas interactivos en modo texto. → 6 sesiones

• Diseño y codificación de algoritmos de ordenación. → 4 sesiones

Criterios de evaluación:

• Definir y distinguir cadenas, arrays y punteros.

• Manejar la aritmética de punteros.

• Codificar y depurar programas en C que usen arrays y cadenas.

Page 35: PD - Fundamentos de Programacion

- 35 -

• Conocer los algoritmos de ordenación.

UD 11: Ficheros

Temporalización:

• 3ª Evaluación: 14 Sesiones totales, 4 teóricas + 10 prácticas.

Objetivos:

• Definir el concepto de fichero y sus tipos.

• Conocer la interfaz de E/S y las funciones de librería asociadas de C.

• Diseñar y codificar programas de C que manipulen archivos de datos.

Conocimientos previos:

• Programación modular en C de las UD 5-8, particularmente la UD 6 de E/S

estándar.

Contenidos conceptuales:

• Concepto de archivo: tipos → 1 sesión

• Funciones de librería para el manejo de ficheros.

• Modos de acceso a un archivo.

• Ficheros secuenciales de texto.

• Ficheros binarios.

3 sesiones

Contenidos procedimentales:

• Uso de las funciones de librería: fopen, fclose, fprintf, fscanf, fread, fputs fseek, etc.

• Diseño y codificación en C de programas que usen la E/S a archivos.

Contenidos actitudinales:

• Corrección en el diseño y codificación de programas.

• Metodología de programación estructurada.

Page 36: PD - Fundamentos de Programacion

- 36 -

• Buenas prácticas de programación estructurada: documentar formatos de los

ficheros de datos.

• Disposición al trabajo en equipo.

Actividades Enseñanza-Aprendizaje:

• Diseño y codificación de programas que usen archivos de

datos

→ 10 sesiones

Criterios de evaluación:

• Definir y distinguir entre los modos de acceso a ficheros.

• Manejar las funciones de librería de E/S de C.

• Codificar y depurar programas en C que usen ficheros.

UD 12: Estructuras de datos

Temporalización:

• 3ª Evaluación: 19 Sesiones totales, 6 teóricas + 13 prácticas.

Objetivos:

• Definir el concepto de estructura de datos.

• Distinguir entre conjunto, registro y unión.

• Crear estructuras de datos en C.

• Diseñar y codificar programas de C que usen estructuras de datos estáticas.

Conocimientos previos:

• Programación modular en C de las UD 5-8.

Contenidos conceptuales:

• Concepto de estructura de datos. → 1 sesión

• Estructura de datos en C: struct.

• Tipos de estructuras: uniones, registros, conjuntos. 5 sesiones

Page 37: PD - Fundamentos de Programacion

- 37 -

Contenidos procedimentales:

• Implementación de estructuras de datos en C usando la palabra clave struct.

• Aplicación de las estructuras de datos en el diseño de programas.

Contenidos actitudinales:

• Corrección en el diseño y codificación de programas.

• Metodología de programación estructurada.

• Buenas prácticas de programación estructurada: usar estructuras de datos.

• Disposición al trabajo en equipo.

Actividades Enseñanza-Aprendizaje:

• Diseño y codificación de programas que usen estructuras de datos

estáticas.

→ 15 sesiones

Criterios de evaluación:

• Definir y distinguir los tipos de estructuras estáticas.

• Usar estructuras de datos estáticas en el desarrollo de programas.

UD 13: Gestión dinámica de memoria

Temporalización:

• 3ª Evaluación: 20 Sesiones totales, 5 teóricas + 15 prácticas.

Objetivos:

• Conocer el mecanismo básico de asignación dinámico de memoria.

• Usar las funciones malloc y free de C para la asignación dinámica de memoria.

• Diseñar y codificar programas que usen memoria de forma dinámica.

Conocimientos previos:

• Programación modular en C de las UD 5-8 y representación interna de la

información de la UD 2.

Page 38: PD - Fundamentos de Programacion

- 38 -

Contenidos conceptuales:

• Posiciones de memoria y direccionamiento.

• Gestión dinámica de memoria con C: malloc y free.

• Tipo de dato void

5 sesiones

Contenidos procedimentales:

• Uso de las funciones de libreria: malloc, free, etc.

• Asignación de memoria a arrays, cadenas, etc, de tamaño desconocido en tiempo de

compilación.

• Diseño y codificación de programas con necesidades de memoria dinámica.

Contenidos actitudinales:

• Interés por el funcionamiento básico de los ordenadores.

• Corrección en el diseño y codificación de programas.

• Metodología de programación estructurada.

• Buenas prácticas de programación en C: Liberar memoria asignada dinámicamente

tras su uso.

• Disposición al trabajo en equipo.

Actividades Enseñanza-Aprendizaje:

• Diseño y codificación de programas que usen gestión

dinámica de memoria.

→ 15 sesiones

Criterios de evaluación:

• Entender el mecanismo básico de asignación dinámica de memoria.

• Usar la gestión dinámica de memoria en el desarrollo de programas.

Page 39: PD - Fundamentos de Programacion

- 39 -

UD 14: Estructuras dinámicas

Temporalización:

• 3ª Evaluación: 22 Sesiones totales, 8 teóricas + 14 prácticas.

Objetivos:

• Diferenciar entre estructuras estáticas y dinámicas

• Distinguir entre listas enlazadas, pilas, colas y árboles.

• Implementar estructuras dinámicas en C.

• Usar estructuras dinámicas en el diseño de programas.

Conocimientos previos:

• Prácticamente todos los conceptos y procedimientos anteriores; programación

modular en C de las UD 5-8, además de punteros, UD 9, estructuras estáticas, UD

12, y gestión dinámica de memoria, UD 13.

Contenidos conceptuales:

• Estructuras dinámicas vs. estáticas. → 1 sesión

• Tipos de estructuras dinámicas: listas enlazadas, pilas, colas y

árboles.

→ 3 sesiones

• Implementaciones implícitas.

• Implementaciones usando memoria dinámica 4 sesiones

Contenidos procedimentales:

• Punteros a estructuras.

• Estructuras y E/S.

• Operaciones asociadas a las estructuras dinámicas, push y pop, recorrido de árboles.

• Implementación de estructuras dinámicas

• Aplicación de las estructuras de datos en el diseño de programas.

Page 40: PD - Fundamentos de Programacion

- 40 -

Contenidos actitudinales:

• Corrección en el diseño y codificación de programas.

• Metodología de programación estructurada.

• Buenas prácticas de programación estructurada: usar estructuras de datos.

• Disposición al trabajo en equipo.

Actividades Enseñanza-Aprendizaje:

• Implementación de estructuras dinámicas → 7 sesiones

• Diseño y codificación de programas que usen estructuras de

datos dinámicas.

→ 7 sesiones

Criterios de evaluación:

• Diferenciar entre estructuras estáticas y dinámicas.

• Distinguir entre lista, cola, pila y árbol.

• Implementar las operaciones asociadas a las estructuras dinámicas

• Usar estructuras dinámicas en el desarrollo de programas.

UD 15: Preprocesador, macros y librerías

Temporalización:

• 3ª Evaluación: 12 Sesiones totales, 6 teóricas + 6 prácticas.

Objetivos:

• Entender la sintaxis del preprocesador de C.

• Usar las macros de C en la codificación de proyectos.

• Diferenciar entre los tipos de librerías más usados

Conocimientos previos:

• Programación modular en C de las UD 5-8 y punteros de la UD 9.

Page 41: PD - Fundamentos de Programacion

- 41 -

Contenidos conceptuales:

• Definición y uso de macros.

• El uso de macros en grandes proyectos de programación. 3 sesiones

• Librerías:

o Enlace estático

o Enlace dinámico

3 sesiones

Contenidos procedimentales:

• Uso de macros y sentencias de preprocesador.

• Sintaxis del preprocesador.

• Utilidad del preprocesador en árboles de fuentes grandes.

• Uso de librerías externas en programas.

Contenidos actitudinales:

• Interés por el código de proyectos grandes.

• Corrección en el diseño y codificación de programas.

• Disposición al trabajo en equipo.

Actividades Enseñanza-Aprendizaje:

• Resolución de problemas que impliquen el uso de macros de

preprocesador.

• Aplicación de macros en el diseño de programas.

3 sesiones

• Resolución de problemas que impliquen el uso de librerías

externas.

→ 3 sesiones

Criterios de evaluación:

• Resolver problemas que impliquen el uso de macros de preprocesador.

• Entender las diferencias entre los tipos de librerías existentes.

Page 42: PD - Fundamentos de Programacion

- 42 -

5- Temporalización

De acuerdo con la Resolución de 8 de junio de 2008, de la Dirección General de

Enseñanza, por la que se fija el calendario escolar del curso académico 2008/2009 y con

el cuadro horario del CFGS de Administración de Sistemas Informáticos, al módulo

Fundamentos de Programación le corresponden 288 sesiones, repartidas entre las 32

semanas del curso a razón de 9 sesiones por cada una de la siguiente forma:

L M X J V

2 sesiones 2 sesiones 1 sesión 2 sesiones 2 sesiones

Además de las propias clases en aula y prácticas, para lograr un esquema flexible, se

han de tener en cuenta las sesiones dedicadas a exámenes, actividades de repaso y

extraescolares. Por ello se propone dedicar uno de cada dos miércoles a actividades de

repaso y reservar 2 sesiones por evaluación para exámenes y actividades extraescolares.

Con todo ello, el reparto de sesiones por evaluación queda de la siguiente forma:

Sesiones 1ª Evaluación

UD Conceptos Actividades Total

1. Introducción a la programación 8 - 8

2. Representación interna de la información 7 7 14

3. Pseudocódigo 10 18 28

4. Diagramas de flujo 6 14 20

5. Introducción al lenguaje C 6 11 17

Total docencia: 37 50 87

Repaso 5

Act. Extraescolar 2

Exámenes 2

Total evaluación: 37 50 96

Page 43: PD - Fundamentos de Programacion

- 43 -

2ª Evaluación

UD Conceptos Actividades Total

6. Entrada salida estándar 5 12 17

7. Control de flujo 5 13 18

8. Funciones 6 12 18

9. Punteros 6 14 20

10. Arrays y cadenas 4 10 14

Total docencia: 26 61 87

Repaso 5

Act. Extraescolar 2

Exámenes 2

Total evaluación: 26 61 96

3ª Evaluación

UD Conceptos Actividades Total

11. Ficheros 5 12 17

12. Estructuras de datos 5 13 18

13. Gestión dinámica de memoria 6 12 18

14. Estructuras dinámicas 6 14 20

15. Preprocesador, macros y librerias 4 10 14

Total docencia: 26 61 87

Repaso 5

Act. Extraescolar 2

Exámenes 2

Total evaluación: 26 61 96

Los totales por curso quedan así:

Fundamentos de Programación Teoría Práctica Otros Total

1ª Evaluación 37 50 9 96

2ª Evaluación 26 61 9 96

3ª Evaluación 26 61 9 96

Total sesiones: 89 172 27 288

Page 44: PD - Fundamentos de Programacion

- 44 -

6- Metodología

Se propone una metodología activa y constructivista, cuyo fin es lograr un aprendizaje

significativo en base a lo siguiente:

• Partir de los conocimientos previos del alumno.

• Favorecer la motivación.

• Aprender a aprender, el alumno debe de sentar las bases para adquirir

conocimientos por si mismo.

De forma concreta, la metodología general que se propone se articula en torno al

siguiente procedimiento:

• Presentación de la UD, haciendo relación con otras anteriores y contenidos de otros

módulos.

• El hilo de la secuenciación de contenidos es añadir funcionalidad a un lenguaje de

programación. Dicha funcionalidad se introduce para resolver problemas de tipo

práctico (interactividad, modularidad, etc) lo que es un elemento motivador.

• En el desarrollo formal de los conceptos teóricos, se intenta que sean los alumnos

quienes realizan las conexiones entre conceptos y con la práctica. Para ello se

recurre a métodos de pregunta-respuesta o socráticos. Por ejemplo, para introducir

la idea de “lenguaje de programación” se sugiere la pregunta “¿y cómo se pasan las

instrucciones al ordenador?”.

• En otro ejemplo, una vez dominado el concepto de “flujo de un programa” se

sugiere lo útil que sería el tener un control sobre dicho flujo.

• El desarrollo de los contenidos procedimentales se lleva a cabo en el aula de

informática, mediante la elaboración de prácticas y presentando una memoria al

final de ellas que sirve como observación de los progresos del alumno.

Page 45: PD - Fundamentos de Programacion

- 45 -

• Estas prácticas también contribuyen a la consolidación de los contenidos

conceptuales. Algunos conceptos, notoriamente el de “puntero”, son fáciles de

entender a un nivel básico en la teoría, pero difíciles de manejar en la práctica, lo

que refuerza este planteamiento.

• A nivel de actitudes y dado el perfil profesional al que va dirigir el ciclo formativo,

se destaca la capacidad de buscar información y aprender por sus propios medios

sobre tecnología.

• Para fomentar esto se propone usar una serie de actividades de motivación que

impliquen la documentación por cuenta propia y la introducción de referencias a

fuentes de documentación, nuevas tecnologías y software fuera de lo común en las

clases.

6.1- Espacios y agrupamientos

En las clases teóricas se usa el aula en gran grupo, con actividades de exposición directa

o pregunta-respuesta.

Las clases prácticas usan el aula-taller de informática, de forma individual o en grupos

de dos. Ya que uno de los grandes contenidos actitudinales es trabajar en equipo, se

pretende reflejar así la realidad profesional.

7- Actividades

De acuerdo con su carácter y objetivos las actividades se clasifican en diferentes tipos:

Page 46: PD - Fundamentos de Programacion

- 46 -

7.1- De presentación y conocimientos previos

De acuerdo con la metodología constructivista, se ha de partir de los conocimientos

previos del alumno para desarrollar otros más avanzados.

Por ello, en las primeras sesiones de cada UD se hace una exposición relacionando con

otras anteriores y contenidos de otros módulos. En el propio desarrollo de las UD se

dejan “ganchos” conceptuales o procedimentales para poder enlazar con otras

posteriores, o con los contenidos de otros módulos.

En la medida de lo posible, se pretende que sean los alumnos quienes desarrollen estas

conexiones entre las diferentes UD recurriendo a métodos de pregunta abierta o

socráticos. Por ejemplo, para introducir la idea de “lenguaje de programación” se

sugiere la pregunta “¿y cómo se pasan las instrucciones al ordenador?”. En la UD

dedicada a funciones se muestra la limitación del paso por valor (usando el ejemplo

típico de una rutina que permute el valor de dos variables) y así sucesivamente.

Por esta razón también se ha escogido una secuenciación de contenidos en la que se

vayan añadiendo funcionalidades de forma progresiva a C, para usar la interrelación de

contenidos como eje del módulo.

7.2- De enseñanza-aprendizaje

Dada la carga procedimental del módulo, estas actividades consisten en resolución de

problemas y la codificación de programas en el aula-taller de informática, presentando

una memoria al final de ellas que sirve como observación de los progresos del alumno.

Page 47: PD - Fundamentos de Programacion

- 47 -

Estas prácticas también contribuyen a la consolidación de los contenidos conceptuales.

Algunos de ellos, notoriamente el de “puntero”, son fáciles de entender a un nivel

básico en la teoría, pero difíciles de manejar sino se trabaja con ellos de forma práctica,

lo que refuerza este planteamiento.

7.3- De refuerzo

La temporalización contempla el uso de uno de cada dos sesiones de miércoles como

clases de repaso para alumnos ritmo de aprendizaje lento.

7.4- De ampliación

El caso contrario, alumnos con ritmo de aprendizaje rápido, puede abordarse también en

las sesiones dedicadas a refuerzo, trabajando con las agrupaciones oportunas. A nivel de

contenidos y sin adaptar el currículo de forma significativa, el módulo se puede ampliar

tratando otros lenguajes y paradigmas de programación.

De la multitud que existen, los más oportunos temáticamente podrían ser; PERL,

lenguaje usado en scripts de administración, ensamblador, por el conocimiento de bajo

nivel que implica, o C++ o Java, por lo extendido de su uso.

La evaluación de estas actividades se haría por memorias, similar a las usadas en las

actividades de enseñanza-aprendizaje.

7.5- De motivación

Al margen de la tendencia general por hacer la materia interesante, fundamentalmente

relacionando la materia con la práctica profesional, algunas actividades tienen como

objeto específico de motivar al alumnado.

Page 48: PD - Fundamentos de Programacion

- 48 -

En este sentido, en el intervalo entre las UD 9, punteros, y UD 12, estructuras estáticas,

se acaba de explicar casi todos los recursos típicos de programación estructurada y

modular. Esto hace posible el proponer en ese periodo una actividad de programación a

desarrollar por cuenta propia, con las siguientes características:

• Agrupación libre de alumnos.

• Lenguaje de programación a escoger.

• Temática a escoger, con la condición de estar relacionada de alguna forma con el

bajo o medio nivel, las tareas administrativas.

• Ha de implicar una labor de documentación.

• Ha de ser legal y respetar licencias de software.

• El tiempo de trabajo dedicado ha de ser aproximadamente una semana.

• El plazo de entrega acaba el 15 de mayo.

La justificación de esta actividad se encuentra en que los típicos proyectos de muchos

cursos de programación (calculadora, agenda, etc) no tienen gran relación con un ciclo

formativo de administración de sistemas. Además, es fácil encontrar este tipo de

problemas resuelto en la red.

Por ello, fomentando una actividad de carácter libre se espera motivar al alumnado a

aprender por cuenta propia. Posibles ejemplos para motivar a los indecisos son:

• Un programa en DOS que cambie los modos de video, usando llamadas a VESA.

• Diseñar un programa que formatee un disco o sobrescriba su contenido.

• Escribir un programa que comunique al ordenador con un dispositivo por el puerto

serie.

• Documentar algún comando de Linux que no lo esté.

Page 49: PD - Fundamentos de Programacion

- 49 -

Todos estos proyectos no requieren un gran esfuerzo de codificación, no son de muchas

líneas. Con ello se insiste en que la idea no es proponer un gran proyecto, sino uno

pequeño pero “exótico”.

Esta actividad se evalúa como una memoria del aula-taller.

7.6- Extraescolares y complementarias

La temporalización prevé el uso de dos horas por evaluación para el desarrollo de

actividades extraescolares y complementarias.

8- Recursos y elementos de instrumentación

8.1- Del centro

A nivel material, para el desarrollo de este módulo el aula-taller de informática ha de

estar equipada con:

• Al menos 1 PC por cada dos alumnos.

• Windows y/o Linux instalado.

• Conexión a internet aconsejable, pero no imprescindible.

• El resto del software que se propone en las actividades de enseñanza-aprendizaje es

gratuito:

o Entorno de desarrollo Dev-C++, de Bloodshed, disponible para Windows y

Linux, actúa como frontend de gcc, disponible en http://www.bloodshed.net, a

pesar del nombre es tanto un entorno de C++ como de C.

Page 50: PD - Fundamentos de Programacion

- 50 -

8.2- Del alumno

No hay un libro de texto que se ajuste completamente a los contenidos del módulo, por

lo que usan fotocopias y apuntes propios como recursos didácticos para el alumno y el

clásico de Kerninghan y Ritchie como principal texto complementario. Además se

sugiere en el apartado dedicado a bibliografía varias páginas web con contenido de

interés para los alumnos.

9- Evaluación

9.1- Criterios de evaluación

Los criterios de acuerdo con los cuales se realiza a la evaluación están regulados por el

RD de título y enseñanzas mínimas 1660/1994, por lo que se incluye dicha información

a continuación:

• Describir las estructuras de datos típicas que maneja un lenguaje estructurado, su

utilidad y ámbito de aplicación.

• Citar operaciones que permiten realizar una estructura de datos desde un

programa y explicar sus algoritmos.

• Justificar la importancia de la adecuada selección de estructuras de datos para la

resolución de problemas en programación.

• Sobre un problema de programación en gestión propuesto:

- Elegir las estructuras más adecuadas para representar y manejar los datos del

problema.

- Describir los algoritmos de tratamiento de las estructuras para la resolución del

problema.

Page 51: PD - Fundamentos de Programacion

- 51 -

• Clasificar los lenguajes de programación según su nivel de abstracción y los

recursos y procedimientos de desarrollo utilizados.

• Describir las características propias de la programación estructurada y justificar

las ventajas que comporta.

• Identificar las estructuras básicas de programación.

• Definir las condiciones, el modo de aplicación de algún método de programación

estructurada y la sintaxis de un lenguaje gráfico de representación de algoritmos.

• Clasificar las instrucciones típicas de los lenguajes estructurados según su función.

• Sobre un problema de programación en gestión propuesto:

- Identificar y definir las estructuras de datos propias del problema.

- Elaborar y representar un algoritmo aplicando métodos de programación

estructurada.

- Elaborar un conjunto de datos de prueba de programa diseñado.

• Interpretar la sintaxis del lenguaje y sus instrucciones.

• Definir las instrucciones, funciones y librerías del lenguaje más básicas y su

utilidad.

• Describir el entorno de desarrollo del lenguaje: recursos que se utilizan y

procedimiento práctico de desarrollo de programas.

• En un supuesto en el que se dispone de un sistema y de la documentación de

referencia del lenguaje y un programa ya diseñado que responde a un programa

propuesto:

- Interpretar correctamente la información que suministran los manuales.

- Codificar un programa fuente en el lenguaje con comentarios significativos y

concisos, que defina adecuadamente las estructuras de datos y utilice

correctamente las instrucciones, funciones y librerías del lenguaje.

Page 52: PD - Fundamentos de Programacion

- 52 -

- Depurar el programa fuente y obtener un programa ejecutable.

9.2- Criterios de calificación

Siendo el módulo de carácter marcadamente procedimental, se propone un esquema de

evaluación que tenga en cuenta este hecho. En cada evaluación, sobre 10 puntos la nota

se reparte así:

• 50% mediante exámenes cuantitativos, a desarrollar en 2 horas con preguntas sobre

conceptos y resolución de problemas.

• 40% por evaluación continua, centrado en los contenidos procedimentales. Se

realiza mediante la entrega de problemas resueltos y memorias sobre las actividades

prácticas. La evaluación es de tipo cuantitativo.

• 10% cualitativo sobre la observación de actitudes, asistencia a clase y

comportamiento general.

La nota final del módulo se obtiene como promedio de las obtenidas en cada

evaluación. La nota mínima por evaluación para “hacer media” es de 4.

9.3- Recuperaciones, examen de nivel cero, final y de mínimos

El día de la presentación del módulo se realizará un pequeño examen conceptual de

nivel, para comprobar los conocimientos previos del alumnado y poder ajustar el curso

posterior. El examen será de tipo test y no influye en la nota del módulo.

Los alumnos que suspendan una evaluación tienen la oportunidad de recuperarla

mediante un examen.

Page 53: PD - Fundamentos de Programacion

- 53 -

Este se realizará en las sesiones destinadas a repaso de la evaluación siguiente. En el

caso de la recuperación de la 3ª evaluación, se realizará el mismo día del examen final.

Los alumnos que no aprueben el módulo por evaluaciones, tienen la opción de un

examen final en el mes de Junio.

Para los alumnos que no aprueben el examen final, en Septiembre se convoca un

examen de mínimos, donde los contenidos a evaluar serán los marcados por el RD

1660/1994 de enseñanzas mínimas. Resumidos, estos contenidos son:

• Programación estructurada y modular: Tipos de datos, E/S, punteros y estructuras

dinámicas y estáticas.

9.4- Evaluación del proceso enseñanza-aprendizaje

A fin de tener flexibilidad a lo largo del módulo, por cada evaluación, una sesión

destinada a repaso se dedica a evaluar al profesor, mediante un test a rellenar por los

alumnos o por debate en clase.

Con esto se pretende tener un mecanismo realimentación con el alumnado, aparte de las

sesiones de tutorías, y modificar en su caso la metodología a seguir.

9.5 Evaluación de la Programación Didáctica

Al terminar cada evaluación se realizará un control interno acerca de la aplicación de la

propia programación, teniéndose en cuenta la evaluación del proceso enseñanza-

aprendizaje. Con ellos se pretende comprobar la aplicación de la presente programación

y dar constancia de los cambios que se hagan en ella.

Page 54: PD - Fundamentos de Programacion

- 54 -

10- Atención a los alumnos con necesidades educativas

específicas de apoyo educativo

En el caso de contar de contar con alumnos con necesidades educativas especiales, se ha

de tener en cuenta en la programación didáctica como atenderlos de forma adecuada.

El mecanismo para ello es la adaptación curricular individual, ACI, que puede afectar

tanto a los elementos básicos del currículo, (metodología, contenidos, objetivos y

actividades), como a los de acceso, (adaptación de herramientas, arquitectónicas, etc).

El segundo caso queda fuera del alcance de esta programación didáctica, por lo que se

aborda una ACI referida sólo a los elementos básicos del currículo. El desarrollo de una

adaptación curricular nunca puede suponer la supresión, ni la adición, de capacidades

terminales asociadas a la competencia profesional.

Aplicado al módulo de Fundamentos de programación se toma como referencia los

contenidos básicos indicados por el RD 1660/1994 de enseñanzas mínimas, que marca

la máxima adaptación posible. De forma específica, aparte de los contenidos también se

puede actuar mediante:

• Actividades diferenciadas.

• Material didáctico no homogéneo.

• Agrupación flexible.

• Evaluación.

Siempre teniendo en cuenta las particularidades de cada alumno.

Page 55: PD - Fundamentos de Programacion

- 55 -

11- Temas transversales

La educación no sólo consiste en la transmisión y adquisición de unos saberes, en este

caso orientados a una competencia profesional. También existen unos contenidos

actitudinales, sin contenido conceptual específico y que no están asociados a ningún

módulo concreto.

Son los temas transversales, criterios y principios de la vida en sociedad, que se han de

transmitir de forma implícita. En lo que respecta al módulo de Fundamentos de

Programación, se propone el siguiente tratamiento:

Educación para la paz

Objetivos

• Resolver las diferencias con el grupo desde el respeto a otras opiniones.

Metodología

• Observar a los alumnos en situaciones que supongan conflictos.

Evaluación

• Valoración del proceder individual dentro del grupo.

Educación moral y cívica

Objetivos

Desarrollar respeto y tolerancia por los compañeros.

Metodología

• Situar al alumnado en posición de intercambio de opiniones.

• Mostrar discusiones conocidas dentro del mundo del software (Torvalds vs.

Tannebaum, vi vs. emacs, estilo de indentación, etc) y analizarlas.

Page 56: PD - Fundamentos de Programacion

- 56 -

Evaluación

• Valoración del proceder individual dentro del grupo.

Educación para la igualdad entre sexos

Objetivos

• Tener una actitud abierta basada en el respeto y la igualdad social.

• Usar un lenguaje no sexista.

Metodología

• Analizar las aportaciones de los compañeros, independientemente de su sexo o

condición.

• Denunciar actitudes discriminatorias

Evaluación

• Valoración del proceder individual dentro del grupo.

Educación para la salud

Objetivos

• Respetar las normas de seguridad e higiene.

• Realizar las prácticas con rigor y de acuerdo con las normas.

Metodología

• Dar a conocer las normas de seguridad e higiene.

• Analizar las consecuencias de no cumplir las normas de seguridad e higiene.

Evaluación

• Respeto por las normas de seguridad y salud.

Educación ambiental

Objetivos

• Uso racional de los recursos de las prácticas.

• Toma de conciencia de la problemática ambiental.

Page 57: PD - Fundamentos de Programacion

- 57 -

Metodología

• Vigilar el uso de electricidad en el aula taller, reducir derroche de energía en

monitores, etc.

Evaluación

• Valoración del proceder individual dentro del grupo.

Educación del consumidor

Objetivos

• Mentalizar acerca de la necesidad de planificación lógica del uso de recursos.

Metodología

• En las prácticas aprovechar los recursos, limitar el uso de papel en las memorias

entregándolas en formato electrónico.

Evaluación

• Valoración del proceder individual dentro del grupo.

Nuevas tecnologías

Objetivos

• Potenciar el interés del alumnado por las nuevas tecnologías.

• Incluir las nuevas tecnologías en la vida diaria del alumno.

Metodología

• Exponer el estado del arte en la informática.

• Proponer el uso de opciones de hardware y software menos conocido en las

prácticas.

Evaluación

Valoración del proceder individual dentro del grupo.

Page 58: PD - Fundamentos de Programacion

- 58 -

12- Bibliografía

Para la confección de esta programación didáctica se han usado diferentes materiales

que se recogen a continuación.

Bibliografía básica sobre C

• The ANSI C Programming Language, Dennis Ritchie & Brian Kerninghan, Ed

Prentice-Hall. ISBN 0-13-110362-8, o su traducción al castellano.

• El Lenguaje de Programacion C, Ed. Prentice-Hall Hispanoamericana, ISBN 968-

880-205-0.

Libro de texto

A pesar de no haber encontrado un libro que se ajuste totalmente a los contenidos del

módulo, una buena referencia básica para los alumnos es la siguiente:

• “Fundamentos de programación”, Enrique Quero Catalinas, Ed. Paraninfo-

Thomson, ISBN: 84-9732-000-X

Recursos en la web

Existen multitud de recursos en la red para el autoaprendizaje de C, o cualquier otro

lenguaje de programación. Entre ellos se destacan los siguientes:

http://c.conclase.net/curso/index.php?cap=001

Un muy buen curso en castellano de C++ para todos los niveles, en sus primeros

capítulos sirve para C y acaba con los conceptos más áridos de C++.

http://www.osdev.org/

Page 59: PD - Fundamentos de Programacion

- 59 -

Web dedicada a la programación de sistemas, incluye wiki y foro. Muy buenos recursos

sobre ensamblador, C/C++ y programación a bajo nivel en general.

http://www.htdp.org/

“How to design programs”, web de un proyecto del MIT para la enseñanza de un

método de programación sistemática. Incluye un libro en hipertexto. El lenguaje

vehicular es Scheme, pero resulta de gran interés pese a ello.

Page 60: PD - Fundamentos de Programacion

ANEXO – Relación de la propuesta de programación

didáctica con el currículo oficial

En el presente anexo, se explicita la relación existente entre los elementos curriculares

de cada UD propuesta, con los marcados por los RD 1660-1675/1994 de Título y

Currículo, respectivamente.

Anexo.1 Ubicación del módulo

Familia Profesional: Informática.

Ciclo Formativo de Grado Superior.

Especialidad: Administración de Sistemas Informáticos.

Módulo Profesional 4: Fundamentos de Programación.

Ubicación: Primer curso.

Horas semanales: 9 horas.

Horas totales del módulo: 285 horas según el RD 1975/1994. 288 horas según el

cuadro horario correspondiente al curso 2008/2009 de la Conselleria d’Educació.

Anexo.2 Relación del módulo con los objetivos generales del ciclo.

De entre las Capacidades Profesionales que marca el Real Decreto 1660/1994, de 22 de

julio, por el que se establece el titulo de técnico superior en Administración de Sistemas

Page 61: PD - Fundamentos de Programacion

Informáticos, son relevantes como objetivos del módulo Fundamentos de Programación

las siguientes:

• Implantar e integrar “software” de aplicación, específico y/o de propósito general en

el sistema informático.

• Interpretar y aportar soluciones a las necesidades y requerimientos funcionales

formulados por el/los usuario/s.

• Definir y proponer cambios y mejoras en el sistema y aplicaciones encaminados a

optimizar las prestaciones del sistema informático manteniéndose informado de las

innovaciones, tendencias, tecnología y normativa aplicable.

• Mantener relaciones fluidas con los miembros del grupo funcional en el que está

integrada, responsabilizándose de la consecución de los objetivos asignados al

grupo, respetando el trabajo de los demás, organizando y dirigiendo tareas

colectivas y cooperando en la superación de dificultades que se presenten, con una

actitud tolerante hacia las ideas de los compañeros y subordinados.

• Resolver problemas y tomar decisiones individuales sobre sus actuaciones o las de

otros, identificando y siguiendo las normas establecidas procedentes, dentro del

ámbito de su competencia, consultando dichas decisiones cuando sus repercusiones

organizativas, económicas o de seguridad son importantes.

• Actuar ante situaciones de posible emergencia, informando y solicitando ayuda a

quien proceda, dirigiendo las actuaciones de los miembros de su equipo, y

aplicando con seguridad y eficacia los distintos sistemas, medios o equipos para

prevenir/corregir las mismas.

Page 62: PD - Fundamentos de Programacion

Anexo.3 Relación de las Unidades Didácticas con las capacidades

terminales

El Real Decreto 1660/1994, de 22 de julio, por el que se establece el titulo de técnico

superior en Administración de Sistemas Informáticos, establece como Capacidades

Terminales del módulo Fundamentos de Programación las siguientes, indicándose al

lado de cada una, en que Unidades Didácticas de la programación se abordan:

• Elegir y definir una estructura de datos para resolver un problema con lenguajes

estructurados. → UD 2, 9-14

• Aplicar la metodología de desarrollo estructurado para el diseño de algoritmos. →

UD 1-15

• Codificar programas en lenguajes estructurados de tercera generación. → UD 5-15

Anexo.4 Relación con los bloques de contenidos

El Real Decreto 1675/1994, de 22 de julio, por el que se establece el currículo del ciclo

formativo de grado superior correspondiente al titulo de técnico superior en

Administración de Sistemas Informáticos, determina cuáles son los contenidos

correspondientes al módulo Fundamentos de Programación. Al lado de cada uno de

estos, se índica en que Unidad Didáctica se trata:

• Estructuras de datos. → UD 3, 10, 12, 14

o Variables, tipos de variables. → UD 2, 3, 5, 6

o Registros, ficheros, “arrays”, listas, árboles. → UD 9-12, 14

o Algoritmos de utilización. → UD 10, 12, 14

Page 63: PD - Fundamentos de Programacion

o Aplicación de las estructuras a la resolución de problemas en programación. →

UD 12-15

• Metodología de la programación y programación estructurada. → UD 3-15

• Características de los lenguajes estructurados de tercera generación: → UD 1, 5

o Estructuras e instrucciones típicas. → UD 1, 3-5

o Procedimientos y funciones. → UD 3, 5, 8-15

o Paso de argumentos. → UD 3, 8, 9

o Características de la programación estructurada. Estructuras básicas.→ UD 3-5, 7

o Métodos de diseño de programas y datos de prueba en programación estructurada:

análisis descendente; métodos orientados a las estructuras de datos. → UD 5-15

o Documentación y medidas de calidad en la programación. → UD 5-15

o Aplicación de métodos de diseño de programas y datos de prueba en

programación estructurada. → UD 3-15

o Documentación de programas. → UD 5-15

• Programación en lenguajes estructurados: lenguaje C. → UD 5-15

• Entidades que maneja el lenguaje C: tipos de variables y estructuras de datos. →

UD 5, 9, 10, 12, 14

• Instrucciones del lenguaje: función y sintaxis; declaración de estructuras; E/S.

instrucciones de control. → UD 5-7

o Aplicación práctica del lenguaje: diseño; procedimiento de codificación;

obtención de código ejecutable; depuración de errores. → UD 5-15

o Funciones y librerías básicas del entorno de desarrollo. → UD 5, 6, 10, 11, 13, 15

o Documentación del programador del lenguaje C. → UD 5-15

o Desarrollo de funciones sencillas de usuario. → UD 5-15

• Utilización de estructuras dinámicas: punteros en lenguaje C. → UD 9

Page 64: PD - Fundamentos de Programacion

• Punteros, listas: pilas, colas. Árboles. Algoritmos de utilización. → UD 9, 10, 13,

14

o Funciones: paso de argumentos por parámetros y por dirección. → UD 9

o Utilización de ficheros. → UD 11

o Diseño y codificación de programas sobre: punteros, listas, pilas, colas. Árboles.

→ UD 9-14

o Diseño y codificación de funciones. → UD 8-15

o Diseño y codificación de programas sobre ficheros. → UD 11-15

Anexo.5 Relación de las Unidades Didácticas con los Criterios de

evaluación

El Real Decreto 1660/1994, de 22 de julio, por el que se establece el titulo de técnico

superior en Administración de Sistemas Informáticos, establece como Criterios de

Realización para el módulo Fundamentos de Programación las siguientes, indicándose

al lado de cada uno, a que Unidades Didácticas de la programación son aplicables:

• Describir las estructuras de datos típicas que maneja un lenguaje estructurado, su

utilidad y ámbito de aplicación. → UD 3, 5, 10, 12, 14

• Citar operaciones que permite realizar una estructura de datos desde un programa y

explicar sus algoritmos. → UD 3, 10, 12, 14

• Justificar la importancia de la adecuada selección de estructuras de datos para la

resolución de problemas en programación. → UD 3, 10, 12, 14

• Sobre un problema de programación en gestión propuesto:

o Elegir las estructuras más adecuadas para representar y manejar los datos del

problema. → UD 10-15

Page 65: PD - Fundamentos de Programacion

o Describir los algoritmos de tratamiento de las estructuras para la resolución del

problema. → UD 10-15

• Clasificar los lenguajes de programación según su nivel de abstracción y los

recursos y procedimientos de desarrollo utilizados. → UD 1

• Describir las características propias de la programación estructurada y justificar las

ventajas que comporta. → UD 1, 3, 4

• Identificar las estructuras básicas de programación. → UD 3, 5, 7, 8

• Definir las condiciones, el modo de aplicación de algún método de programación

estructurada y la sintaxis de un lenguaje gráfico de representación de algoritmos. →

UD 3,4

• Clasificar las instrucciones típicas de los lenguajes estructurados según su función.

→ UD 3,4

• Sobre un problema de programación en gestión propuesto:

o Identificar y definir las estructuras de datos propias del problema. → UD 5-15

o Elaborar y representar un algoritmo aplicando métodos de programación

estructurada. → UD 3-15

o Elaborar un conjunto de datos de prueba de programa diseñado. → UD 5-15

• Interpretar la sintaxis del lenguaje y sus instrucciones. → UD 5-15

• Definir las instrucciones, funciones y librerías del lenguaje más básicas y su

utilidad. → UD 5

• Describir el entorno de desarrollo del lenguaje: recursos que se utilizan y

procedimiento práctico de desarrollo de programas. → UD 5

• En un supuesto en el que se dispone de un sistema y de la documentación de

referencia del lenguaje y un programa ya diseñado que responde a un programa

propuesto:

Page 66: PD - Fundamentos de Programacion

o Interpretar correctamente la información que suministran los manuales. → UD 5-

15

o Codificar un programa fuente en el lenguaje con comentarios significativos y

concisos, que defina adecuadamente las estructuras de datos y utilice

correctamente las instrucciones, funciones y librerías del lenguaje. → UD 5-15

o Depurar el programa fuente y obtener un programa ejecutable. → UD 5-15