Datos Identificativos 2016/17
Asignatura (*) Programación Orientada a Objectos Código 614111636
Titulación
Enxeñeiro en Informática
Descriptores Ciclo Periodo Curso Tipo Créditos
1º y 2º Ciclo 1º cuatrimestre
Todos Optativa 4
Idioma
Castellano
Modalidad docente Presencial
Prerrequisitos
Departamento Computación
Coordinador/a
Alonso Ríos, David
Correo electrónico
david.alonso@udc.es
Profesorado
Alonso Ríos, David
Correo electrónico
david.alonso@udc.es
Web
Descripción general A programación orientada a obxectos (POO) é, hoxe en día, a paradigma de programación dominante no desenvolvemento de sistemas informáticos. A POO xorde como un paso máis na evolución da programación imperativa engadindo novas propiedades (como herdanza, polimorfismo, etc.) aos tipos abstractos de datos. O carácter optativo da materia pode levar a engano xa que a relativa antigüidade dos plans de estudo (1994) e das troncalidades (1991) non recollen correctamente a situación actual no ámbito da programación (Java só ten pouco máis de 10 anos de antigüidade).

A filosofía de aprendizaxe marcada no plan de estudos configúrase como "Imperativo primeiro", é dicir, primeiro explícanse as linguaxes imperativas para dar paso máis adiante á programación orientada a obxectos. Desta forma a aprendizaxe da programación faise máis gradual, aínda que o paso aos conceptos da orientación a obxectos obriga a un cambio de filosofía na forma de programar cuxa adaptación pode resultar complexa ao alumno.

As competencias académicas que se pretenden desenvolver son importantes para cursar outras materias ligadas directa ou indirectamente coa programación. Entre as máis directamente relacionadas podemos destacar: (II, ITIG e ITIS) Proxecto fin de Carreira, (II) Análise de Sistemas Informáticos, Deseño de Sistemas Informáticos, Integración de Sistemas, Análises e Deseño Orientado a Obxectos, e (ITIG) Principios de Análise Informática.

