Usted está aquí: Inicio web asignaturas

Fichas de asignaturas 2006-07


  CÓDIGO NOMBRE
Asignatura 1711007 METODOLOGÍA DE LA PROGRAMACIÓN
Titulación 1711 INGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS
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

 

Profesorado
Pedro Fernández Fernández
Elisa Guerrero Vázquez
Fernando Ortega Antolino
Esther Lydia Silva Ramírez (Coordinadora)
Objetivos
· 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.
Programa
Teoría

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áctica

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)
Metodología
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, para lo que se utilizará pizarra y transparencias. Se basarán
fundamentalmente en las explicaciones del profesor y se proporcionará material
a los alumnos, tanto resúmenes y transparencias, como temas elaborados.
Todas éstas explicaciones se apoyan en ejercicios que se resuelven en clase y
otros que se proponen para que sean trabajados y resueltos por los alumnos.

Las clases prácticas complementan las clases teóricas, en estas clases se
codificarán algoritmos en un lenguaje de programación estructurado que sirva
para poner en práctica los conocimientos adquiridos en teoría. Se les
proporcionará unos guiones de prácticas que se desarrollarán a lo largo del
curso.

La asignatura dispone de página web y 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.
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. 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
superior o igual a 5 en el examen.
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.