GUÍA DE APRENDIZAJE · lenguaje de programación C por su gran potencia, flexibilidad, y ámbito...

21
Programación I Guía de aprendizaje. Semestre de otoño, Curso 20142015. 1 GUÍA DE APRENDIZAJE Programación I SEMESTRE DE OTOÑO La información contenida en esta guía es orientativa y por tanto es susceptible de modificación debido a erratas, omisiones, incidencias no previstas ocurridas durante el curso académico o si el correcto desarrollo de la asignatura así lo aconseja.

Transcript of GUÍA DE APRENDIZAJE · lenguaje de programación C por su gran potencia, flexibilidad, y ámbito...

Page 1: GUÍA DE APRENDIZAJE · lenguaje de programación C por su gran potencia, flexibilidad, y ámbito de aplicación, a pesar de los problemas que puede ocasionar poner en manos inexpertas

  Programación I 

Guía de aprendizaje. Semestre de otoño, Curso 2014‐2015.  1 

GUÍA DE APRENDIZAJE

Programación I SEMESTRE DE OTOÑO

La información contenida en esta guía es orientativa y por tanto es susceptible de modificación debido a erratas, omisiones, incidencias no previstas ocurridas durante el curso académico o si el correcto desarrollo de la asignatura así lo aconseja.

Page 2: GUÍA DE APRENDIZAJE · lenguaje de programación C por su gran potencia, flexibilidad, y ámbito de aplicación, a pesar de los problemas que puede ocasionar poner en manos inexpertas

  Programación I 

Guía de aprendizaje. Semestre de otoño, Curso 2014‐2015.  2 

CURSO 2014/2015 INDICE Presentación ................................................................................................. 1 Profesores, grupos y soporte ...................................................................... 2 Competencias y resultados de aprendizaje ............................................... 3 Unidades Temáticas ..................................................................................... 7 Distribución temporal de las unidades, prácticas y pruebas de evaluación continua. .................................................................................. 16 Sistema de evaluación y calificación ........................................................ 17 Examen extraordinario ............................................................................... 18 Recursos de enseñanza-aprendizaje ........................................................ 19 

Page 3: GUÍA DE APRENDIZAJE · lenguaje de programación C por su gran potencia, flexibilidad, y ámbito de aplicación, a pesar de los problemas que puede ocasionar poner en manos inexpertas

  Programación I 

Guía de aprendizaje. Semestre de otoño, Curso 2014‐2015.  1 

Asignatura: Programación I

Número decréditosECTS: 6

Semestredeimpartición: Otoño

Semetre 1º

Presentación La programación es una herramienta básica para cualquier graduado en ingeniería. En concreto, tiene aplicación en el desarrollo de aplicaciones telemáticas y en el procesado digital de la señal, además de estar presente en todos los sistemas de telecomunicación, desde una central telefónica, hasta un teléfono móvil. Programación I es una asignatura común a todos los grados y representa el primer contacto que tienen los estudiantes con la programación, disciplina que desarrollarán a lo largo de la carrera. En ella se hace una introducción a la programación, sentando las bases del diseño descendente como estrategia elemental en el desarrollo de aplicaciones. Posteriormente, en otras asignaturas, se estudiarán otras técnicas de diseño (por ejemplo el diseño basado en objetos), que en cualquier caso no representan una alternativa al diseño descendente, sino que se trata de técnicas complementarias, cada una con su campo de aplicación específico. Aunque el mayor esfuerzo se dedicará al diseño de algoritmos y su análisis, esto no serviría de nada si no se pudieran ejecutar los algoritmos para poder aplicarlos a problemas concretos. Por ello, es necesario codificar estos algoritmos en un lenguaje de programación concreto. En esta asignatura se utilizará el lenguaje de programación C por su gran potencia, flexibilidad, y ámbito de aplicación, a pesar de los problemas que puede ocasionar poner en manos inexpertas un lenguaje pensado para programadores más experimentados. La asignatura tiene 6 créditos oficiales. Esto se traduce en 160 horas de trabajo total, concentradas en unas 12 semanas. Este trabajo incluye la asistencia activa a las clases presenciales de grupo y de laboratorio, el estudio, las búsquedas bibliográficas, realización de ejercicios y pruebas de autoevaluación, resolución de las prácticas de laboratorio y realización de las pruebas de evaluación continua. La asignatura se imparte mediante b-learning, es decir, combinando la enseñanza presencial y la no presencial, para lo cual se utilizará el entorno virtual de aprendizaje Moodle. La superación de la asignatura se realizará a través de la evaluación continua. Existe la posibilidad de elección, por parte del alumno, del itinerario de “sólo prueba final”.

Page 4: GUÍA DE APRENDIZAJE · lenguaje de programación C por su gran potencia, flexibilidad, y ámbito de aplicación, a pesar de los problemas que puede ocasionar poner en manos inexpertas

  Programación I 

Guía de aprendizaje. Semestre de otoño, Curso 2014‐2015.  2 

Profesores, grupos y soporte

Nombre profesores (indicar coordinador) Name of lecturer(s)

Correo electrónico

Gregorio Rubio (coordinador) [email protected]

Carlos Carrillo [email protected]

Lourdes López [email protected]

David Meltzer [email protected]

Javier Ramírez [email protected]

José Antonio Sánchez [email protected]

Sara Lana [email protected]

Mary Luz Mouronte [email protected]

Oscar Ortiz [email protected]

Iván Pau [email protected]

Eloy Portillo [email protected]

