Se encuentra usted aquí

Descripción completa del curso ED15

Descripción completa de curso

Descripción Curso: 04-JAVA8

Código: 04-JAVA8
Título: Programación orientada a objetos y funcional con Java 8
Descripción:
Los primeros trabajos del proyecto de creación del lenguaje de programación Java surgen en 1991. Unos años después, en 1995, Sun Microsystems saca la primera versión del lenguaje (Java 1.0). Durante estos últimos años, han ido saliendo sucesivas versiones, la última oficial es Java 8 lanzada durante 2014 por Oracle. Durante este tiempo, Java se ha convertido en el lenguaje con la mayor cantidad de programadores activos, y está siendo usado en todos los ámbitos. De hecho Java es algo mucho más complejo y completo que un lenguaje de programación. Supone realmente una plataforma y en torno suyo han surgido cientos de librerías, herramientas, entornos, y comunidades de programadores.

Desde los famosos applets o servlets vinculados a la integración de Java con el mundo Web hasta su uso en los móviles (se calcula que más de 3000 millones de teléfonos móviles usan Java en algún componente), Java se usa cada vez más en más entornos.

El objetivo de este curso es introducir los conceptos básicos de la programación orientada a objetos como paradigma usando la última distribución oficial de Java. Las características de compilación y ejecución del lenguaje Java han convertido a este lenguaje en uno de los principales sistemas para la implementación de entornos interactivos en Internet.

Básicamente, la incorporación de Java mediante applets de HTML permite el desarrollo de aplicaciones que son ejecutadas desde páginas Web. Este modelo de diseño y programación posee un interés especial para la comunidad educativa ya que permite la integración de documentos basados en hiperenlaces (HTML) con aplicaciones interactivas integradas en los mismos documentos.

Por otro lado, el modelo de pseudo-compilación de Java permite la distribución de aplicaciones compiladas a través de Internet y su ejecución local. Por tanto, el modelo permite un aprovechamiento eficiente de la red a la vez que facilita la ejecución de la misma aplicación en distintas plataformas informáticas.

Así mismo, el curso sirve como formación básica en programación para cursos específicos sobre programación gráfica de aplicaciones didácticas, creación de videojuegos para la enseñanza, etc.

Finalmente, el curso cubre las principales novedades incorporadas por la versión 8 del lenguaje, en particular la incursión que Java ha hecho en el campo de la programación funcional con la incorporación de las expresiones lambda.

Profesorado: Antonio Gámez Mellado
José Francisco Quesada Moreno
Alejandro Ruiz Martínez
Programa:
Tema 1: Entorno de trabajo: Plataforma JDK, Entorno IDE
1.1.- Java: un sólo código fuente para cualquier sistema. Introducción e historia.
1.2.- Plataforma Java SE 8
1.3.- Instalación del JDK
1.4.- Instalación del entorno IDE (Eclipse)
1.5.- Comandos básicos del JDK
1.6.- Introducción a Java: clases, objetos, variables y métodos
1.7.- Ejemplos y ejercicios

Tema 2: Programación orientada a objetos
2.1.- Nociones básicas sobre programación orientada a objetos
2.2.- Clases: tipos y definición
2.3.- Objetos: instanciación
2.4.- Métodos y variables
2.5.- Ejemplos y ejercicios

Tema 3: Tokens, tipos y literales
  3.1.- Lenguajes y compiladores
3.2.- El alfabeto de Java: Unicode
3.3.- Nivel léxico de Java: tokens
3.4.- Las palabras reservadas de Java
3.5.- Tipos primitivos de datos
3.6.- Literales
3.7.- Una primera aplicación interactiva con Java
3.8.- Ejemplos y ejercicios

Tema 4: Operadores y expresiones
4.1.- Identificadores
4.2.- Operadores
4.3.- Precedencia y asociatividad
4.4.- Ejemplos y ejercicios

Tema 5: Sentencias y control de ejecución
5.1.- Asignación
5.2.- Tipos de sentencias
5.3.- Ejecución secuencial
5.4.- Ejecución condicional
5.5.- Ejecución iterativa
5.6.- Un ejemplo de complejidad media en Java
5.7.- Ejemplos y ejercicios

Tema 6: Programación orientada a objetos con Java 
6.1.- Encapsulación, modularidad y ocultación de información
6.2.- Clases y objetos
6.3.- Métodos y variables
6.4.- Control de acceso
6.5.- El método main
6.6.- Polimorfismo y constructores
6.7.- Clases y Documentación
6.8.- Ejemplos y ejercicios

Tema 7: Nociones avanzadas de programación orientada a objetos
7.1.- Herencia
7.2.- Paquetes: organización de clases
7.3.- Excepciones
7.4.- Ejemplos y ejercicios

Tema 8: Matrices y ficheros
8.1.- Matrices
8.2.- Ficheros
8.3.- Un ejemplo de estrategia con Java
8.4.- Ejemplos y ejercicios

Tema 9: Genéricos, interfaces y colecciones
       9.1.- Genéricos
       9.2.- Interfaces
       9.3.- Colecciones
       9.4.- Ejemplos y ejercicios

