Temario
Introducción a la Programación
Este primer tema pretende nivelar los conocimientos entre los alumnos para que todos accedan en similares condiciones al resto del curso. En esta primera etapa se brindarán conceptos básicos de algoritmos utilizando técnicas que faciliten la comprensión, como lo es el pseudocódigo.
Sintaxis del Lenguaje Java:
Sintaxis de las construcciones básicas del lenguaje. Por ejemplo: expresiones, condicionales, iteraciones, declaraciones, tipos de datos, entrada y salida estándar, manejo de excepciones, etc. Se utiliza el entorno de desarrollo integrado NetBeans® para la escritura del código Java.
Programación Orientada a Objetos en Java:
Conceptos básicos y avanzados de la programación orientada a objetos y su aplicación en Java, construyendo programas (en consola) que los utilicen. Por ejemplo: objeto, clase, atributos, métodos, operaciones, constructores, destructores, referencias, herencia, redefinición, sobrecarga, polimorfismo, tipos de polimorfismo, interfaces, asociaciones entre clases, etc. Introducción de la notación UML junto con la explicación de cada nuevo concepto.
Desarrollo de Interfaces Gráficas en Java utilizando Swing:
Introducción a Swing y AWT. Jerarquía de componentes gráficos de Swing. Distribución de componentes mediante el uso de Layout Managers. Manejo de eventos en Swing. Formularios, contenedores intermedios (paneles) y controles visuales (botones, listas, listas desplegables, botones de selección y chequeo, barras de menús, formularios internos, etc.) Construcción de interfaces gráficas de usuario (aplicaciones de escritorio) utilizando Swing.
Caso de Estudio:
Modelado con UML de una aplicación en 2 capas orientada a objetos y aplicación de los conocimientos adquiridos en los dos puntos anteriores (OOP y Swing) en la construcción de la Capa Lógica y de la Capa Presentación de dicha aplicación, manteniendo separadas las responsabilidades de cada capa (luego se extiende el Caso de Estudio a 3 capas).
Persistencia en Aplicaciones en Java utilizando JDBC y MySQL:
Conceptos generales de acceso a datos. Conceptos básicos de JDBC (JDBC v1.0) y conceptos avanzados de JDBC (JDBC v2.0). Breve introducción a MySQL Server. Construcción de aplicaciones utilizando JDBC accediendo a Bases de Datos en MySQL. Construcción de aplicaciones en 3 capas y desarrollo de la tercera capa (Capa de Persistencia) utilizando los objetos provistos por JDBC. Revisión del Caso de Estudio para agregar la capa de persistencia.
Correspondencia entre aplicaciones orientadas a objetos (paradigma de objetos) y acceso a bases de datos (paradigma relacional): mapeo objeto/relacional. Discusión de alternativas para el desarrollo de la persistencia.
Trabajo Obligatorio
Al principio del curso se estará estableciendo la definición de un trabajo obligatorio que será acompañado a largo de los módulos vistos para lograr un trabajo completo de escritorio finalizando este módulo.
Introducción al desarrollo de aplicaciones web
Se describe la problemática del desarrollo de aplicaciones web y como JEE brinda herramientas para la construcción de este tipo de aplicaciones. Se introduce el stack de tecnologías Java necesarios para el desarrollo de aplicaciones web empresariales de mediano y gran porte.
Servidores de Aplicaciones
Este módulo muestra qué son y para qué sirven los servidores de aplicaciones, así como presenta los más utilizados en el mercado. Se introduce también la noción de contenedor y los servicios que estos proveen en el contexto de JEE.
Arquitectura Web & MVC
Se presenta la arquitectura de una aplicación web en general y en particular el diseño de capas. Se presenta la idea de MVC (Model-View-Controller), sus ventajas y las tecnologías JEE que le dan soporte.
Capas
Presentación
Este módulo se enfoca en uno de los aspectos fundamentales del curso: el desarrollo de una interfaz gráfica web con JEE mediante JSF (JavaServer Faces).
Negocio
Tomando como objetivo la construcción de la capa de negocios (también llamada Capa Lógica) dentro de las tecnologías JEE, este módulo introduce los EJBs (Enterprise JavaBeans), se profundiza la noción de contenedor, se presenta la inyección de dependencias y se cubre en especial los Session Beans.
Persistencia
En este módulo se repasan los conceptos de JDBC (ya conocidos por los estudiantes) y se profundiza en la construcción de una capa de persistencia en el contexto de JEE.
Integración
Luego de ver las tecnologías y diseños propios de cada una de las 3 capas (Presentación, Lógica y Persistencia) este módulo introduce al estudiante en los mecanismos y tecnologías necesarias para integrar varios de los aspectos anteriores, como ser la integración de EJB con JSF.
WebServices
Este módulo introduce los servicios web en Java así como los servicios REST.
Frameworks
Para finalizar el curso, se presentan algunos de los frameworks más utilizados en la actualidad para apoyar (y acelerar) el desarrollo de aplicaciones web con Java, como ser Spring. Se mostrará también el uso de jQuery y Maven en el contexto de JEE.
Trabajo Obligatorio (Continuación)
El trabajo obligatorio de la primera etapa podrá ser transformado en una aplicación web con las herramientas vistas en esta segunda mitad del curso. Queda a consideración del docente el planteo de un trabajo enteramente nuevo para esta segunda etapa. Se espera una temprana definición de requerimientos (planteo del trabajo a realizar por parte del docente) de forma de poder desarrollarlo en forma iterativa e incremental, acompasando el dictado del curso.