Fichas de asignaturas 2009-10
![]() |
METODOLOGÍA DE LA PROGRAMACIÓN |
![]() ![]() |
|
Asignatura |
![]() |
| |
Profesorado |
![]() |
| |
Situación |
![]() |
| |
Competencias |
![]() |
| |
Objetivos |
![]() |
| |
Programa |
![]() |
| |
Actividades |
![]() |
| |
Metodología |
![]() |
| |
Distribucion |
![]() |
| |
Técnicas Docentes |
![]() |
| |
Evaluación |
![]() |
| |
Recursos Bibliográficos |
![]() |
Código | Nombre | |||
Asignatura | 1710007 | METODOLOGÍA DE LA PROGRAMACIÓN | Créditos Teóricos | 3 |
Descriptor | PROGRAMMING METHODOLOGY | Créditos Prácticos | 3 | |
Titulación | 1710 | INGENIERÍA TÉCNICA EN INFORMÁTICA DE GESTIÓN | Tipo | Troncal |
Departamento | C137 | LENGUAJES Y SISTEMAS INFORMATICOS | ||
Curso | 1 | |||
Duración (A: Anual, 1Q/2Q) | 2Q | |||
Créditos ECTS | 4,5 |
Para el curso | Créditos superados frente a presentados | Créditos superados frente a matriculados |
2007-08 | 53.4% | 23.5% |
Pulse aquí si desea visionar el fichero referente al cronograma sobre el número de horas de los estudiantes.
Profesorado
Miguel Ángel Bolívar Pérez Elisa Guerrero Vázquez Nuria Hurtado Rodríguez Daniel Molina Cabrera Bernardo Miguel Nuñez Moraleda Esther Lydia Silva Ramírez (Coordinadora)
Situación
Prerrequisitos
Sería conveniente que el alumno tuviese los conocimientos de la asignatura de Introducción a la Programación.
Contexto dentro de la titulación
Asignatura troncal de primer curso de Ingeniería Técnica en Informática de Gestión con un gran componente teórico y práctico. Los contenidos complementan los conocimientos adquiridos en la asignatura de Introducción a la Programación de primer cuatrimestre de primer curso y los prepara para el aprendizaje de la asignatura Análisis de Algoritmos, de segundo curso. A la vez que se relaciona con los contenidos de la asignatura de primer curso Estructura de Datos.
Recomendaciones
Sería deseable que el alumno tuviese buena predisposición ante el aprendizaje. De la misma manera que sería aconsejable que dispusiera de un ordenador personal que le permitiera complementar el estudio teórico-práctico de la asignatura, así como realizar el resto de actividades a realizar.
Competencias
Competencias transversales/genéricas
- 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.
Competencias específicas
Cognitivas(Saber):
- Conocer todos los aspectos relacionados con la descomposición de problemas y el diseño modular. - Conocer los fundamentos del análisis de complejidad de algoritmos. - Conocer el concepto de recursividad y sus tipos, así como la transformación sobre algoritmos recursivos. - Conocer los métodos de transformación de algoritmos recursivos. - Conocer las técnicas y estrategias de prueba del software. - Conocer las técnicas de verificación formal de algoritmos. - Conocer los tipos de documentación de programas.
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:
- Ser consciente de la necesidad de realizar el análisis y diseño de algoritmos. - Valorar la importancia de documentar los programas. - Valorar el orden a seguir en la resolución de problemas. - Apreciar las ventajas del trabajo en grupo. - Presentar una buena predisposición ante el aprendizaje. - Valorar la importancia de la responsabilidad en el trabajo y respeto hacia los demás. - Estar dispuesto a la búsqueda de información que ayude a la ampliación de sus conocimientos.
Objetivos
Adquirir las competencias específicas reseñadas.
Programa
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 Diseño y transformación de algoritmos recursivos. (6 horas)
Actividades
Resolución de problemas con los que se persigue la consecución de las competencias reseñadas.
Metodología
En las clases teóricas se impartirán conceptos de diseño modular, eficiencia y verificación de algoritmos, y se estudiarán las técnicas de transformación de algoritmos recursivos, 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 complementarán 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 genéricas y específicas descritas con anterioridad. La asignatura dispone de aula virtual a través del campus virtual, donde se suministrará todo el material que se usará tanto en las clases teóricas como prácticas y se informará a los alumnos de todo lo relacionado con la asignatura: objetivos que se pretenden cubrir, cómo se desarrollarán 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.
Distribución de horas de trabajo del alumno/a
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):
Técnicas Docentes
|
||||||
Otros (especificar):
Resolución de problemas. |
Criterios y Sistemas de Evaluación
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. Si la nota del examen es igual o superior a 4 puntos, los alumnos que asistan regularmente a clase tendrán la posibilidad de obtener un máximo de 2 puntos adicionales a la nota del examen, mediante la realización de una serie de actividades teóricas y prácticas a desarrollar a lo largo del curso y según la ponderación siguiente: Actividades = 50% nota actividades teóricas + 50% nota actividades prácticas. En este caso la calificación final constará de la nota del examen más la nota de las actividades realizadas, teniendo en cuenta que un alumno no podrá obtener más de 10 puntos como calificación final. Nota actividades teóricas: Las actividades teóricas serán evaluadas mediante la realización de una serie de tests de contenidos teóricos. Para que sea tenida en cuenta la calificación obtenida en dichos tests, es imprescindible la asistencia regular a clase de teoría y contestar correctamente a un mínimo de un 65% de todas las cuestiones planteadas. Nota actividades prácticas: Las actividades prácticas serán evaluadas mediante la realización de cuestiones y problemas prácticos. Para que sea tenida en cuenta la calificación obtenida en dichos ejercicios, es necesaria la asistencia regular a clases prácticas y hacer entrega de al menos el 90% del total de los ejercicios y problemas requeridos. Estos ejercicios y problemas prácticos serán resueltos de manera individual o colectiva, según se indique en cada clase.
Recursos Bibliográficos
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.
El presente documento es propiedad de la Universidad de Cádiz y forma parte de su Sistema de Gestión de Calidad Docente. En aplicación de la Ley 3/2007, de 22 de marzo, para la igualdad efectiva de mujeres y hombres, así como la Ley 12/2007, de 26 de noviembre, para la promoción de la igualdad de género en Andalucía, toda alusión a personas o colectivos incluida en este documento estará haciendo referencia al género gramatical neutro, incluyendo por lo tanto la posibilidad de referirse tanto a mujeres como a hombres.