La siguiente tabla contiene el número de grupos de teoría y laboratorio previstos para este semestre y su asignación a los profesores de la asignatura:

En el caso de necesitar asistencia técnica en relación a la plataforma Moodle, el soporte se realiza en el GATE: el administrador de la plataforma o el personal con responsabilidad técnica solucionarán los problemas de manejo de la herramienta que puedan aparecer.

Programación I (Coord: Rubio, Gregorio)

Grupos T 7

Carrillo, Carlos 1

López, Lourdes 1,5

Meltzer, David 1

Ramírez, Javier 1

Rubio, Gregorio 1,5

Sánchez, José Antonio 1

Grupos L 22

Carrillo, Carlos 3

Lana, Sara 1

López, Lourdes 1

Meltzer, David 3

Mouronte López, Mary Luz 2

Ortiz, Óscar 2

Pau, Iván 2

Portillo, Eloy 3,5

Ramírez, Javier 2,5

Rubio, Gregorio 2

Page 5: GUÍA DE APRENDIZAJE · lenguaje de programación C por su gran potencia, flexibilidad, y ámbito de aplicación, a pesar de los problemas que puede ocasionar poner en manos inexpertas

  Programación I 

Guía de aprendizaje. Semestre de otoño, Curso 2014‐2015.  3 

Competencias y resultados de aprendizaje En la programación hay dos aspectos fundamentales a tener en cuenta: por una parte el diseño de los algoritmos y las estructuras de datos a manejar, y por otro la codificación de estos algoritmos y estructuras de datos usando algún lenguaje de programación. En esta asignatura, el alumno deberá aprender a programar de forma estructurada y correcta aplicaciones sencillas utilizando C ANSI como lenguaje de programación. Para ello, deberá alcanzar los resultados de aprendizaje de la siguiente tabla, que aparecen con un peso (en horas sobre el total) indicando la contribución de cada resultado a la adquisición de las competencias asignadas a la asignatura:

Page 6: GUÍA DE APRENDIZAJE · lenguaje de programación C por su gran potencia, flexibilidad, y ámbito de aplicación, a pesar de los problemas que puede ocasionar poner en manos inexpertas

  Programación I 

Guía de aprendizaje. Semestre de otoño, Curso 2014‐2015.  4 

Programación I

Semestre: 1 6 ECTS = 160 horas

Habilidades para la utilización de las Tecnologías de la Información y las Comunicaciones. (Nivel 2)

Habilidades de aprendizaje con un alto grado de autonomía. (Nivel 1)

Capacidad para expresarse correctamente de forma oral y escrita y transmitir información mediante documentos y exposiciones en público. (Nivel 1)

Conocimiento y utilización de los fundamentos de la arquitectura y metodología de diseño, verificación y validación de software. (Nivel 2)

Conocimientos básicos sobre el uso y programación de los ordenadores, sistemas operativos, bases de datos y programas informáticos con aplicación en ingeniería. (Nivel 2)

C GEN. 11 C GEN. 13 C GEN. 3 C TEL. 7 CE BAS. 2

Total horas = 160 N2 N1 N1 N1 N1

Resultados de Aprendizaje Horas 6 33 10 69 42

Definir el concepto de procesador, diseño, entorno y acciones.

6

3 3

Establecer el concepto de dato y su representación en el ordenador. Utilizar los tipos de datos básicos y definir y utilizar tipos de datos estructurados. Identificar los datos necesarios para resolver un problema y asociarlos a los tipos correspondientes.

15

2

7 6

Manejar las operaciones de entrada/salida. Operar con ficheros.

14 1 4

3 6

Utilizar operadores (aritméticos, relacionales, lógicos y a nivel de bit), expresiones.

4

2 2

Aplicar acciones y sentencias de asignación, selección e iteración en algoritmia y lenguaje de programación respectivamente.

19 1 2

12 4

Diseñar algoritmos que den solución a problemas de complejidad sencilla, utilizando diseño descendente a partir de una especificación.

19 1 2

12 4

Page 7: GUÍA DE APRENDIZAJE · lenguaje de programación C por su gran potencia, flexibilidad, y ámbito de aplicación, a pesar de los problemas que puede ocasionar poner en manos inexpertas

  Programación I 

Guía de aprendizaje. Semestre de otoño, Curso 2014‐2015.  5 

Identificar clases de parámetros y sus tipos. Determinar los mecanismos de paso de parámetros en argumentos y resultado de funciones.

19 1 2

12 4

Analizar la corrección de los algoritmos usando técnicas sencillas de verificación.

12

12

Codificar y realizar pruebas a partir del diseño de un algoritmo.

12

8

2 2

Estructurar un programa en funciones y conocer el uso del paso de funciones como argumentos de otras funciones.

16 2 6

4 4

Usar memoria dinámica y aritmética de punteros para resolver problemas sencillos.

3

3

Explicar el concepto de módulo: utilizar funciones de biblioteca y de otros módulos.

6

2

4

Familiarizarse con el manejo básico de herramientas para desarrollar programas: editor, compilador, enlazador y depurador.

3

3

Manejar entornos integrados de desarrollo y acostumbrase a documentar programas.

2

2

Preparar y organizar memorias de trabajos realizados.

10

10

Page 8: GUÍA DE APRENDIZAJE · lenguaje de programación C por su gran potencia, flexibilidad, y ámbito de aplicación, a pesar de los problemas que puede ocasionar poner en manos inexpertas

  Programación I

Guía de aprendizaje. Semestre de otoño, Curso 2014‐2015.  6 

