Curso de programación y diseño con Java

Curso de Java y diseño orientado a objetos para estudiantes con nociones de programación
Material disponible
Avanzado
44 Clases 45 h
249€
179€
Precio en promoción
Java es uno de los lenguajes más utilizados en la industria del software. Un lenguaje fuertemente tipado y orientado a objetos, ideal para la programación de todo tipo de aplicaciones, desde consola a interfaces gráficas o proyectos de aplicaciones de escritorio. También es muy usado para aplicaciones distribuidas en diversos entornos, entre los que se destacan los proyectos para Internet basados en servicios web.

Aprender Java es sencillo porque ofrece una ruta definida para la realización de los programas, ya que todo el software se tiene que realizar basado en clases y objetos. Además, su sistema de tipos ofrece una red de seguridad que nos ayuda a detectar situaciones en las que se puede estar cayendo en errores y obligará al programador a aplicar correctamente las prácticas deseables de la programación.

También es un lenguaje ideal para aprender y aplicar conceptos de diseño del software y diseño orientado a objetos, para conseguir realizar aplicaciones flexibles, escalables y robustas. En este curso programación con Java podrás experimentar estas ventajas, ya que está orientado de modo que puedas aprender el lenguaje y a la vez aplicar todos los conceptos de diseño del software y diseño orientado a objetos necesarios para la construcción de aplicaciones del mundo real.

Qué aprenderé en el Curso de programación y diseño con Java

  • Programación con Java
  • Programación orientada a objetos
  • Diseño del software
  • Diseño orientado a objetos
  • Programación genérica con Java
  • Packages en Java
  • Excepciones
  • Interfaces gráficas con Swing
  • Acceso a ficheros y a bases de datos con SQL
  • Aplicaciones distribuidas con comunicaciones TCP/IP

Objetivos del curso

El objetivo del curso de programación y diseño con Java es aprender a desarrollar aplicaciones con el lenguaje Java y, a la vez, conocer y aplicar los conceptos de diseño del software y diseño orientado a objetos necesarios para construir aplicaciones con las características deseables en todo software, que nos permitan mejorar la flexibilidad y robustez de las aplicaciones, su escalabilidad y, a la postre, la facilidad de mantenimiento.

Por qué debes aprender programación y diseño con Java

Este curso es perfecto para estudiantes que hayan tenido ya un contacto con otros lenguajes de programación, generalmente con lenguajes levemente tipados como pueden ser Javascript, PHP o Python. Java permitirá a estos estudiantes aprender un lenguaje de programación que requiere otro tipo de conocimientos y prácticas para realizar las aplicaciones.

También es ideal para programadores con un conocimiento medio de Java que deseen aprender a realizar programas con un buen diseño orientado a objetos, que les permitan satisfacer las necesidades cambiantes de las aplicaciones y llegar a soluciones de software de más elevada calidad.

No se trata del típico curso de Java que va explicando los conceptos con ejemplos sueltos y simples, que no se corresponden realmente con las necesidades de las aplicaciones reales. En lugar de ello se realizarán siempre ejemplos sobre las mismas aplicaciones, que irán creciendo a lo largo de todo el curso, en la medida que se irán incrementando los requisitos. Para el desarrollo de estás aplicaciones será necesario aplicar un buen diseño del software capaz de permitir su adaptación a distintos entornos, desde la consola, las interfaces de usuario o las comunicaciones de red, con distintos tipos de persistencia.

Por tanto, si estás aprendiendo programación, el curso de programación y diseño con Java es la formación que necesitas para poder aplicar las prácticas correctas, que te ayuden a resolver los problemas de las aplicaciones que encontrarás en la vida real. Si ya tenías cierta experiencia con Java, verás cómo el aprendizaje de las prácticas de diseño y diseño orientado a objetos te permite mejorar de manera radical la calidad del software que venías realizando hasta la fecha, consiguiendo que los objetivos que antes te parecían difíciles de alcanzar resulten más asequibles a partir de ahora.

Este curso tiene otra particularidad y es que los estudiantes tendrán que realizar prácticas de aplicaciones propuestas. Durante las clases del curso se presentarán distintas etapas de un juego realizado por el profesor, para cubrir cada vez nuevos requisitos. Los estudiantes tendrán que realizar por su cuenta otros proyectos de juegos que se corregirán durante las clases.

Qué tengo que saber

Para la realización de este curso hace falta tener algunos conocimientos de programación, aunque es indiferente el lenguaje de programación que se conozca de antemano. Se supone que el estudiante tiene algunas nociones, aunque sean muy básicas, sobre diseño de software: acoplamiento, cohesión, tamaño… Todos esos conceptos se aplicarán a lo largo del curso, junto con nuevos conceptos de diseño y diseño orientado a objetos que aplican a lenguajes fuertemente tipados como Java.

Clases y contenidos

Programación y diseño de software Gratis
  • Programación, diseño del software y el diseño orientado a objetos.
  • Por qué es importante aprender a programar en un lenguaje prestando especial atención a los conceptos de diseño, que permitan crear software de calidad.
Entorno de desarrollo VScode para Mac Gratis