Tema 10: Programación funcional en Java
       10.1.- Noción de iterador y estrategias de implementación
       10.2.- Interfaz iterable
       10.3.- Operador iterador
       10.4.- Nociones básicas sobre programación funcional
       10.5.- Expresiones lambda 
       10.6.- Manipulación de tipos
       10.7.- Ejemplos y ejercicios


Objetivos:

  • Estudio de la metodología de programación orientada a objetos: la orientación a objetos es una metodología de programación que propone todo un nuevo paradigma para el diseño e implementación de aplicaciones informáticas. Uno de los principales objetivos del curso es presentar y estudiar las técnicas de orientación a objetos. 
    • A este nivel es importante resaltar el estudio de los conceptos y modelos de paquete, clase, objeto, método y atributo.

  • Java es un lenguaje de programación, que al estilo de C++ incorpora simultáneamente los paradigmas de programación orientada a objetos y programación imperativa clásica. El segundo objetivo del curso es presentar las características propias de este lenguaje.
    • Dentro de este apartado, los objetivos se centrarán en el estudio de los tipos básicos de datos de java, operadores y expresiones, sentencias, condicionales, bucles, etc.

  • Además de la orientación a objetos y la programación imperativa, Java ha incorporado recientemente un enfoque funcional mediante la inclusión de las expresiones lambda. El curso cubre las principales novedades de la versión 8 de Java, deteniéndose especialmente en el estudio de las expresiones lambda, la inferencia de tipos, etc.

  • Del lenguaje Java en general, nos interesará su potencial aplicación al campo de la educación. Así pues, el tercer bloque de objetivos se centra en la presentación de técnicas de implementación de aplicaciones de interés educativo con Java. Es decir, el estudio de la programación orientada a objetos y de Java se llevará a cabo mediante el estudio de ejemplos y la propuesta de ejercicios que ilustren el diseño e implementación de sistemas y herramientas aplicables en el ámbito educativo.

Calendario: El curso se estructura en los 8 temas descritos en la sección anterior sobre el programa. Este material se entregará de forma progresiva durante el período de desarrollo del curso, y los alumnos deberán estudiar el material suministrado, reproducir los ejemplos descritos con el fin de consolidar los conocimientos, y realizar los ejercicios y entregarlos en las fechas previstas.

Al inicio del curso se suministrará una agenda detallada que describe todas las actividades y tareas que se deben realizar.

Metodología:
El curso se basa en la utilización de una plataforma Web para la enseñanza-aprendizaje a través de Internet. Dicha plataforma permite la organización del material de acuerdo con los objetivos y los contenidos programados. 

Es decir, el curso se organiza a través de un conjunto de temas, para cada uno de los cuales se facilitará tanto el desarrollo del tema correspondiente, así como un conjunto de ejemplos ilustrativos de la materia del tema. Puesto que se trata de un curso muy práctico dirigido a presentar y adquirir una serie de competencias en el campo de la programación de aplicaciones informáticas con el entorno Java SE 7, se facilitan el código fuente de estos ejemplos para agilizar la implementación y estudio de cada tema.

Así mismo, cada tema incluye un conjunto de ejercicios que será necesario realizar para superar el curso. Los ejercicios se han diseñado pensando en el modelo progresivo de aprendizaje de un entorno y lenguaje de programación.

Para facilitar la resolución de las dudas y la colaboración en un entorno integrado de enseñanza-aprendizaje, el curso contará con una serie de mecanismos de comunicación tutor-alumno, entre los que destacan la creación de una serie de foros, tanto genéricos (dudas y comentarios acerca del curso y su seguimiento) como específicos por temas o tópicos de especial interés.
Evaluación:
De acuerdo con las directrices generales especificadas para la metodología del curso, la evaluación para la superación del mismo se basa en la realización de los ejercicios propuestos en cada tema. Cada alumno debe realizar estos ejercicios individualmente  y enviar la solución al profesor del curso mediante los canales de  control de tareas internos al propio entorno virtual de enseñanza-aprendizaje, en el que quedan reflejadas las fechas y valoración de cada una de las tareas.
Requisitos: No existen requisitos previos específicos para la realización de este curso.

El curso se impartirá de forma que pueda ser seguido tanto por usuarios y programadores de entornos Windows como Linux.

No obstante, se recomienda un nivel de competencias mínimo para la realización de tareas tales como descargar, instalar y configurar los sistemas que forman el entorno sobre el que se desarrolla el curso.

Bibliografía: La referencia clásica y básica de Java es el libro publicado por los propios creadores del lenguaje:

  • Ken Arnold, James Gosling: El lenguaje de programación Java. Addisson-Wesley. [Existen múltiples ediciones

Entre las publicaciones más recientes sobre Java en español, merecen destacarse:
  • Rogers Cadenhead (2014): Java 8. Anaya Multimedia.
  • Dishori Sharan (2014): Beginning Java 8 Language Features: Lambda Expressions, Inner Classes, Threads, I/O, Collections, and Stream
  • Francisco Gutiérrez, Francisco Durán, Ernesto Pimentel: Programación orientada a objetos con Java. Paraninfo. 2007

La especificación del lenguaje Java y de la Máquina Virtual correspondiente a la última versión (Java SE 8) oficial distribuida por Oracle (en inglés), se puede encontrar en:

  • http://docs.oracle.com/javase/specs/
Otros:
  Descripción reducida del curso