Programación Orientada a Objetos -...

24
Programación Orientada a Objetos Curso 2015/2016 Javier Bermúdez Ruiz Marcos Menárguez Tortosa Begoña Moros Valle http://dis.um.es/docencia/poo

Transcript of Programación Orientada a Objetos -...

Page 1: Programación Orientada a Objetos - dis.um.esdis.um.es/docencia/poo/wiki/lib/exe/fetch.php?media=curso2015:... · Objetivos del Programa de Teoría • Describir los conceptos que

Programación Orientada a ObjetosCurso 2015/2016

Javier Bermúdez Ruiz

Marcos Menárguez Tortosa

Begoña Moros Valle

http://dis.um.es/docencia/poo

Page 2: Programación Orientada a Objetos - dis.um.esdis.um.es/docencia/poo/wiki/lib/exe/fetch.php?media=curso2015:... · Objetivos del Programa de Teoría • Describir los conceptos que

Contenido de la presentación

• Programa de teoría.

• Programa de prácticas.

• Evaluación.

• Horarios.

• Introducción.

Page 3: Programación Orientada a Objetos - dis.um.esdis.um.es/docencia/poo/wiki/lib/exe/fetch.php?media=curso2015:... · Objetivos del Programa de Teoría • Describir los conceptos que

Objetivos delPrograma de Teoría

• Describir los conceptos que caracterizan el modelo orientado a objetos (OO).

• Valorar en qué medida las técnicas OO favorecen la calidad del software.

• Estudiar cómo Java refleja los conceptos del paradigma OO.

Page 4: Programación Orientada a Objetos - dis.um.esdis.um.es/docencia/poo/wiki/lib/exe/fetch.php?media=curso2015:... · Objetivos del Programa de Teoría • Describir los conceptos que

Metodología

• Desarrollo de los temas del programa junto con resolución de ejercicios.

• Aprendizaje basado en problemas/proyectos.

• Evaluación final mediante un examen teórico.

Page 5: Programación Orientada a Objetos - dis.um.esdis.um.es/docencia/poo/wiki/lib/exe/fetch.php?media=curso2015:... · Objetivos del Programa de Teoría • Describir los conceptos que

Programa de Teoría

• Tema 1: Introducción al paradigma orientado a objetos.

• Tema 2: Clases y Objetos

• Tema 3: Herencia

• Tema 4: Genericidad, colecciones y patrones de diseño

• Tema 5: Corrección y Robustez. Excepciones en Java

• Tema 6: Características avanzadas de Java.

Page 6: Programación Orientada a Objetos - dis.um.esdis.um.es/docencia/poo/wiki/lib/exe/fetch.php?media=curso2015:... · Objetivos del Programa de Teoría • Describir los conceptos que

Bibliografía básica

Core Java 2. Vol I. Fundamentos. Cay S. Horstmann, Gary Cornell

Page 7: Programación Orientada a Objetos - dis.um.esdis.um.es/docencia/poo/wiki/lib/exe/fetch.php?media=curso2015:... · Objetivos del Programa de Teoría • Describir los conceptos que

Objetivos delPrograma de Prácticas

• Aprender el lenguaje de programación Java

• Practicar los conceptos OO en Java en el desarrollo de un proyecto de programación

• Manejar un entorno de programación Java: Eclipse

Page 8: Programación Orientada a Objetos - dis.um.esdis.um.es/docencia/poo/wiki/lib/exe/fetch.php?media=curso2015:... · Objetivos del Programa de Teoría • Describir los conceptos que

Metodología• Proyecto de programación: Videojuego

– Organizado en etapas a medida que se van

introduciendo los contenidos teóricos.

– Guía del trabajo en el laboratorio y parte del trabajo

supervisada.

– Trabajo autónomo fuera del laboratorio.

– Dos entregables: 9 de noviembre y 14 de diciembre.

• Evaluación final:

• Examen práctico de problemas en el laboratorio

• Evaluación del proyecto de programación. Defensa del trabajo a criterio del profesor.

Page 9: Programación Orientada a Objetos - dis.um.esdis.um.es/docencia/poo/wiki/lib/exe/fetch.php?media=curso2015:... · Objetivos del Programa de Teoría • Describir los conceptos que

