Fichas de asignaturas 2007-08
CÓDIGO | NOMBRE | |
Asignatura | 1710007 | METODOLOGÍA DE LA PROGRAMACIÓN |
Titulación | 1710 | INGENIERÍA TÉCNICA EN INFORMÁTICA DE GESTIÓN |
Departamento | C137 | LENGUAJES Y SISTEMAS INFORMATICOS |
Curso | 1 | |
Duración (A: Anual, 1Q/2Q) | 2Q | |
Créditos ECTS | 4,5 |
Créditos Teóricos | 3 | Créditos Prácticos | 3 | Tipo | Troncal |
- Capacidad para aplicar los conocimientos teóricos a la práctica. - Capacidad de resolución de problemas siguiendo una metodología. - Actitud rigurosa y formal en el desarrollo de programas.
Cognitivas(Saber):
- Diseño modular. - Descomposición modular. - Documentación de programas. - Análisis de algoritmos. - Transformación de algoritmos recursivos. - Técnicas y estrategias de prueba del software. - Técnicas de verificación formal de algoritmos.
Procedimentales/Instrumentales(Saber hacer):
- Aplicar el diseño modular en el desarrollo de programas. - Analizar y diseñar algoritmos eficientes para resolver problemas. - Aplicar técnicas de transformación de algoritmos recursivos. - Implementar los algoritmos desarrollados en un lenguaje de programación. - Documentar los programas. - Verificar formalmente algoritmos.
Actitudinales:
- Mostrar interés por el análisis y diseño de algoritmos. - Valorar la necesidad de documentar los programas. - Valorar el orden a seguir en la resolución de problemas. - Mostrar interés por el trabajo en grupo. - Presentar una buena predisposición ante el aprendizaje. - Mostrar responsabilidad en el trabajo y respeto hacia los demás. - Presentar interés por la búsqueda de información que ayude a la ampliación de sus conocimientos.
· Adquirir la capacidad necesaria para la resolución de problemas mediante el uso de diseño modular, descomposición de problemas y recursividad. · Adquirir los conocimientos básicos para el análisis de complejidad de algoritmos. · Dominar las técnicas de programación, permitiendo crear programas eficaces y eficientes y realizar pruebas del programa, garantizándose además la corrección de éste mediante el estudio de las técnicas de verificación formal. · Desarrollar programas siguiendo unas normas de estilo y directrices genéricas y generar la correspondiente documentación.
Teórico Tema 1 Diseño Modular. (5 horas) 1.1.-Visión genérica de la Ingeniería del Software. 1.2.-Concepto de módulo. 1.3.-Criterios de descomposición modular. 1.4.-Relación entre módulos. 1.5.-Reutilización de módulos. Ventajas de la modularización de algoritmos. 1.6.-Documentación. Tema 2 Introducción al Análisis de algoritmos. (8 horas) 2.1.-Introducción. 2.2.-Eficiencia de un algoritmo. Tiempo y espacio. 2.3.-¿Por qué hay que buscar la eficiencia? 2.4.-Estimación Objetiva. Análisis de complejidad. (Notación asintótica). 2.5.-Órdenes de magnitud en la complejidad de algoritmos. 2.6.-Aplicación: algoritmos de búsqueda y ordenación. Tema 3 Transformación de algoritmos recursivos. (6 horas) 3.1.-Diseño de algoritmos recursivos. 3.2.-Transformación sobre algoritmos recursivos. 3.3.-Técnicas de inmersión. Desplegado y Plegado. 3.4.-Transformación de algoritmos recursivos a iterativos. Tema 4 Prueba del software. (2 horas) 4.1.-Técnicas de prueba del software. 4.2.-Estrategias de prueba del software. Tema 5 Verificación formal de algoritmos. (9 horas) 5.1.-Introducción. 5.2.-Uso de pre y pos-condiciones y demostraciones elementales de corrección. 5.3.-Razonamientos sobre sentencias. 5.3.1.-Razonamientos sobre sentencias de asignación. 5.3.2.-Composición secuencial de instrucciones. 5.3.3.-Razonamiento sobre el esquema de selección. 5.3.4.-Razonamiento sobre bucles. 5.4.-Especificación de funciones. 5.5.-Verificación de funciones recursivas. Práctico Tema 1 Diseño modular. (8 horas) ·Definición y uso de módulos. ·Compilación separada. ·Desarrollo de proyectos. Tema 2 Análisis empírico de programas. (8 horas) ·Análisis empírico del tiempo de ejecución. ·Comparación del tiempo de ejecución de algunos algoritmos de ordenación. Tema 3 Transformación de algoritmos recursivos. (6 horas) Tema 4 Verificación formal. (8 horas)
En las clases teóricas se impartirán conceptos de diseño modular, eficiencia y verificación de algoritmos, mediante el desarrollo de algoritmos en pseudocódigo, que se verán reforzados y completados por el trabajo del alumno que mediante ejercicios propuestos intentará alcanzar las competencias cognitivas y procedimentales indicadas. Se proporcionará material a los alumnos, tanto resúmenes y transparencias, como temas elaborados. Las clases prácticas complementan las clases teóricas, en estas clases el alumno codificará algoritmos en un lenguaje de programación estructurado que sirva para poner en práctica los conocimientos adquiridos en teoría. Se le proporcionará unos guiones de prácticas con problemas que desarrollará a lo largo del curso de manera individual o en grupo. Todas estas clases se verán completadas con el trabajo personal y autónomo del alumno a través de las actividades propuestas, con lo que se deberá conseguir todas las competencias descritas con anterioridad. La asignatura dispone de aula virtual a través del campus virtual, donde se suministra todo el material que se usará tanto en las clases teóricas como prácticas y se informa a los alumnos de todo lo relacionado con la asignatura: objetivos que se pretenden cubrir, cómo se desarrollan las clases, normativa de entrega de prácticas y criterios de evaluación, así como mantenerles informados de todas las novedades o noticias que vayan surgiendo.
Nº de Horas (indicar total): 112,5
- Clases Teóricas: 21
- Clases Prácticas: 21
- Exposiciones y Seminarios: 4
- Tutorías Especializadas (presenciales o virtuales):
- Colectivas: 4
- Individules:
- Realización de Actividades Académicas Dirigidas:
- Con presencia del profesorado: 10
- Sin presencia del profesorado:
- Otro Trabajo Personal Autónomo:
- Horas de estudio: 31,5
- Preparación de Trabajo Personal: 17
- ...
- Realización de Exámenes:
- Examen escrito: 4
- Exámenes orales (control del Trabajo Personal):
|
||||||
Otros (especificar):
Resolución de problemas. |
Los exámenes, que serán escritos y calificables de 0 a 10, incluirán aspectos teórico-prácticos de la asignatura y consistirán en una serie de preguntas de respuesta corta y una serie de problemas a los que el alumno deberá aportar una solución fundamentada en el contenido teórico de la asignatura. Para aprobar la asignatura se requerirá la obtención de una calificación final superior o igual a 5. La nota final se obtendrá a partir de la fórmula Nota final = 0.95 * Nota_examen + 0.05 * Actividades donde: Nota_examen es la nota obtenida en el examen. Actividades es la nota de otras actividades académicas desarrolladas a lo largo del curso en las que se valorarán las capacidades actitudinales del alumno.
BIBLIOGRAFÍA RECOMENDADA PARA LOS CONTENIDOS TEÓRICOS [Aho88] Aho, A.; Hopcroft, J.; Ullman, J. Estructuras de datos y algoritmos. Ed. Addison-Wesley. 1988. [Bal93] Balcázar, J.L.; Programación Metódica; Ed. McGraw-Hill, 1993. [Bra97] Brassard G., Bratley P. ; Fundamentos de algoritmia; Prentice Hall, 1.997 [Cas93] Castro, J.; Cucker, F.; Messeguer, X.; Rubio, A.; Solano, L.; Valles, B.; Curso de Programación; Ed. McGraw-Hill, 1993. [Hur02] Hurtado Rodríguez, N.; Laguia Bonillo, M.; Silva Ramírez, E.L.; Introducción a la Programación; Ed. Servicio de Publicaciones, Universidad de Cádiz, 2002. [Knu87] Knuth, D. El arte de programar ordenadores. Ed. Reverté. 1987. [Peñ98] Peña Marí, R.; Diseño de Programas. Formalismos y Abstracción; Ed. Prentice Hall, 1998, 2ª Edición. [Pia96] Piattini, M.; Calvo-Manzano, J.A.; Cervera, J.; Fernández, L.; Análisis y diseño detallado de aplicaciones informáticas de gestión; Ed. RA-MA, 1996. [Pre95] Pressman, R.; Ingeniería del Software: Un enfoque práctico; Ed. McGraw Hill, 1995, 3ª Edición. [Sed89] Sedgewick, R.; Algorithms; Ed. Addison-Wesley, 1989, 2ª Edición. BIBLIOGRAFIA RECOMENDADA PARA LOS CONTENIDOS PRÁCTICOS [Abu98] Aburruzaga García, G.; Medina Bulo, I.; Palomo Lozano, F.; Por fin: C ISO; Ed. Servicio de Publicaciones, Universidad de Cádiz,1998. [Gar02] García, F.; Carretero, J.; Fernández, J.; Calderón, A.; El lenguaje de programación C; Ed. Prentice Hall, 2002. [Kel92] Kelly, A.; Pohl, I.; C by Dissection: The Essentials of C programming; Ed. Benjamin/Cummings, 1992, 2ª Edición. [Kel98] Kelly, A.; Pohl, I.; A book on C. Programming in C; Ed. Addison-Wesley, 1998, 4ª Edición. [Ker88] Kernighan, B. W.; Ritchie, D.M.; The C Programming Language; Ed. Prentice Hall, 1988, 2ª Edición. [Ker00] Kernighan, B. W.; Pike, R.; La práctica de la programación; Ed. Prentice Hall, 2000. [Ton89] Tondo, C.L.; Gimpel, S.E.; The C Answer Book; Ed. Prentice-Hall, 1989, 2ª Edición.
Pulse aquí si desea visionar el fichero referente al cronograma sobre el número de horas de los estudiantes.
El presente documento es propiedad de la Universidad de Cádiz y forma parte de su Sistema de Gestión de Calidad Docente.