Programación Orientada a Objetos - Departamento de Informática y

Anuncio
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
Contenido de la presentación
• Programa de teoría.
• Programa de prácticas.
• Evaluación.
• Horarios.
• Introducción.
Objetivos del
Programa 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.
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.
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.
Bibliografía básica
Core Java 2. Vol I. Fundamentos. Cay S.
Horstmann, Gary Cornell
Objetivos del
Programa 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
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.
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.
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.
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.
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.
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])
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.
Introducción
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.
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.
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
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.
Características del lenguaje
Java
Independiente de la plataforma de ejecución:
http://javapapers.wordpress.com/2011/11/28/java-virtual-machine-jvm/
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++.
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.
Evolución del lenguaje Java
http://wiki.bcmoney-mobiletv.com/index.php?title=Java
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.)
Descargar