Datos Identificativos 2012/13
Asignatura (*) Tecnoloxía da Programación Código 614311202
Titulación
Enxeñerio Técnico en Informática de Sistemas
Descriptores Ciclo Período Curso Tipo Créditos
1º e 2º Ciclo 1º cuadrimestre
Segundo Troncal 6
Idioma
Castelán
Prerrequisitos
Departamento Computación
Coordinación
Fontenla Romero, Oscar
Correo electrónico
oscar.fontenla@udc.es
Profesorado
Fontenla Romero, Oscar
Correo electrónico
oscar.fontenla@udc.es
Web http://campusvirtual.udc.es/moodle
Descrición xeral A materia de Tecnoloxía da Programación atópase vinculada principalmente ás materias de Programación e Estrutura de Datos e da Información, de primeiro curso, e á materia de Metodoloxía da Programación de segundo curso.

Tendo o anterior en conta, presuponse que o alumno adquiriu os seguintes coñecementos:

- Coñecementos básicos da estrutura dun programa, tanto no seu deseño algorítmico, como na sua codificación. Isto inclúe conceptos como variables, tipos de datos, operador, estruturas de control, etc.
- Modulación e estructuración, tocando aspectos como procedementos e funcións, variables globais e locais, paso de parámetros por valor e por referencia, módulos e compilación separada, etc.
- Estruturas de datos estáticas e dinámicas, incluíndo arrays, rexistros, conxuntos e punteiros.
- Algoritmos básicos de clasificación e procura.
- Ficheiros: tipos, organización, métodos de acceso e operacións.
- Aproximación ao concepto de recursividad no seo dun algoritmo.
- Comprender o concepto de tipo abstracto de dato.
- Coñecer unha colección de tipos abstractos de datos paradigmáticos. O alumno disporá da capacidade para elixir e manipular distintas estruturas de datos.
- Adquirir a habilidade para identificar, deseñar e implementar os tipos abstractos de datos adecuados a unha aplicación concreta.

Coa vista posta no futuro profesional, os coñecementos adquiridos nesta materia xogarán
un papel relevante no desenvolvemento de aplicacións. O alumno será capaz de desenvolver unha aproximación disciplinada á especificación, implementación, verificación e proba de programas .

Competencias do título
Código Competencias da titulación

Resultados de aprendizaxe
Competencias de materia (Resultados de aprendizaxe) Competencias da titulación
1. Capacitar ao alumno para a resolución de problemas de forma eficiente A3
B2
B11
B12
2. Adquisición de bos hábitos á hora de programar A3
B2
B4
3. Capacidade de aplicar os coñecementos adquiridos á práctica A3
B2
B3
B9
B11
4. Capacidade de adaptarse a novas situacións A3
B1
B3
B9
B11
B12
5. Traballo en equipo A3
B5
B7
B8
B13

Contidos
Temas Subtemas
Bloque Temático I. Introdución --------------------------------------------------------------------------------------
1. Cálculo proposicional
1.1. Evaluación de proposicións
1.2. Proposicións como conxuntos de estados
1.3. Leis de equivalencia
2. Predicados 2.1. Extensión do rango de estado
2.2. Cuantificadores
2.3. Identificadores libres e ligados
2.4. Substitución textual
3. Arrays, notacion e simplificación de expresións 3.1. Arrays dunha dimensión
3.2. Simplificación de expresións
3.3. Arrays multidimensionales
Bloque Temático II. Cálculo de predicados --------------------------------------------------------------------------
4. Uso de aserciones na documentación de programas 4.1. Especificación de programas
4.2. Representación de valores iniciais e finais de variables
4.3. Esquemas de proba