Peso en la calificación de cada resultado de aprendizaje: cada uno de los resultados de aprendizaje formarán parte de una evaluación continua sumativa, puesto que constituyen un todo de conocimientos y habilidades que el alumno necesita para capacitarse en el diseño de algoritmos y su codificación en lenguaje C. En la siguiente tabla aparecen los porcentajes sobre la calificación de cada resultado de aprendizaje.

Resultados de Aprendizaje Horas Peso en la calificación

Definir el concepto de procesador, diseño, entorno y acciones.

6 4%

Establecer el concepto de dato y su representación en el ordenador. Utilizar los tipos de datos básicos y definir y utilizar tipos de datos estructurados. Identificar los datos necesarios para resolver un problema y asociarlos a los tipos correspondientes.

15 6%

Manejar las operaciones de entrada/salida. Operar con ficheros.

14 10%

Utilizar operadores (aritméticos, relacionales, lógicos y a nivel de bit), expresiones.

4 4%

Aplicar acciones y sentencias de asignación, selección e iteración en algoritmia y lenguaje de programación respectivamente.

19 10%

Diseñar algoritmos que den solución a problemas de complejidad sencilla, utilizando diseño descendente a partir de una especificación.

19 10%

Identificar clases de parámetros y sus tipos. Determinar los mecanismos de paso de parámetros en argumentos y resultado de funciones.

19 12%

Analizar la corrección de los algoritmos usando técnicas sencillas de verificación.

12 8%

Codificar y realizar pruebas a partir del diseño de un algoritmo.

12 8%

Estructurar un programa en funciones y conocer el uso del paso de funciones como argumentos de otras funciones.

16 12%

Usar memoria dinámica y aritmética de punteros para resolver problemas sencillos.

3 2%

Explicar el concepto de módulo: utilizar funciones de biblioteca y de otros módulos.

6 2%

Familiarizarse con el manejo básico de herramientas para desarrollar programas: editor, compilador, enlazador y depurador.

3 4%

Manejar entornos integrados de desarrollo y acostumbrase a documentar programas.

2 2%

Preparar y organizar memorias de trabajos realizados.

10 6%

Page 9: GUÍA DE APRENDIZAJE · lenguaje de programación C por su gran potencia, flexibilidad, y ámbito de aplicación, a pesar de los problemas que puede ocasionar poner en manos inexpertas

  Programación I

Guía de aprendizaje. Semestre de otoño, Curso 2014‐2015.  7 

Unidades Temáticas

UNIDAD 1.- INTRODUCCION 1.1.- Conceptos de algoritmo y programa. Entorno y acciones. 1.2.- Necesidad del diseño de algoritmos. Introducción al concepto de diseño descendente 1.3.- Estructura básica de un programa C.

UNIDAD 2.- INTRODUCCIÓN AL CONCEPTO DE DATO. ENTRADA/SALIDA BÁSICA

2.1.- Concepto de dato 2.2.- Tipos de datos simples en C y su representación en el ordenador. 2.3.- Operadores en C. Aritméticos, relacionales, lógicos y a nivel de bit. 2.4.- Punteros. 2.5.- Expresiones. Sentencia de asignación. 2.6.- Entrada y salida básica. Ejemplos en C.

UNIDAD 3.- ESTRUCTURAS DE CONTROL: ALTERNATIVAS Y REPETITIVAS

3.1.- Estructuras repetitivas. 3.2.- Proceso de verificación de estructuras repetitivas. 3.3.- Estructuras alternativas. 3.4.- Diseño de algoritmos sencillos. Codificación de programas sencillos por analogía.

UNIDAD 4.- ALGORITMOS PARAMETRIZADOS Y MANEJO DE FUNCIONES

4.1.- Concepto y formalización de algoritmo parametrizado. 4.2.- Concepto de parámetro, clases de parámetros. 4.3.- Introducción al uso de funciones en C. 4.4.- Funciones estándar, manejo de funciones de biblioteca. Concepto y uso de módulos.

UNIDAD 5.- ESTRUCTURAS DE DATOS

5.1.- Identificación de tipos de datos estructurados. 5.2.- Tablas de una y varias dimensiones. Definición y uso. 5.3.- Funciones básicas para el manejo de cadenas de caracteres en C. 5.4.- Objetos compuestos. Definición y uso.

UNIDAD 6.- DISEÑO DESCENDENTE Y AMPLIACIÓN DE FUNCIONES EN C 6.1.- Diseño descendente en varios niveles. Verificación de la parametrización. 6.2.- Paso de tablas y estructuras como parámetros. 6.3.- Parámetros de la función main().

UNIDAD 7.- FICHEROS

7.1.- Concepto y uso de ficheros. 7.2.- Operaciones con ficheros. 7.3.- Acceso secuencial y aleatorio.

PRÁCTICAS BLOQUE I.- Introducción al entorno de programación y uso de tipos de datos básicos.

BLOQUE II.- Manejo de Estructuras de control.

BLOQUE III.- Algoritmos parametrizados y uso de funciones en C.

BLOQUE IV.- Diseño descendente con estructuras de datos complejas.

BLOQUE V.- Operaciones con ficheros. (opcional)

Page 10: GUÍA DE APRENDIZAJE · lenguaje de programación C por su gran potencia, flexibilidad, y ámbito de aplicación, a pesar de los problemas que puede ocasionar poner en manos inexpertas

    Programación I 

Guía de aprendizaje. Semestre de otoño, Curso 2012‐2013.  8 

