Programación Orientada a Objetos -...

26
Programación Orientada a Objetos Curso 2014/2015 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=curso2014:... · • El examen práctico sólo se podrárealizar si se aprueba el

Programación Orientada a ObjetosCurso 2014/2015

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=curso2014:... · • El examen práctico sólo se podrárealizar si se aprueba el

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=curso2014:... · • El examen práctico sólo se podrárealizar si se aprueba el

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=curso2014:... · • El examen práctico sólo se podrárealizar si se aprueba el

Metodología

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

• Aprendizaje basado en problemas/proyectos

• Tiempo destinado a los ejercicios:– Resolución de ejercicios prácticos propuestos con

anterioridad.

– Ejercicios de repaso del contenido teórico.

– Ritmo de la clase guiado por la participación de los alumnos.

• 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=curso2014:... · • El examen práctico sólo se podrárealizar si se aprueba el

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=curso2014:... · • El examen práctico sólo se podrárealizar si se aprueba el

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=curso2014:... · • El examen práctico sólo se podrárealizar si se aprueba el

Objetivos delPrograma de Prácticas

• Aprender el lenguaje de programación Java

• Practicar los conceptos OO en Java en el desarrollo de ejercicios y 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=curso2014:... · • El examen práctico sólo se podrárealizar si se aprueba el

Metodología

• Dos modalidades de prácticas:

– Prácticas laboratorio cerrado

– Prácticas de laboratorio abierto

• Evaluación final mediante un examen práctico de problemas en el laboratorio y el proyecto de programación.

Page 9: Programación Orientada a Objetos - dis.um.esdis.um.es/docencia/poo/wiki/lib/exe/fetch.php?media=curso2014:... · • El examen práctico sólo se podrárealizar si se aprueba el

Metodología

• Prácticas laboratorio cerrado

– Resolución de problemas guiada por el profesor.

– Corrección en el laboratorio.

– Entrega del proyecto en cada sesión.

Page 10: Programación Orientada a Objetos - dis.um.esdis.um.es/docencia/poo/wiki/lib/exe/fetch.php?media=curso2014:... · • El examen práctico sólo se podrárealizar si se aprueba el

Metodología• Prácticas de laboratorio abierto

– Desarrollo de un proyecto de programación: Videojuego

– Una entrega antes de vacaciones de Navidad (16 de diciembre).

– Organizado en etapas de acuerdo a las prácticas realizadas en laboratorio cerrado.

Page 11: Programación Orientada a Objetos - dis.um.esdis.um.es/docencia/poo/wiki/lib/exe/fetch.php?media=curso2014:... · • El examen práctico sólo se podrárealizar si se aprueba el

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 12: Programación Orientada a Objetos - dis.um.esdis.um.es/docencia/poo/wiki/lib/exe/fetch.php?media=curso2014:... · • El examen práctico sólo se podrárealizar si se aprueba el

Exámenes

• Exámenes oficiales en cada convocatoria :

– 27 de enero de 2015 (Tarde)

– 10 de junio de 2015 (Tarde)

– 15 de julio de 2015 (Mañana)

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

Page 13: Programación Orientada a Objetos - dis.um.esdis.um.es/docencia/poo/wiki/lib/exe/fetch.php?media=curso2014:... · • El examen práctico sólo se podrárealizar si se aprueba el

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 14: Programación Orientada a Objetos - dis.um.esdis.um.es/docencia/poo/wiki/lib/exe/fetch.php?media=curso2014:... · • El examen práctico sólo se podrárealizar si se aprueba el

Profesorado

• Javier Bermúdez Ruiz

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

– 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 15: Programación Orientada a Objetos - dis.um.esdis.um.es/docencia/poo/wiki/lib/exe/fetch.php?media=curso2014:... · • El examen práctico sólo se podrárealizar si se aprueba el

Profesorado

• Marcos Menárguez Tortosa

– Teoría G2

– Prácticas G2.2 y G2.3

– 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 16: Programación Orientada a Objetos - dis.um.esdis.um.es/docencia/poo/wiki/lib/exe/fetch.php?media=curso2014:... · • El examen práctico sólo se podrárealizar si se aprueba el

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 17: Programación Orientada a Objetos - dis.um.esdis.um.es/docencia/poo/wiki/lib/exe/fetch.php?media=curso2014:... · • El examen práctico sólo se podrárealizar si se aprueba el

Introducción

Page 18: Programación Orientada a Objetos - dis.um.esdis.um.es/docencia/poo/wiki/lib/exe/fetch.php?media=curso2014:... · • El examen práctico sólo se podrárealizar si se aprueba el

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 19: Programación Orientada a Objetos - dis.um.esdis.um.es/docencia/poo/wiki/lib/exe/fetch.php?media=curso2014:... · • El examen práctico sólo se podrárealizar si se aprueba el

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 20: Programación Orientada a Objetos - dis.um.esdis.um.es/docencia/poo/wiki/lib/exe/fetch.php?media=curso2014:... · • El examen práctico sólo se podrárealizar si se aprueba el

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 21: Programación Orientada a Objetos - dis.um.esdis.um.es/docencia/poo/wiki/lib/exe/fetch.php?media=curso2014:... · • El examen práctico sólo se podrárealizar si se aprueba el

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 22: Programación Orientada a Objetos - dis.um.esdis.um.es/docencia/poo/wiki/lib/exe/fetch.php?media=curso2014:... · • El examen práctico sólo se podrárealizar si se aprueba el

Características del lenguaje Java

Independiente de la plataforma de ejecución:

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

Page 23: Programación Orientada a Objetos - dis.um.esdis.um.es/docencia/poo/wiki/lib/exe/fetch.php?media=curso2014:... · • El examen práctico sólo se podrárealizar si se aprueba el

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 24: Programación Orientada a Objetos - dis.um.esdis.um.es/docencia/poo/wiki/lib/exe/fetch.php?media=curso2014:... · • El examen práctico sólo se podrárealizar si se aprueba el

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 25: Programación Orientada a Objetos - dis.um.esdis.um.es/docencia/poo/wiki/lib/exe/fetch.php?media=curso2014:... · • El examen práctico sólo se podrárealizar si se aprueba el

Evolución del lenguaje Java

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

Page 26: Programación Orientada a Objetos - dis.um.esdis.um.es/docencia/poo/wiki/lib/exe/fetch.php?media=curso2014:... · • El examen práctico sólo se podrárealizar si se aprueba el

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