En este vídeo vamos a explicar cómo instalar el JDK en Mac y cómo configurar Visual Studio Code con las extensiones necesarias para para desarrollar con Java. Además veremos cómo restaurar los ejemplos del curso, clonando repositorios y ejecutando los programas Java.

Entorno de desarrollo para Java con VSCode para Windows

Ahora vamos a ver cómo instalar el JDK para desarrollar con Java y las extensiones necesarias en Visual Studio Code, pero usando el sistema operativo Windows. El proceso es idéntico al del vídeo anterior, solo que hemos realizado la descarga del OpenJDK desde el enlace que nos proporciona directamente VSCode al instalar el pack de extensiones de Java. Además explicamos cómo clonar los repositorios de ejemplos que veremos en los próximos días y cómo ejecutar los archivos Java desde Visual Studio Code.

Programación imperativa con Java Gratis

En esta clase vamos a comenzar con las bases de la programación con Java, abordando asuntos importantes pero básicos como los tipos de datos en Java, los literales, operadores de cada tipo y unas primeras sentencias de declaraciones y asignaciones.

Programación estructurada con Java Gratis

Los conceptos esenciales de la programación estructurada aplicados en el lenguaje Java: Estructuras de control, funciones (en Java métodos)...

Programación estructurada con Java II

Continuación y práctica de los conceptos de programación estructurada aplicados a Java.

Programación basada en clases: Vista pública

En esta clase comenzamos a ver cómo se desarrollan las clases en Java y cómo se instancian objetos de esas clases. Comenzaremos atendiendo a lo que sería la vista pública de las clases en Java. Tocaremos temas como clases, objetos, referencias, métodos, propiedades, constructores, destructores y más.

Solución de la práctica de las interfaces de coordenada y fecha

Realizamos la solución de la práctica propuesta en la clase anterior, en la que se pidió realizar las interfaces (vista pública) de las clases Coordinate y Date.

Vista privada de las clases

Veremos el concepto de vista privada de las clases y comenzaremos a ver implantaciones de clases de ejemplo.

Corregir práctica implantación Coordinate y vista pública de una lista

En esta clase corregimos las prácticas enunciadas en el anterior día. Se corrige concretamente la implantación de la clase Coordinate y la propuesta de una interfaz (diseño de la vista pública) de una clase Lista de elementos de un tipo definido por el usuario.

Vista privada de los objetos y miembros de clase

Explicamos lo que es la vista privada de objetos. Veremos luego qué son los miembros de clase, o miembros estáticos. Veremos varios ejemplos de clases de utilidad de Java que tienen una serie de miembros estáticos, como Math. Por último veremos la clase String.

Corregir la práctica implantación Coordinate y Date

En esta parte de la clase comenzamos revisando algunas preguntas realizadas en la plataforma y luego pasamos a corregir prácticas propuestas en los días anteriores. En este caso veremos implantaciones de la clase Coordinate y la clase Date.

Clase String, clases de recubrimiento de los tipos primitivos

Continuamos con el lenguaje Java, viendo en detalle la clase String y las clases de recubrimiento de los tipos primitivos. Son clases que habíamos dejado en el tintero porque en ellas encontraremos muchos miembros estáticos.

Enumerados en Java

Vemos con precisión qué son los enumerados en Java, qué posibilidades nos ofrecen y los motivos por los que son tan útiles.

Corregir clase Coordinate aplicando nuevas técnicas propuestas

En este bloque de la clase hemos realizado la corrección de la clase Coordinate después de aplicar nuevas propuestas de las clases pasadas.

Comparación entre Java y Javascript

Hacemos una pausa en el abordaje de nuevos conocimientos de Java para comparar éste lenguaje con el lenguaje Javascript. Veremos algunas de sus diferencias como el tipado, los paradigmas de la programación y otras cosas destacadas como la permisividad de Javascript en el tipo de cosas que se pueden llegar a hacer, frente a la rigurosidad de Java.

Presentación del juego del TicTacToe en su diseño inicial

En este bloque vamos a introducir el juego de las tres en raya. Comenzamos por ver el enunciado, que consiste en: Modelo de dominio de 3 en raya Requisitos del juego de las tres en raya con casos de uso y prototipo de la interfaz Luego vemos la solución inicial propuesta, no es que sea la solución que queremos, pero sí un primer estado por el que podríamos comenzar. Este primer diseño está basado mayormente en el modelo del dominio, escogiendo realmente las clases que vamos a usar al desarrollar el software (no toda entidad del modelo de dominio tiene su clase en el software y también hemos hecho clases adicionales, no presentes en el modelo del dominio porque nos ha parecido adecuado). Durante el vídeo se justifica el diseño haciendo un repaso al tema de diseño y diseño modular.

Corregir prácticas de cambio de diseño de TicTacToe

En esta clase se realiza la corrección de distintas prácticas realizadas por los estudiantes con cambios de diseño propuestos sobre el TicTacToe.

Alternativas de diseño del TicTacToe propuestas por Luis y repaso de diseño