PLANIFICACIÓN PRIMERA Y SEGUNDA UNIDAD Resultados de aprendizaje asociados a los contenidos:

Definir el concepto de procesador, diseño, entorno y acciones. Establecer el concepto de dato y su representación en el ordenador. Utilizar los tipos de datos básicos y definir y utilizar tipos de datos estructurados. Identificar los datos

necesarios para resolver un problema y asociarlos a los tipos correspondientes. Diseñar algoritmos que den solución a problemas de complejidad sencilla, utilizando diseño descendente a partir de una especificación. Manejar las operaciones de entrada/salida.

Contenidos y descripción de actividades en el aula:

Presentación de la asignatura. Exposición por parte del profesor de los contenidos de las Unidades I y II (clase magistral + grupos informales):

o Análisis y resolución de problemas mediante secuencias de pasos (procedimientos). Formalización de algoritmos. o Conceptos de diseño, acción, entorno y procesador. Diferencia entre acción primitiva y no primitiva. Nombre, clase, tipo y funcionalidad de un objeto del entorno.

Tipos de datos. o Concepto de lenguaje de programación, compilador, enlazador, etc. o Expresiones, operadores y acciones básicas de los algoritmos: lectura, escritura y asignación. o Bucles y acciones condicionales en diseño. o Aspecto de un programa escrito en lenguaje C.

Resolución mediante trabajo cooperativo de ejercicios básicos de algoritmia. Exposición y discusión de la solución de los ejercicios propuestos. Análisis inicial de la codificación en lenguaje C de diseños realizados en clase. Entrada y salida básica en C.

Descripción de Actividades de Trabajo no Presencial:

1. Entrar en Moodle y verificar el acceso a la página de Programación I. Leer la Guía de Aprendizaje. 2. Imprimir la documentación básica que aparece en Moodle de las unidades I, II y III. 3. Repasar los conceptos presentados por el profesor en el aula y realizar en grupo los diseños propuestos para casa. Leer antes el documento “Guía de la sintaxis

a utilizar en algoritmia”. 4. Codificar por analogía diseños anteriores. 5. Realización del test de autoevaluación nº 1 (Moodle).

Page 11: GUÍA DE APRENDIZAJE · lenguaje de programación C por su gran potencia, flexibilidad, y ámbito de aplicación, a pesar de los problemas que puede ocasionar poner en manos inexpertas

    Programación I 

Guía de aprendizaje. Semestre de otoño, Curso 2012‐2013.  9 

PLANIFICACIÓN PRIMERA Y SEGUNDA UNIDAD Resultados de aprendizaje asociados a los contenidos:

Definir el concepto de procesador, diseño, entorno y acciones. Establecer el concepto de dato y su representación en el ordenador. Utilizar los tipos de datos básicos y definir y utilizar tipos de datos estructurados. Identificar los datos

necesarios para resolver un problema y asociarlos a los tipos correspondientes. Manejar las operaciones de entrada/salida. Utilizar operadores (aritméticos, relacionales, lógicos y a nivel de bit) y expresiones. Aplicar acciones y sentencias de asignación, selección e iteración en algoritmia y lenguaje de programación C respectivamente. Diseñar algoritmos que den solución a problemas de complejidad sencilla, utilizando diseño descendente a partir de una especificación. Familiarizarse con el manejo básico de herramientas para desarrollar programas: editor, compilador, enlazador y depurador. Manejar entornos integrados de desarrollo y acostumbrase a documentar programas. Preparar y organizar memorias de trabajos realizados.

Contenidos y descripción de actividades en el aula:

Exposición y discusión de las soluciones a los ejercicios de trabajos en grupo. Manejo de operadores en C. Trabajo en grupo para reforzar concepto de acción repetitiva. Repaso de expresiones y sentencias de asignación en C. Entrada y salida en C

Descripción de Actividades en el laboratorio: Realización de la primera práctica: introducción al entorno de programación (editor, compilador, sistema operativo) y al manejo de datos y estructuras básicas.

Descripción de Actividades de Trabajo no Presencial:

1. Repasar los conceptos vistos hasta el momento. 2. Trabajo en grupo: trabajo complementario de la práctica de laboratorio y realización de la memoria.

Page 12: GUÍA DE APRENDIZAJE · lenguaje de programación C por su gran potencia, flexibilidad, y ámbito de aplicación, a pesar de los problemas que puede ocasionar poner en manos inexpertas

    Programación I 

Guía de aprendizaje. Semestre de otoño, Curso 2012‐2013.  10 

PLANIFICACIÓN TERCERA UNIDAD Resultados de aprendizaje asociados a los contenidos:

Aplicar acciones y sentencias de asignación, selección e iteración en algoritmia y lenguaje de programación respectivamente. Diseñar algoritmos que den solución a problemas de complejidad sencilla, utilizando diseño descendente a partir de una especificación. Analizar la corrección de los algoritmos usando técnicas sencillas de verificación. Familiarizarse con el manejo básico de herramientas para desarrollar programas: editor, compilador, enlazador y depurador. Manejar entornos integrados de desarrollo y acostumbrase a documentar programas.

Contenidos y descripción de actividades en el aula:

Corrección de ejemplos pendientes. Explicación por parte del profesor:

Tipos de estructuras repetitivas y alternativas. Formalización. Uso adecuado de cada una. Sintaxis en lenguaje C de las estructuras alternativas y repetitivas. Técnicas básicas de verificación de algoritmos.