Evaluación de la asignatura• Peso de los contenidos de la asignatura:

– 30% - Examen de teoría

– 35% - Examen práctico de problemas (en laboratorio)

– 35% - Proyecto de programación

• Se debe superar cada una de las partes.

• El examen práctico sólo se podrá realizar si se aprueba el proyecto de programación.

• El aprobado de algún examen o las prácticas sólo se guardará durante EL CURSO ACADÉMICO.

Page 10: Programación Orientada a Objetos - dis.um.esdis.um.es/docencia/poo/wiki/lib/exe/fetch.php?media=curso2015:... · Objetivos del Programa de Teoría • Describir los conceptos que

Exámenes

• Exámenes oficiales en cada convocatoria :

– 15 de enero de 2016 (Mañana)

– 25 de mayo de 2016 (Mañana)

– 04 de julio de 2016 (Tarde)

• Los exámenes de teoría y prácticas se hacen el mismo día y en el mismo turno.

Page 11: Programación Orientada a Objetos - dis.um.esdis.um.es/docencia/poo/wiki/lib/exe/fetch.php?media=curso2015:... · Objetivos del Programa de Teoría • Describir los conceptos que

Horario de la asignatura

• Teoría:– Grupo 1: Lunes 9:25-11:25 (Aula A.03)

– Grupo 2: Lunes 11:35 – 13:35 (Aula A.04)

– Grupo 3: Martes 15:30 – 17:30 (Aula A.03)

• Prácticas:– Martes, Miércoles y Jueves.

Page 12: Programación Orientada a Objetos - dis.um.esdis.um.es/docencia/poo/wiki/lib/exe/fetch.php?media=curso2015:... · Objetivos del Programa de Teoría • Describir los conceptos que

Profesorado

• Javier Bermúdez Ruiz

– Prácticas G2.1, G2.2 y G2.3

– Facultad de Informática (2ª planta): 2.30

– Tutorías: consultar la guía docente

– Tutoría electrónica a través de Aula Virtual.

Page 13: Programación Orientada a Objetos - dis.um.esdis.um.es/docencia/poo/wiki/lib/exe/fetch.php?media=curso2015:... · Objetivos del Programa de Teoría • Describir los conceptos que

Profesorado

• Marcos Menárguez Tortosa

– Teoría G2

– Prácticas G3.1 y G3.2

– Facultad de Informática (2ª planta): 2.33

– Tutorías: consultar guía docente

– Tutoría electrónica a través de correo electrónico ([email protected])

Page 14: Programación Orientada a Objetos - dis.um.esdis.um.es/docencia/poo/wiki/lib/exe/fetch.php?media=curso2015:... · Objetivos del Programa de Teoría • Describir los conceptos que

Profesorado

• Begoña Moros Valle

– Teoría de los grupos G1 y G3

– Prácticas del grupo G1 y G3.3

– Facultad de Informática (2ª planta): 2.37

– Tutorías: consultar guía docente

– Tutoría electrónica a través de Aula Virtual.

Page 15: Programación Orientada a Objetos - dis.um.esdis.um.es/docencia/poo/wiki/lib/exe/fetch.php?media=curso2015:... · Objetivos del Programa de Teoría • Describir los conceptos que

Introducción

Page 16: Programación Orientada a Objetos - dis.um.esdis.um.es/docencia/poo/wiki/lib/exe/fetch.php?media=curso2015:... · Objetivos del Programa de Teoría • Describir los conceptos que

Lenguajes OO – Años 80

� Popularidad de los lenguajes OO.

� C++ (1985):

• Extensión de C con características OO.

• Muy popular, ayudó a difundir la POO.

� Eiffel (1985):

• Bertrand Meyer

• Lenguaje orientado a objetos puro.

• Fruto de un profundo estudio del paradigma OO.

• Lenguaje “teórico” poco utilizado.

Page 17: Programación Orientada a Objetos - dis.um.esdis.um.es/docencia/poo/wiki/lib/exe/fetch.php?media=curso2015:... · Objetivos del Programa de Teoría • Describir los conceptos que

Lenguajes OO – Años 90

� Java (1995):

