Fichas de asignaturas 2008-09
CÓDIGO | NOMBRE | |
Asignatura | 1710007 | METODOLOGÍA DE LA PROGRAMACIÓN |
Descriptor | METHODOLOGY OF PROGRAMMING | |
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 |
Para el curso | 2007-08: | Créditos superados frente a presentados | 53.4% | Créditos superados frente a matriculados | 23.5% |
- 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 Prueba del software. (2 horas) 2.1.-Técnicas de prueba del software. 2.2.-Estrategias de prueba del software. Tema 3 Verificación formal de algoritmos. (9 horas) 3.1.-Introducción. 3.2.-Uso de pre y pos-condiciones y demostraciones elementales de corrección. 3.3.-Razonamientos sobre sentencias. 3.3.1.-Razonamientos sobre sentencias de asignación. 3.3.2.-Composición secuencial de instrucciones. 3.3.3.-Razonamiento sobre el esquema de selección. 3.3.4.-Razonamiento sobre bucles. 3.4.-Especificación de funciones. 3.5.-Verificación de funciones recursivas. Tema 4 Introducción al Análisis de algoritmos. (8 horas) 4.1.-Introducción. 4.2.-Eficiencia de un algoritmo. Tiempo y espacio. 4.3.-¿Por qué hay que buscar la eficiencia? 4.4.-Estimación Objetiva. Análisis de complejidad. (Notación asintótica). 4.5.-Órdenes de magnitud en la complejidad de algoritmos. 4.6.-Aplicación: algoritmos de búsqueda y ordenación. Tema 5 Transformación de algoritmos recursivos. (6 horas) 5.1.-Diseño de algoritmos recursivos. 5.2.-Transformación sobre algoritmos recursivos. 5.3.-Técnicas de inmersión. Desplegado y Plegado. 5.4.-Transformación de algoritmos recursivos a iterativos. Práctico Tema 1 Diseño modular. (8 horas) ·Definición y uso de módulos. ·Compilación separada. ·Desarrollo de proyectos. Tema 2 Verificación formal. (8 horas) Tema 3 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 4 Transformación de algoritmos recursivos. (6 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 resolverá problemas y 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 cuestiones y 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.80 * Nota_examen + 0.20 * 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 conceptuales, procedimentales y actitudinales del alumno. El 20% correspondiente a distintas actividades podrá ser obtenido por aquellos alumnos que asistan regularmente a clase y lleven a cabo todas las tareas que se indiquen en cada clase. La fórmula para las actividades es la siguiente: Actividades = 50% teoría + 50% prácticas. La mitad podrá ser obtenida asistiendo a clases teóricas regularmente y realizando tests de evaluación que se realizarán a lo largo del curso. Estos tests estarán disponibles a través del campus virtual y será necesario contestar correctamente al 85% de las cuestiones planteadas para su superación. La otra mitad de las actividades corresponden a cuestiones y problemas prácticos, a través de la asistencia regular a clases prácticas y haciendo entrega de ejercicios en cada clase. Para registrar todas las tareas realizadas durante la clase, anotar sus reflexiones y depositar los entregables existirá un portafolios virtual que el alumno mantendrá actualizado y a disposición del profesor en cualquier momento. Estos ejercicios y problemas prácticos serán resueltos de manera individual o colectiva, según se indique en cada clase. Para la superación de estas actividades es necesario que se haga entrega del 90% del material exigible tanto en teoría como en prácticas.
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.