Realización de ejemplos (ejercicio individual: diseñar sin ayuda diseños anteriores y codificar por analogía). Clase de apoyo al laboratorio.

Descripción de Actividades en el laboratorio: Preparación memoria primera práctica. Presentación y realización de la segunda práctica: manejo de estructuras de control.

Descripción de Actividades de Trabajo no Presencial:

1. Repasar los conceptos impartidos por el profesor en el aula y lectura del documento “Guía para la verificación de algoritmos”. 2. Realizar y/o completar ejercicios pendientes. 3. Realizar el test de autoevaluación número 2. 4. Realizar la práctica de laboratorio. 5. Imprimir información básica sobre la Unidad IV que aparece en Moodle. 6. Diseñar y codificar un algoritmo. Realización por analogía.

Page 13: GUÍA DE APRENDIZAJE · lenguaje de programación C por su gran potencia, flexibilidad, y ámbito de aplicación, a pesar de los problemas que puede ocasionar poner en manos inexpertas

    Programación I 

Guía de aprendizaje. Semestre de otoño, Curso 2012‐2013.  11 

PLANIFICACIÓN CUARTA UNIDAD

Resultados de aprendizaje asociados a los contenidos:

Diseñar algoritmos que den solución a problemas de complejidad sencilla, utilizando diseño descendente a partir de una especificación. Identificar clases de parámetros y sus tipos. Determinar los mecanismos de paso de parámetros en argumentos y resultado de funciones. Estructurar un programa en funciones y conocer el uso del paso de funciones como argumentos de otras funciones. Explicar el concepto de módulo: utilizar funciones de biblioteca y de otros módulos. Preparar y organizar memorias de trabajos realizados.

Contenidos y descripción de actividades en el aula:

Plantear un ejercicio cuya resolución implique la utilización de algoritmos parametrizados. Proyectar y discutir la solución. A partir del ejemplo, se introduce el concepto de función. Trabajo en grupos informales: aspectos fundamentales de lo explicado. Formalización por parte del profesor:

o Algoritmos parametrizados. Clases de Parámetros. o Funciones en C. Paso de parámetros. Valor devuelto por la función. o Funciones estándar, manejo de funciones de biblioteca. Concepto y uso de módulos.

Hacer en grupo el diseño y la codificación de un algoritmo que reutilice el explicado en clase. Exposición por parte del profesor de contenidos complementarios de la Unidad IV. Realización de ejemplos.

Descripción de Actividades en el laboratorio: Realización de la tercera práctica: Algoritmos parametrizados y uso de funciones en C. Descripción de Actividades de Trabajo no Presencial:

1. Realizar la práctica de laboratorio. 2. Repasar los conceptos impartidos por el profesor en el aula. 3. Realizar el test de autoevaluación número 3. 4. Imprimir la documentación para la clase de la Unidad V.

Page 14: GUÍA DE APRENDIZAJE · lenguaje de programación C por su gran potencia, flexibilidad, y ámbito de aplicación, a pesar de los problemas que puede ocasionar poner en manos inexpertas

    Programación I 

Guía de aprendizaje. Semestre de otoño, Curso 2012‐2013.  12 

PLANIFICACIÓN QUINTA UNIDAD Resultados de aprendizaje asociados a los contenidos:

Establecer el concepto de dato y su representación en el ordenador. Utilizar los tipos de datos básicos y definir y utilizar tipos de datos estructurados. Identificar los datos necesarios para resolver un problema y asociarlos a los tipos correspondientes.

Usar memoria dinámica y aritmética de punteros para resolver problemas sencillos. Familiarizarse con el manejo básico de herramientas para desarrollar programas: editor, compilador, enlazador y depurador. Manejar entornos integrados de desarrollo y acostumbrase a documentar programas.

Contenidos y descripción de actividades en el aula:

Exposición por parte del profesor de conceptos de la Unidad V: identificación de datos estructurados. Concepto y uso de tablas. Recorridos. Trabajo en grupo: ejercicio de uso de arrays. Discusión. Presentar un problema para solucionar mediante trabajo colaborativo. Uso de aritmética de punteros. Ejemplos. Tablas multidimensionales. Definición y uso. Ejemplos. Exposición por parte del profesor (clase magistral + grupos informales):

Concepto y uso de una estructura de datos (objeto compuesto). Definición en C de un nuevo tipo de datos. Uso de “typedef”. Ejemplos de gestión (acceder a los elementos, pasar como parámetros a funciones, dar valor a todos los elementos, etc.) de objetos de este tipo.

Introducción al uso de cadenas de caracteres y las funciones de librería que las manejan en C. Propuesta de trabajo de investigación.

Descripción de Actividades en el laboratorio: Presentación y realización de la práctica 4: Diseño descendente con estructuras de datos complejas. Descripción de Actividades de Trabajo no Presencial:

1. Repasar los conceptos impartidos por el profesor en el aula. 2. Trabajo en grupo: realizar los ejercicios propuestos y diseño de la práctica 4. 3. Completar de manera individual en el laboratorio el diseño de la práctica 4. 4. Realizar el test 1 y el test 2 de autoevaluación de la Unidad 5. 5. Estudiar la teoría correspondiente a cadenas de caracteres (ampliar la información presentada en clase). Investigar sobre prototipos de todas las funciones y uso de cada una

de ellas. Buscar la función que detecta la presencia de una subcadena dentro de otra cadena. 6. Imprimir la documentación de la Unidad VI.

