Usted está aquí: Inicio web asignaturas

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

 

Profesorado
Pedro Fernández Fernández
Elisa Guerrero Vázquez
Nuria Hurtado Rodríguez
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 una gran componente teórica  y práctica. 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):

    -  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.
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
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)
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, 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.
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
Sesiones académicas teóricas:Si   Exposición y debate:No   Tutorías especializadas:Si  
Sesiones académicas Prácticas:Si   Visitas y excursiones:No   Controles de lecturas obligatorias:No  
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
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.
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.
Cronograma

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.