Aquí Luis nos ofrece algunos cambios de diseño que ha realizado él sobre el juego del TicTacToe, con un repaso fundamental a diversos conceptos de diseño, recomendaciones y teoría en general sobre diseño de software.

Una pila acotada de intervalos

En este bloque de la clase vamos a ver un código realizado por Luis para la construcción de una pila. En este caso una pila acotada, por lo tanto tiene un número de elementos máximo. Este código (y algunos consejos aportados) lo puedes tomar como referencia para guiarte en la práctica propuesta en esta clase, que es la creación de una pila acotada de intervalos.

Corregir la clase ServicesContract con menú

Vamos a corregir una práctica pendiente, que fue propuesta en clases anteriores, en la que se proponía realizar un menú para la clase ServicesContract.

Corrección de prácticas: contrato de servicio y pila no acotada

En esta clase veremos las correcciones de prácticas planteadas anteriormente. En concreto se verán ejemplos de un menú de contrato de servicio que ha sido mejorado y la pila no acotada.

Aserciones

En esta clase vamos a abordar el tema de las aserciones que viene del tema de diseño por contrato. Qué son las aserciones, cuándo se deben utilizar y por qué. En Java se realizan con la sentencia assert.

Corrección de TicTacToe con vista separada y Pila con asserts

En esta parte de la clase vamos a realizar la corrección de dos prácticas: TicTacToe con vista separada. Pila no acotada con asserts.

Programación orientada a objetos (clases + herencia)

Comenzamos con la teoría de la Programación Orientada a Objetos, en la que explicaremos qué es la herencia, cuándo podemos usarla y cuándo no.

Herencia con clases abstractas e interfaces

En esta clase avanzamos con el tema de herencia, viendo, entre otras cosas, qué son las clases abstractas y por extensión acabamos introduciendo las interfaces como clases abstractas puras.

Clases y métodos

Vemos un último detalle sobre herencia en Java que nos permite el modificador final, sobre métodos y clases.

Polimorfismo

Llegamos al tema de polimorfismo, qué es polimorfismo, por qué lo queremos y por qué es tan importante en la programación orientada a objetos. Ejercicio con polimorfismo.

Corregir práctica de contrato de servicio con menú + herencia y polimorfismo

Vamos a corregir la práctica de herencia y polimorfismo que se planteó en la clase anterior.

Introducción a la programación modular
  • Qué son los módulos y dónde encontramos módulos en el mundo de la programación en Java.
  • Qué beneficios nos trae la programación modular.
Corrección de mejoras en la práctica de contrato de servicio

Corregimos mejoras en la práctica de contrato de servicio, según las sugerencias del último día.

Paquetes al detalle en Java

En este vídeo avanzamos y finalizamos el tema de la Programación Modular en Java, viendo las posibilidades que nos ofrece el lenguaje para el trabajo con packages.

Corregir práctica Conecta 4 en Java

En este vídeo se va a ver la corrección del juego Conecta 4 que se solicitó como práctica. Hemos visto una traducción a Java del juego desarrollado en Javascript en módulos anteriores del máster, por eso el repaso del código será bastante ágil.

Jerarquía de clases Coordinate

Se explica la jerarquía de clases Coordinate que usa el juego TicTacToe, a petición de los estudiantes.

Tratamiento de excepciones en Java

Veremos cómo funcionan las excepciones en Java y los errores. Veremos ejemplos de código para tratar las excepciones en Java, para levantar excepciones y para capturarlas.

Análisis de mejoras en el código de Conecta 4

Se ha avanzado en la práctica de Conecta 4 y se presentan las correcciones en clase.

Flujos en Java

Vemos toda la jerarquía de clases para flujos en Java, cómo trabajar con flujos, con ejemplos diversos.

Avances en Conecta 4 con files

Corrección de avances en la práctica de Conecta 4 introduciendo lectura de ficheros en Java.

Programación parametrizada en Java

Justificación de la programación parametrizada, por qué la necesitamos en Java. Cómo se crean clases con programación parametrizada en Java.

Correcciones de avances en Juego Conecta 4

Nuevas correcciones en el juego Conecta 4 realizado por los estudiantes.

Parámetros de comodín y métodos genéricos en Java parametrizada

Veremos qué son los parámetros de comodines en los generics de Java y luego veremos los métodos genéricos.

Introducción a colecciones

Un conjunto de clases para representar y manejar estructuras de datos.

Correcciones de clase genérica de un juego

Realizamos correcciones de una práctica sugerida en la clase anterior: la adaptación de una clase genérica para aplicar a juegos.

Continuación del tema de colecciones y recapitulación de Java

Repaso de la programación parametrizada y las colecciones. Finalización de la teoría de colecciones parametrizadas y recapitulación de la programación en Java y otras tecnologías y prácticas para el desarrollo.

Valoraciones

Francisco Yago

Top para los amantes del software

DOCAL ARTAJO / JAIME

Excelente curso, como todos los de Luis.

Cursos que también te pueden interesar

¿Conoces nuestra tarifa plana?

Toda la formación de EscuelaIT, con más de 200 cursos completos para aprender las más variadas tecnologías de programación, diseño y marketing online. Todo! con tu suscripción.

Suscríbete