Usted está aquí: Inicio web asignaturas

 

Fichas de asignaturas 2009-10


METODOLOGÍA DE LA PROGRAMACIÓN

Asignaturas
 

  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

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
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.