Page 15: GUÍA DE APRENDIZAJE · lenguaje de programación C por su gran potencia, flexibilidad, y ámbito de aplicación, a pesar de los problemas que puede ocasionar poner en manos inexpertas

    Programación I 

Guía de aprendizaje. Semestre de otoño, Curso 2012‐2013.  13 

PLANIFICACIÓN SEXTA UNIDAD

Resultados de aprendizaje asociados a los contenidos:

Diseñar algoritmos que den solución a problemas de complejidad sencilla, utilizando diseño descendente a partir de una especificación. Analizar la corrección de los algoritmos usando técnicas sencillas de verificación. Codificar y realizar pruebas a partir del diseño de un algoritmo. Estructurar un programa en funciones y conocer el uso del paso de funciones como argumentos de otras funciones. Manejar entornos integrados de desarrollo y acostumbrase a documentar programas. Preparar y organizar memorias de trabajos realizados.

Contenidos y descripción de actividades en el aula:

Exposición por parte del profesor (clase magistral + grupos informales): Diseño descendente y verificación de la parametrización. Ejemplo de la agenda. Exposición y discusión en grupo de un problema de complejidad media.

Diseño de las estructuras de datos necesarias. Diseño y codificación de los algoritmos de primer nivel de abstracción.

Ejercicios de repaso. Completar el ejemplo de clase. Trabajo cooperativo. Exposición por parte del profesor:

o Parámetros de la función main(). o Paso de tablas, estructuras y funciones como argumento de otras funciones. o Ejemplos.

Descripción de Actividades en el laboratorio: Presentación y realización de la práctica 4: Diseño descendente con estructuras de datos complejas.

Descripción de Actividades de Trabajo no Presencial:

1.- Codificar el algoritmo discutido en clase. 2.- Realización práctica de laboratorio. 3.- Completar el diseño y la codificación en C algoritmos del programa de la “agenda” propuestos en clase. 4.- Imprimir la documentación que aparece en Moodle sobre la Unidad VII.

Page 16: GUÍA DE APRENDIZAJE · lenguaje de programación C por su gran potencia, flexibilidad, y ámbito de aplicación, a pesar de los problemas que puede ocasionar poner en manos inexpertas

    Programación I 

Guía de aprendizaje. Semestre de otoño, Curso 2012‐2013.  14 

PLANIFICACIÓN SÉPTIMA UNIDAD

Resultados de aprendizaje asociados a los contenidos:

Diseñar algoritmos que den solución a problemas de complejidad sencilla, utilizando diseño descendente a partir de una especificación. Manejar las operaciones de entrada/salida. Operar con ficheros. Manejar entornos integrados de desarrollo y acostumbrase a documentar programas.

Contenidos y descripción de actividades en el aula:

Exposición por parte del profesor (clase magistral con grupos informales):

o Concepto de fichero y características. o Algoritmos de lectura y escritura. Apertura y cierre de ficheros. o Tipos de fichero. o Acceso secuencial y aleatorio. o Detección de errores.

Presentación de la actividad de trabajo cooperativo (puzzle).

Descripción de Actividades en el laboratorio: Presentación de la ampliación de la práctica 4: Utilización de ficheros para guardar y recuperar información.

Descripción de Actividades de Trabajo no Presencial:

1. Preparación individual para el trabajo cooperativo. 2. Trabajo cooperativo. 3. Realización de la práctica (opcional).

Page 17: GUÍA DE APRENDIZAJE · lenguaje de programación C por su gran potencia, flexibilidad, y ámbito de aplicación, a pesar de los problemas que puede ocasionar poner en manos inexpertas

    Programación I 

Guía de aprendizaje. Semestre de otoño, Curso 2012‐2013.  15 

PLANIFICACIÓN EJERCICIOS FINALES Resultados de aprendizaje asociados a los contenidos:

Diseñar algoritmos que den solución a problemas de complejidad sencilla, utilizando diseño descendente a partir de una especificación. Manejar las operaciones de entrada/salida. Operar con ficheros. Manejar entornos integrados de desarrollo y acostumbrase a documentar programas. Preparar y organizar memorias de trabajos realizados.

Contenidos y descripción de actividades en el aula:

1. Realización de ejercicios, en grupo, acerca de todo el contenido de la asignatura. Resolución de ejercicios con enunciados complejos. Discusión de soluciones. 2. Resolución de dudas.

Descripción de Actividades de Trabajo no Presencial:

1.- Estudio personal. Resolución de dudas. Tutorías individuales.

Page 18: GUÍA DE APRENDIZAJE · lenguaje de programación C por su gran potencia, flexibilidad, y ámbito de aplicación, a pesar de los problemas que puede ocasionar poner en manos inexpertas

    Programación I 

Guía de aprendizaje. Semestre de otoño, Curso 2012‐2013.  16 

Distribución temporal de las unidades, prácticas y pruebas de evaluación continua.

CLASES PRESENCIALES (horas) ACTIVIDADES SIN PROFESOR (horas) EVALUACIONES

Semana Fechas Teoría

grupo/seminario Tutoría

colectiva Laboratorio Laboratorio

Trabajo Grupo

Otros Horas Descripción y ponderación

1 10-12/Sep.

2 15-19/Sep. 2 (Ud. 1) 1

3 22-29/Sep. 2 (Ud. 2) 1 2 2

4 29/Sep. - 3/Oct. 2 (Ud. 3) 1 2 – P1 2

5 6-10/Oct. 2 (Ud. 3) 1 2 – P2 2 2 2

6 13-17/Oct. 2 (Ud. 4) 1 2 – P2 3 4

