La asignatura pertenece al módulo "Informática" y aparece en el segundo semestre del segundo curso. Dentro de dicho bloque, es la continuación natural de la asignatura "Programación Orientada a Objetos". Se presupone a los estudiantes cierta familiaridad con nociones básicas sobre programación orientada a objetos (clase, objeto, herencia, etc.) y en concreto con el lenguaje de programación Java.
Dentro del módulo "Informática", la asignatura pretende dotar a los estudiantes de las competencias necesarias para ser capaces de diseñar e implementar aplicaciones desde el paradigma orientado a objetos, viendo los elementos esenciales de la orientación a objetos como herramientas necesarias para dicho diseño. Además, el otro punto esencial de la asignatura es aportar una perspectiva formal (mayor nivel de abstracción) sobre diferentes aspectos relacionados con la programación (sintaxis, semántica, corrección y eficiencia), buscando una mejora en los hábitos del estudiante a la hora de programar, que mejore la calidad y fiabilidad de su trabajo.
Las prácticas de laboratorio de la asignatura consisten en el diseño y desarrollo en el lenguaje de programación Java de los sistemas de clases necesarios para la construcción de pequeñas aplicaciones. Se pretende que, a lo largo de la asignatura, aparezcan involucrados en las prácticas los elementos centrales de la programación orientada a objetos, vistos aquí como elementos necesarios para el diseño. También se realizan algunos ejercicios de verificación formal de pequeños programas escritos en Java.
COMPETENCIAS
COMPETENCIAS GENERALES:
CG6: Relacionar el conocimiento especializado de Matemáticas con el conocimiento general en el que se inserta y con las herramientas que utiliza cuando se aplica en diversas opciones profesionales, especialmente en el marco de las TIC.
CG7: Saber abstraer las propiedades estructurales de objetos de la realidad observada y de otros ámbitos, distinguiéndolas de aquellas puramente ocasionales, comprobando la aplicabilidad de las Matemáticas.
CG8: Capacitar para el aprendizaje autónomo de nuevos conocimientos y técnicas.
COMPETENCIAS ESPECÍFICAS:
CE4: Encontrar soluciones algorítmicas de problemas matemáticos y de aplicación (de ámbito académico, técnico, financiero o social), sabiendo comparar distintas alternativas, según criterios de adecuación, complejidad y coste.
CE5: Saber programar algoritmos de modo correcto y eficaz, eligiendo convenientemente lenguajes y plataformas de programación.
TEMARIO
Introducción: Abstracción y formalismo en Programación.
Especificación e implementación de tipos de datos.
Tipos abstractos y orientación a objetos. Nociones sobre eficiencia.
Especificación formal de algoritmos.
Sintaxis y semántica de un lenguaje imperativo sencillo.
Verificación formal de la corrección de algoritmos.