Esta materia tamén resulta moi interesante á hora de configurar habilidades no contexto do ámbito profesional xa que a paradigma da orientación a obxectos é o dominante dentro das linguaxes de programación máis utilizados profesionalmente (Java, C#, C++, VisualBasic, Delphi, etc.).

Competencias del título
Código Competencias del título
A1 Aprender de manera autónoma nuevos conocimientos y técnicas avanzadas adecuadas para la investigación, el diseño y el desarrollo de sistemas y servicios informáticos.
A3 Concebir y planificar el desarrollo de aplicaciones informáticas complejas o con requisitos especiales.
A6 Evaluar, definir, seleccionar y auditar plataformas hardware y software para la ejecución y desarrollo de aplicaciones y servicios informáticos.
A7 Saber especificar, diseñar e implementar un sistema de información, empleando bases de datos.
B1 Aprender a aprender.
B2 Resolver problemas de forma efectiva.
B3 Aplicar un pensamiento crítico, lógico y creativo.
B4 Aprendizaje autónomo.
B5 Trabajar de forma colaborativa.
B6 Comportarse con ética y responsabilidad social como ciudadano y como profesional.
B7 Comunicarse de manera efectiva en cualquier entorno de trabajo.
B9 Capacidad para tomar decisiones.
B10 Capacidad de gestión de la informática (captación y análisis de la información).
B12 Capacidad para el análisis y la síntesis.
B15 Motivación por la calidad.
C3 Utilizar las herramientas básicas de las tecnologías de la información y las comunicaciones (TIC) necesarias para el ejercicio de su profesión y para el aprendizaje a lo largo de su vida.
C4 Desarrollarse para el ejercicio de una ciudadanía abierta, culta, crítica, comprometida, democrática y solidaria, capaz de analizar la realidad, diagnosticar problemas, formular e implantar soluciones basadas en el conocimiento y orientadas al bien común.
C6 Valorar críticamente el conocimiento, la tecnología y la información disponible para resolver los problemas con los que deben enfrentarse.

Resultados de aprendizaje
Resultados de aprendizaje Competencias del título
Coñecer as diferenzas entre a paradigma de programación imperativa tradicional e a paradigma da orientación a obxectos. A1
B1
C3
Comprender os conceptos básicos nos que se basea a orientación a obxectos: clases, obxectos, mensaxes, etc. A1
B1
B2
B4
C3
Analizar, comprender e relacionar as propiedades básicas propias da orientación a obxectos: herdanza, polimorfismo, ligadura dinámica, etc. A1
B1
B2
B3
B4
C3
Coñecer os aspectos básicos do deseño UML, sobre todo o que involucra o deseño estático (diagrama de clases) e dinámico (diagrama de secuencia) dun programa orientado a obxectos. A1
A3
B1
B2
B3
B4
C3
Coñecer, comprender e identificar os principios e patróns de deseño básicos para lograr un programa orientado a obxectos flexible e reusable. A1
A3
B1
B2
B3
B4
C3
Construír clases básicas que representen obxectos do dominio e que encapsulen o estado e o comportamento dos devanditos obxectos. A1
B2
B3
B4
B9
B10
B12
C3
Desenvolver e organizar clases sacando proveito das propiedades propias da orientación a obxectos para desenvolver código flexible e reusable. A1
A3
B2
B3
B4
B9
B10
B12
C3
Deseñar un programa orientado a obxectos utilizando o estándar UML e desenvolver posteriormente o código resultante do devandito deseño. A1
A3
A7
B2
B3
B4
B5
B9
B10
B12
C3
Deseñar un programa utilizando principios e patróns de deseño garantindo así que as propiedades propias da orientación a obxectos utilízanse adecuadamente. A1
A3
B2
B3
B4
B5
B9
B10
B12
C3
Usar a programación orientada a obxectos para resolver problemas reais. A1
B2
B3
B4
B9
B10
B12
C3
C6
Manexar con solvencia unha contorna integrada de desenvolvemento (IDE) na programación. A1
A6
B2
B3
B4
C3
Asumir a responsabilidade do traballo e as accións propias. B5
B6
C4
Valorar e respectar o traballo propio e o alleo. B5
B6
C4
Colaborar cos compañeiros para levar a cabo unha práctica en grupo. B5
B7
C4
Valorar a importancia da análise e o deseño no desenvolvemento de programas orientados a obxectos. B10
B15
C3
C6
Preferir as boas prácticas de programación orientada a obxectos sobre os antipatrones (malas prácticas) propias dos principiantes ou dos malos programadores. B15
C6

Contenidos
Tema Subtema
EXAMEN DE TEORÍA TEMARIO DE LOS ÚLTIMOS AÑOS DE LA ASIGNATURA (resumido a continuación). Para más información consultar el Moodle o hablar con el profesor.
Introducción Paradigmas de la programación
Programación orientada a objetos
El lenguaje Java
Modelado visual de objetos: UML Introducción
Elementos básicos del UML
Diseño estático: diagrama de clases
Diseño dinámico: diagrama de secuencia
Elementos básicos de la orientación a objetos Clases
Objetos
Propiedades básicas de la orientación a objetos Abstracción
Encapsulamiento
Modularidad
Jerarquía
Polimorfismo
Tipificación
Ligadura dinámica
Patrones de diseño Introducción
Patrones creacionales: inmutable, singleton
Patrones de comportamiento: estrategia, estado, iterador, observador, método plantilla
Patrones estructurales: composición, adaptador
Principios de diseño Principio abierto-cerrado
Principio de sustitución de Liskov
Diseño por contrato y principio de subcontratación
Principio de inversión de la dependencia
Principios de diseño y herencia
Herramientas NetBeans
JUnit
EXAMEN DE PRÁCTICAS TEMARIO: SELECCIÓN DE CONCEPTOS CLAVE DE POO RELACIONADOS CON LA APLICACIÓN PRÁCTICA DEL TEMARIO DE TEORÍA Y CON LOS EJERCICIOS PRÁCTICOS PLANTEADOS EN LOS ÚLTIMOS AÑOS DE LA ASIGNATURA. Para más información consultar el Moodle o hablar con el profesor.

Planificación
Metodologías / pruebas Competéncias Horas presenciales Horas no presenciales / trabajo autónomo Horas totales
Prueba objetiva A1 A3 A6 A7 B1 B2 B3 B4 B5 B6 B7 B9 B10 B12 B15 C3 C4 C6 5 90 95
 
Atención personalizada 5 0 5
 
(*)Los datos que aparecen en la tabla de planificación són de carácter orientativo, considerando la heterogeneidad de los alumnos

Metodologías
Metodologías Descripción
Prueba objetiva Examen escrito, dividido en:
- Examen de teoría.
- Examen de prácticas.

Observaciones: En proceso de extinción no hay ningún tipo de evaluación continua. No se recogerán ejercicios prácticos, sólo habrá exámenes.
Para más información consultar el Moodle o hablar con el profesor.

Atención personalizada
Metodologías
Prueba objetiva
Descripción
Resolución de dudas.

Evaluación
Metodologías Competéncias Descripción Calificación
Prueba objetiva A1 A3 A6 A7 B1 B2 B3 B4 B5 B6 B7 B9 B10 B12 B15 C3 C4 C6 Examen de teoría:
- Calificación mínima exigida: 4 de 10.
- 60% de la calificación global.

Examen de prácticas:
- Prueba escrita de la parte de práctica.
- Calificación mínima exigida: 4 de 10.
- 40% de la calificación global.
100
 
Observaciones evaluación

Calificación en actas:

- Aprobado o superior: Calificación final mayor o igual que 5 y cumplir todos los requisitos exigidos para superar la materia.

- Suspenso: Calificación final menor que 5 o calificación final mayor o igual que 5 y no cumplir todos los requisitos exigidos para superar la materia. En el segundo caso, la calificación en actas será 4,5.

- No Presentado: Equivale a no presentado a ambos exámenes finales (teoría y prácticas).

Para más información consultar el Moodle o hablar con el profesor.


Fuentes de información
Básica
  • Eckel, B.. Piensa en Java. Prentice-Hall, Madrid. 4ª Edición. 2007. Signatura FIC: D32 (Jav) ECK.

  • Sierra, K., Bates, B. Head First Java, O’Reilly, Sebastopol, CA, 2nd Edition, 2005.

  • Cohoon, J., Davidson, J., Programación en Java 5.0, McGraw-Hill, Madrid, 2006.

  • Booch, G., Rumbaugh, J. y Jacobson. El lenguaje unificado de modelado, 2ª Ed.. Addison-Wesley, Madrid. 2006. Signatura FIC: D22 BOO.

  • Gamma, E. et al. Design patterns: elements of reusable object oriented software. Reading, MA. Addison-Wesley. 1995. FIC: D211 DES - D123 PAT (español).

Complementária
  • McLaughlin, B., Flanagan, D., Java 1.5 Tiger: A Developer’s Notebook, O’Reilly, Sebastopol, CA, 2004.

  • Martin, R.C. UML para programadores Java, Pearson, Madrid, 2004.

  • Rumbaugh, J., Jacobson, I., Booch, G., El lenguaje unificado de modelado: Manual de referencia, Addison-Wesley Iberoamericana, Madrid, 2000.

  • Budd, T.. An introduction to object-oriented programming. Pearson. 3Edición. 2002. Signatura FIC: D15 BUD.

  • Knoernschild, K.. Java desing: objects, UML and process. Addison-Wesley, Boston, MA. 2002. Signatura FIC: D32 (Jav) KNO.

Recursos web

El principal recurso web de la asignatura es la página de la misma existente en la facultad virtual de la UDC. En dicha página se encontrará toda la información necesaria para el desarrollo de la asignatura (transparencias, boletines de ejercicios, prácticas, tests, preguntas frecuentes, links en Internet, etc.). El acceso a dicha página está limitado a los alumnos matriculados en la asignatura.

Para información general sobre Java se recomienda acudir a la página web oficial del lenguaje (http://java.sun.com) en donde podremos acceder a noticias, documentación, descarga del herramientas, etc.

Para estar al día sobre las novedades del lenguaje se recomienda acceder a páginas de noticias como por ejemplo JavaHispano (http://javahispano.org).

Otros materiales de apoyo

La biblioteca de la Facultad dispone de varias revistas científicas que están a disposición del alumno, y que revisten interés para la profundización en algún aspecto particular del temario, o para disponer de actualizaciones (estados del arte) de alguna de las técnicas y metodologías expuestas en clase. Algunas de las más utilizadas en la asignatura de POO son:

  • Communications of the ACM

  • Journal of Object Oriented Programming (ya no se publica pero hay números antiguos)

  • IEEE Transactions on Knowledge and Data Engineering

  • Data and Knowledge Enginnering

  • ACM transactions on programming languages and systems

  • Lecture Notes in Computer Science (aquellos volúmenes que hacen referencia a congresos sobre objetos como ECOOP – European Conference on Object Oriented Programming).


Recomendaciones
Asignaturas que se recomienda haber cursado previamente
Estructura de Datos y de la Información/614111102
Programación/614111109

Asignaturas que se recomienda cursar simultáneamente
Metodología de la Programación/614111205

Asignaturas que continúan el temario
Análisis de Sistemas Informáticos/614111402
Diseño de Sistemas de Información/614111403
Integración de Sistemas/614111503
Proyecto Fin de Carrera/614111505
Análisis y Diseño Orientado a Objectos/614111602

Otros comentarios


(*) La Guía Docente es el documento donde se visualiza la propuesta académica de la UDC. Este documento es público y no se puede modificar, salvo cosas excepcionales bajo la revisión del órgano competente de acuerdo a la normativa vigente que establece el proceso de elaboración de guías