7 20-24/Oct. 2 (Ud. 4) 1 2 – EVAL LAB 2 2 2 Prueba de evaluación 1 (en el laboratorio) Evaluación Práctica 2. Peso 5%: modificación

8 27-31/Oct. 2 (Ud.4) 1 2 – P3 2 2 2

9 3-7/Nov. 2 (Ud.5) 2 – P3 3 4

10 10-14/Nov. 2 (Ud.5)

1 (G1-M2, G1-T2 y G1-T3)

2 – EVAL LAB 4 2 2 2

Prueba de evaluación 2 (en el laboratorio) Evaluación Práctica 3. Peso 15%: modificación

11 17-21/Nov. 2 (Ud. 6) 2 – P4 2 6 2 Prueba de evaluación 2 (en el laboratorio)

(grupos X)

12 24-28/Nov. 2 (Ud. 6) 2 – P4 2 2 1 Prueba de evaluación 3 (en aula de examen)

Evaluación unidades 1 al 5 (incluidas). Peso 15%: test - 1 hora

13 1-5/Dic. 2 (Ud 7)

Sólo: G1M2, G1T2 y G1T3

2 – P4 4 2

14 8-12/Dic. 2 (Ud.7)

Sólo: G1M1,G1T1, G1M3 y G1M4

2 – P4 4 2 4

15 15-19/Dic.

EVAL LAB 2 2 2 2 Prueba de evaluación 4 (en el laboratorio)

Evaluación Práctica 4. Peso 20%: modificación

16, 17 y 18 22/Dic.-7/Ene. 10

18, 19 y 20 8-21/Ene. 14 3 Prueba de evaluación 5 (en aula de examen) Evaluación final Peso 45%: ejercicio escrito de

programación – 2 -3 horas

SUMA TOTAL 24 6 20 30 10 60 10

Page 19: GUÍA DE APRENDIZAJE · lenguaje de programación C por su gran potencia, flexibilidad, y ámbito de aplicación, a pesar de los problemas que puede ocasionar poner en manos inexpertas

  Programación I 

Guía de aprendizaje. Semestre de otoño, Curso 2012‐2013.  17 

Sistema de evaluación y calificación

Evaluación y criterios de calificación Assessment methods

El alumno podrá elegir entre dos itinerarios de evaluación, excluyentes y definitivos:

1. Itinerario de evaluación continua 2. Itinerario de solo prueba final

Itinerario de evaluación continua

Es el itinerario por defecto. El alumno deberá trabajar de forma continuada durante todo el cuatrimestre, asistiendo y participando en las clases teóricas y de laboratorio. Igualmente, deberá entregar en fecha todos los trabajos solicitados en los enunciados de las prácticas de laboratorio.

En el itinerario de evaluación continua se realizarán las siguientes pruebas de evaluación:

Prueba de evaluación 1 (en el laboratorio) Evaluación Práctica 2 Peso 5% 2 Horas – Semana 7 Prueba de evaluación 2 (en el laboratorio) Evaluación P3 Peso 15% 2 Horas – Semana 10 (excepto grupos del miércoles que será la semana 11) Prueba de evaluación 3 (en aula de examen) Evaluación unidades 1 al 5 (incluidas) Peso 15%: test 1 hora - Semana 12 Prueba de evaluación 4 Evaluación P4 Peso 20% 2 Horas – Semana 15 Prueba de evaluación 5 (en aula de examen) Evaluación final Peso 45%: ejercicio escrito de programación 2 ó 3 horas – Semana 19

Por el itinerario de evaluación continua la asignatura sólo se puede superar en el semestre de impartición de la docencia, de acuerdo con los siguientes criterios:

o La calificación final del alumno será la suma ponderada, de las pruebas de

evaluación que el alumno haya realizado. o Obtener al menos un 5 en la media ponderada de las calificaciones de las

pruebas de evaluación continua.

Como evaluación formativa, el alumno realizará test de autoevaluación en Moodle, ejercicios con retroalimentación por parte del profesor, trabajos en grupo, etc. Esta evaluación será de carácter autoformativo y no tendrá calificación.

Itinerario de solo prueba final

Los alumnos que elijan este itinerario deberán presentar, con fecha límite el 3 de Octubre de 2014 a las 14:00, una solicitud por escrito en la Secretaría del Departamento DTE indicando la elección de este itinerario. El modelo de solicitud se encuentra en Moodle. En este itinerario no se realizará ninguna prueba de evaluación continua, pero los alumnos deberán realizar las prácticas de laboratorio y deberán entregar al final de semestre las memorias de las mismas. La evaluación final consistirá en dos pruebas: examen de laboratorio (peso 40% de la nota final) y examen de teoría (60% de la nota final). Para superar la asignatura el alumno deberá obtener

Page 20: GUÍA DE APRENDIZAJE · lenguaje de programación C por su gran potencia, flexibilidad, y ámbito de aplicación, a pesar de los problemas que puede ocasionar poner en manos inexpertas

  Programación I 

Guía de aprendizaje. Semestre de otoño, Curso 2012‐2013.  18 

como mínimo un 5 en ambas pruebas.

Una vez elegido el itinerario de solo prueba final, no es posible el cambio de itinerario por parte del alumno excepto por causa sobrevenida y de fuerza mayor.