• Sun Microsystems � Oracle

• Lenguaje OO puro.

• Se popularizó por su uso en la web.

• Actualmente soporta una extensa plataforma de desarrollo de software (numerosas bibliotecas de código).

� C# (2000):

• Combina C++ y Java.

• Integrado en la plataforma .NET de Microsoft.

Page 18: Programación Orientada a Objetos - dis.um.esdis.um.es/docencia/poo/wiki/lib/exe/fetch.php?media=curso2015:... · Objetivos del Programa de Teoría • Describir los conceptos que

Tecnología Java

� https://www.java.com/es/about/– En empresas, el 97% de los ordenadores de

escritorio ejecutan Java

– En el ámbito doméstico, el 89% de los ordenadores

personales en Estados Unidos ejecutan Java

– 9 millones de desarrolladores de Java en todo el

mundo

– 3.000 millones de teléfonos móviles ejecutan Java

– Todos los reproductores de Blu-ray incluyen Java

– 125 millones de dispositivos de televisión ejecutan

Java

Page 19: Programación Orientada a Objetos - dis.um.esdis.um.es/docencia/poo/wiki/lib/exe/fetch.php?media=curso2015:... · Objetivos del Programa de Teoría • Describir los conceptos que

Características del lenguaje Java

� Independiente de la plataforma de ejecución:

• El compilador Java genera código intermedio (bytecodes) independiente de la plataforma.

• Los bytecodes son interpretados por la máquina virtual de Java (JVM).

• El código compilado se puede ejecutar en muchas plataformas (Windows, Linux, Mac, etc.) siempre y cuando cuenten con el entorno de ejecución de Java (incluye la máquina virtual)

• La tecnología de implementación (compilador+intérprete) hace que el código Java sea portable.

Page 20: Programación Orientada a Objetos - dis.um.esdis.um.es/docencia/poo/wiki/lib/exe/fetch.php?media=curso2015:... · Objetivos del Programa de Teoría • Describir los conceptos que

Características del lenguaje Java

Independiente de la plataforma de ejecución:

http://javapapers.wordpress.com/2011/11/28/java-virtual-machine-jvm/

Page 21: Programación Orientada a Objetos - dis.um.esdis.um.es/docencia/poo/wiki/lib/exe/fetch.php?media=curso2015:... · Objetivos del Programa de Teoría • Describir los conceptos que

Características del lenguaje Java

� Sencillo:

• La sintaxis de Java es muy parecida a C++

• Elimina las características de C++ más complejas, por ejemplo, punteros.

� Orientado a Objetos:

• A diferencia de C++, es un lenguaje OO puro.

• Las capacidades OO son similares a las de C++.

Page 22: Programación Orientada a Objetos - dis.um.esdis.um.es/docencia/poo/wiki/lib/exe/fetch.php?media=curso2015:... · Objetivos del Programa de Teoría • Describir los conceptos que

Características del lenguaje Java

� Robusto:

• Lenguaje fuertemente tipado

- El compilador detecta muchos problemas que, en otros lenguajes, aparecerían en tiempo de ejecución.

• Mecanismo de excepciones

- Gestión de errores en tiempo de ejecución.

• Elimina los errores derivados de una mala gestión de memoria

- Mecanismo de “recogida de basura”.

- Elimina la gestión de punteros.

Page 23: Programación Orientada a Objetos - dis.um.esdis.um.es/docencia/poo/wiki/lib/exe/fetch.php?media=curso2015:... · Objetivos del Programa de Teoría • Describir los conceptos que

Evolución del lenguaje Java

http://wiki.bcmoney-mobiletv.com/index.php?title=Java

Page 24: Programación Orientada a Objetos - dis.um.esdis.um.es/docencia/poo/wiki/lib/exe/fetch.php?media=curso2015:... · Objetivos del Programa de Teoría • Describir los conceptos que

Java vs. .NET

� Un programa Java se implementa una vez y se

puede ejecutar en plataformas diferentes (cualquier hw y sistema operativo).

� Los programas compilados en .NET se

ejecutan sólo en Windows pero pueden

escribirse en lenguajes diferentes (C#, VB.NET, F#, C++, etc.)