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
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 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.
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 ejercicios y un proyecto de programación Manejar un entorno de programación Java: Eclipse
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.
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.
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.
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 : 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.
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, 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.
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 (marcos@um.es)
Begoña Moros Valle Profesorado 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.)