Examen extraordinario La convocatoria extraordinaria tendrá lugar en el mes de junio y julio, podrán optar a ella los alumnos de hayan cursado la asignatura en cualquiera de los dos semestres, y estará abierta a todos los alumnos que no hayan aprobado la asignatura, tanto los que han ido por itinerario de evaluación continua como por itinerario de solo prueba final. El examen extraordinario consistirá en dos partes: 1. PARTE ESCRITA: Realización de ejercicios escritos. Es de obligatoria realización

para todos los alumnos que se presenten a esta convocatoria. 2. PARTE PRÁCTICA: Realización, entrega de prácticas, y prueba de evaluación de

las mismas. Sólo será obligatoria para los alumnos que, habiendo optado por el itinerario de evaluación continua, hayan obtenido una calificación media de las pruebas de laboratorio inferior a 5 sobre 10 y para los alumnos que, habiendo optado por el itinerario de solo prueba final hayan obtenido menos de un 5 en el examen de laboratorio y la evaluación de sus prácticas. A principios de febrero (alumnos primer semestre) y a mediados de junio (alumnos segundo semestre) se publicará la lista de los alumnos que están exentos de la realización de esta parte práctica.

Para superar la prueba se debe obtener un mínimo de 5 en cada una de las partes. El peso de la parte práctica será del 40% de la nota final y el de la parte teórica del 60%.

Información sobre actuaciones en caso de copia o plagio Con el fin de evaluar adecuadamente el trabajo del alumno y de comprobar que no ha surgido ninguna inferencia por parte de otros alumnos se utilizará un método anticopia que detecta de manera muy fiable la similitud existente entre dos prácticas. Se recuerda que los derechos y deberes de los estudiantes universitarios están desarrollados en el Estatuto del Estudiante Universitario (RD 1791/2010 de 30 de diciembre) y en el artículo 13 del referido estatuto en el punto d) especifica que es deber del estudiante universitario “abstenerse de la utilización o cooperación en procedimientos fraudulentos en las pruebas de evaluación, en los trabajos que se realicen o en documentos oficiales de la universidad”. En el caso de que en el desarrollo de las pruebas de evaluación se aprecie el incumplimiento de los deberes como estudiante universitario, el coordinador de la asignatura podrá ponerlo en conocimiento del Director del Centro, que de acuerdo con lo establecido en el artículo 77 (n) de los Estatutos de la UPM tiene competencias para “Proponer la iniciación del procedimiento disciplinario a cualquier miembro de la Escuela o Facultad, por propia iniciativa o a instancia de la Comisión de Gobierno” al Rector, en los términos previstos en los estatutos y normas de aplicación. Por lo tanto, ante tales hechos el Tribunal de la asignatura calificará con un 0 dicha prueba, al no poder determinar los conocimientos adquiridos por el alumno. Se informará a la dirección del departamento del hecho y a la Subdirección de Ordenación Académica para analizar los casos reincidentes y ponerlo en conocimiento del Director según el párrafo anterior.

Uso de dispositivos de comunicaciones Está prohibido el uso de cualquier dispositivo de comunicación tanto en las clases de teoría, como en las de laboratorio, como en las pruebas o exámenes de evaluación continua.

Page 21: GUÍA DE APRENDIZAJE · lenguaje de programación C por su gran potencia, flexibilidad, y ámbito de aplicación, a pesar de los problemas que puede ocasionar poner en manos inexpertas

  Programación I 

Guía de aprendizaje. Semestre de otoño, Curso 2012‐2013.  19 

Recursos de enseñanza-aprendizaje Recursos bibliográficos:

Disponible online:

J. GARCÍA DE JALÓN y otros. Aprenda lenguaje ANSI C como si estuviera en primero. Universidad de Navarra. http://www.tecnun.es/asignaturas/Informat1/ayudainf/aprendainf/AnsiC/leng_c.pdf

A. MARZAL e I. GRACIA. Introducción a la programación con C. Universitat Jaume I. (Recomendado fundamentalmente por lo ejemplos y ejercicios que contiene) http://www.uji.es/bin/publ/edicions/c.pdf

A. MITTAL. Programming in C: A Practical Approach. Pearson Educuation. Disponible a través de la plataforma Safari Books (accesible desde la UPM. Ver página web biblioteca http://www.upm.es/institucional/UPM/Biblioteca/RecursosInformacion/LibrosElectronicos/9aa6a0a13292e210VgnVCM10000009c7648aRCRD)

Disponibles en biblioteca:

F. J. CEBALLOS. C/C++. Curso de programación. 3ª Edición. Ed. Ra-Ma. (Son válidas también las ediciones anteriores)

JOYANES, I. ZAHONERO, Programación en C. Metodología, algoritmos y estructuras de datos. 2ª edición, 2005. McGraw-Hill/Interamericana de España.

BRIAN W. KERNIGHAN, DENNIS M. RITCHIE, El lenguaje de programación C. Ed. Prentice-Hall. 1985.

Recursos Web y multimedia:

Moodle: En esta plataforma se incluyen documentos docentes básicos de la asignatura, enlaces, test de autoevaluación, ejercicios propuestos y resueltos, etc. y se añade como método de comunicación de avisos y solución de dudas.

Equipamiento:

En los laboratorios los alumnos dispondrán de ordenadores en los que se encuentra instalado el entorno de desarrollo necesario para desarrollar las prácticas de la asignatura. Los ordenadores disponen de acceso a Internet. Las herramientas a utilizar son de libre acceso y se les indicará a los alumnos dónde obtenerlas.

Locales para trabajo no presencial:

Laboratorios con horarios de libre acceso para la realización de las prácticas y aulas especialmente equipadas para las actividades de trabajo en grupo.