5. O transformador de predicados wp 5.1. Definición do transformador de predicados
5.2. Propiedades do wp
5.3. Estratexia de demostración de corrección
6. A linguaxe GCL: Guarded Command Language 6.1. Os comandos skip, abort e composición
6.2. O comando asignación
6.3. A estrutura alternativa
6.4. A estrutura iterativa
6.5. Funcións e procedementos
Bloque Temático III. Verificación e desenvolvemento de programas -------------------------------------------------------------------------
7. Desenvolvemento de programas con estruturas alternativas 7.1 Principios básicos
7.2. Exemplos
8. Desenvolvemento de programas con estruturas repetitivas 8.1. Desenvolvendo primeiro o gardián
8.2. Progresando cara á finalización
9. Desenvolvemento de invariantes 9.1. A teoría do globo
9.2. Borrado dunha conxunción
9.3. Substitución dunha constante por unha variable
9.4. Agrandar o rango dunha variable
9.5. Combinar precondición e postcondición
10. Desenvolvemento de funcións cota 10.1. Utilización da notación do problema e a súa solución
10.2. Utilización da orde lexicográfico
Bloque Temático IV: Linguaxe Java e JML -----------------------------------------------------------------------
11. Introdución á linguaxe Java -
12. Introdución á linguaxe JML -

Planificación
Metodoloxías / probas Horas presenciais Horas non presenciais / traballo autónomo Horas totais
Lecturas 0 100 100
Solución de problemas 0 45 45
Proba obxectiva 3 0 3
 
Atención personalizada 2 0 2
 
*Os datos que aparecen na táboa de planificación son de carácter orientativo, considerando a heteroxeneidade do alumnado

Metodoloxías
Metodoloxías Descrición
Lecturas Lectura y estudio del material bibliográfico de la asignatura.
Solución de problemas Desarrollo personal de ejercicios de verificación formal de algoritmos.
Proba obxectiva Proba escrita utilizada para a avaliación da aprendizaxe.

Atención personalizada
Metodoloxías
Descrición
Para a súa realización é importante consultar co profesor os avances que se vaian realizando progresivamente para ofrecer as orientacións necesarias en cada caso e asegurar así a calidade dos traballos de acordo aos criterios que se indicarán.

Avaliación
Metodoloxías Descrición Cualificación
Proba obxectiva Exámen final que se cualificará cunha nota de 0 a 10. 100
 
Observacións avaliación

A los alumnos que tengan evaluada la práctica de programación de JAVA y JML, en los dos cursos académicos anteriores al actual, la prueba objetiva final supondrá el 90% de la nota final y la nota de dicha práctica el 10% restante. En el caso de no tener dicha práctica entregada, la prueba objetiva final se corresponderá con el 100% de la nota.


Fontes de información
Bibliografía básica Peña Marí, R. (2005). Diseño de programas: Formalismo y abstracción. Madrid. Prentice-Hall
Arnold, K.; Gosling, J.; Holmes, D. (2001). El lenguaje de programación Java. Madrid. Addison-Wesley
Arnow, D.; Weiss, G. (2000). Introducción a la programación en Java. Un enfoque orientado a objetos. Madrid. Addison-Wesley
Balcazar, J.L. (1993). Programación metódica. McGraw-Hill
(2007). The Java Modeling Language (JML). http://www.cs.iastate.edu/leavens/JML
Gries, D. (1981). The Science of Programming. Springer-Verlag

Bibliografía complementaria P. Naughton (1996). Manual de Java. Osborne McGraw-Hill
Backhouse, R.C. (1986). Program construction and verification. Prentice-Hall
Kaldewaij, A. (1990). Programming: The derivation of algorithms. Prentice-Hall
Apt, K.R., Olderog, E. (1997). Verification of sequential and concurrent programs. Springer-Verlag


Recomendacións
Materias que se recomenda ter cursado previamente

Materias que se recomenda cursar simultaneamente
Programación Orientada a Obxectos/614311636

Materias que continúan o temario
Estrutura de Datos e da Información/614311102
Matemática Discreta/614311107
Programación/614311109

Observacións


(*)A Guía docente é o documento onde se visualiza a proposta académica da UDC. Este documento é público e non se pode modificar, salvo casos excepcionais baixo a revisión do órgano competente dacordo coa normativa vixente que establece o proceso de elaboración de guías