What you'll learn:
- Programación de proyectos: Desarrollarás proyectos que te permitirán entrenar lo aprendido. Desde juegos como el Buscaminas hasta sistemas de gestión.
- Entorno de Desarrollo Integrado (IDE): aprenderás a usar NetBeans como herramienta de desarrollo.
- Programación Estructurada en Java: aprenderás todas las bases del lenguaje.
- Funciones y procedimientos (métodos) y pasaje de parámetros a fondo.
- Estructuras de datos complejas, lineales y arborescentes.
- Tipos Abstractos de Datos y su aplicación directa en Java.
- Programación Orientada a Objetos
- Herencia, polimorfismo y uso de interfaces así como de clases abstractas.
- Creación de Interfaces gráficas de usuario (GUI) con Swing
- Creación de Interfaces gráficas de usuario (GUI) con JavaFX
- Patrones de diseño: singleton, MVC, capas, entre otros.
- Planificación, diseño y modelado de proyectos desde cero.
Este es un curso de lenguaje de programación Java, el cual inicia desde cero en lo relativo a dicha tecnología, pero no es un curso de programación básica. Para llevarlo adelante ya debes tener conocimientos básicos de programación en cualquier otro lenguaje ya que aquí nos centraremos en que aprendas Java. Si no tienes ni idea de programación y quieres empezar desde la nada te recomendamos el curso "Programación profesional desde CERO", el cual está pensado y diseñado para que justamente entres en este mundo del desarrollo de software sin tener ni la más mínima idea previa de nada.
La tecnología Java posee muchísimas ramas, siendo dos de las más conocidas Java SE (Standar Edition)y Java EE (Enterprise Edition). Java SE te permite aprender todo lo relativo a dicho lenguaje y crear aplicaciones de escritorio e inclusive para Android (salvando ciertas particularidades propias del desarrollo para SmarthPhones) siendo el punto de partida para toda persona que se aventura a conocer este lenguaje. Java EE extiende por mucho a Java SE permitiéndote crear aplicaciones Web completas con lenguaje Java, es decir, se orienta al desarrollo Web por completo. En este curso conocerás a fondo Java SE, que es lo que necesitas dominar a fondo para luego adentrarte en cualquier otra característica de este lenguaje. Por ejemplo, no puedes aprender Java EEsi no sabes Java SE, así de simple.
Pasarás de forma progresiva por los distintos paradigmas de programación, aprendiendo:
Programación estructurada
Programación modular
Memoria dinámica
Programación Orientada a Objetos
Programación de Interfaces Gráficas de Usuario
Bases de Datos SQL
Diseño y modelado de software
A través de este curso desarrollarás varios proyectos, diseñarás tus propios programas, resolverás problemas complejos con pocas herramientas, aprenderás a pensar y a dividir grandes retos en pequeñas partes. Aprenderás también la teoría profunda que todo/a programador/a necesita hoy día y la pondrás en práctica inmediatamente a través de los ejercicios y proyectos planteados, todo pensado para que aprendas Java al máximo nivel.
El curso se divide en 15 secciones (temas)progresivas a fin de que la curva de aprendizaje sea lo más asequible posible. En concreto, verás lo siguiente:
=== Tema 1: Entrada y salida estándar ===
Verás las bases mínimas del lenguaje Java para comenzar a comprender sus mecanismos de funcionamiento, trabajando con aplicaciones de consola de forma tal que puedas crear programas que interactúen con el usuario y realicen cálculos básicos con la información que éste ingresa:
Salida estándar de datos
Entrada estándar de datos
Variables en Java
Tipos primitivos de Java
Constantes en Java
Tipos de comentarios y documentación de código
Cálculos matemáticos básicos
=== Tema 2: Selección===
Aprenderás cómo funcionan en Java las sentencias de selección IF y SWITCH, así como empezarás a trabajar a fondo con el uso de operadores condicionales, tablas de verdad y el tipo primitivo boolean.
Sentencia IF
Concatenación de IF
Anidación IF
Uso de SWITCH
Operadores lógicos
Diagramas de flujo
Uso del depurador
=== Tema 3: Repetición iterativa===
La última estructura esencial para todo lenguaje de programación. Trabajarás en la creación de bucles y la gestión del flujo del código fuente. A partir de aquí inician los proyectos obligatorios.
Sentencia FOR
Anidación FOR
Generación de números aleatorios
Importación de clases
Repetición condicional WHILE
Repetición condicional DO..WHILE
Proyectos obligatorios
=== Tema 4: Arreglos ===
A partir de este punto comenzarás a trabajar con estructuras lineales de datos, en concreto, los arreglos y, en consecuencia, iniciarás con un diseño de clases básico para comenzar a estructurar tus programas.
Declaración de arreglos en Java
Algoritmos de búsqueda
Algoritmos de ordenación
Arreglos bidimensionales
Uso de FOR..EACH
Proyectos obligatorios
=== Tema 5: Procedimientos y funciones ===
El uso de procedimientos y funciones (métodos) en Java tiene sus particularidades, y en esta sección las descubrirás a fondo.
Procedimientos
Pasaje de parámetros por copia
Pasaje de parámetros por referencia
Funciones
Alcance de identificadores
Sobrecarga
Proyectos obligatorios
=== Tema 6: Tipos Abstractos de Datos y la Orientación básica a Objetos en Java===
En Java todo son clases y objetos, por lo que se hace difícil avanzar en el curso si entrar de lleno en dichos tópicos. Comprenderemos a fondo que es un Tipo Abstracto de Datos (TAD) y cómo Java modela esta teoría con sus objetos.
Modularización en Java
TADs y Clases
Caso de estudio completo
El Juego de la Vida
Diseño de TADs
Buscaminas
Liberación de memoria en Java
Clases internas
Listas encadenadas
TADs Pila y Cola
TADÁrbol Binario de Búsqueda
Proyectos
=== Tema 7: Archivos ===
Guardar la información es extremadamente importante, y como todo lenguaje que se respete, Java posee mecanismos para crear archivos, guardar información en el disco duro, recuperarla y modificarla como se desee.
Archivos de texto
Archivos de tipos personalizados
Serialización
Creando un procesador de textos básico
Creando una base de datos simple
Proyectos
=== Tema 8: Recursión computacional ===
Es posible repetir código sin hacerlo de forma iterativa con FOR; WHILE o DO..WIHLE, lo cual se logra con recursividad (métodos que se invocan a sí mismos). Además, esto permite solucionar problemas complejos que de forma iterativa serían sumamente complicados de solucionar.
Recursión directa
Recursión indirecta
Uso de la pila (stack)de llamadas a métodos
=== Tema 9: Programación Orientada a Objetos Avanzada ===
Extenderemos el concepto de orientación a objetos ahora tocando un sinfín de detalles complejos.
Clases y paquetes
Modificadores de acceso
Alias
Contenedor de desplazamiento y uso de interfaces predefinidas
Miembros estáticos
Patrón de diseño SINGLETON
Expresiones regulares
Proyectos
=== Tema 10: Herencia y Polimorfismo ===
La orientación a objetos no sería de mucha ayuda si no pudiera implementar justamente la Herencia y el Polimorfismo como parte de su abanico de herramientas. En esta sección conocerás cómo utilizarlos a fondo.
Encapsulamiento y herencia
Casteo y conversión de tipos
Interfaces
Genéricos
Polimorfismo
Clases abstractas
Introducción a UML
Captura de excepciones con TRY..CATCH
Lanzamiento de excepciones
=== Tema 11: Interfaces gráficas de usuario con Swing ===
A lo largo del curso harás muchos proyectos con una GUIya programada por el equipo docente para hacer tu experiencia más interesante, pero en este punto aprenderás a hacerlo por ti mismo/a.
Componentes básicos
Paneles
Gestores de contenido
Eventos
Menús
Multithreading básico
Imágenes
Tablas y componentes avanzados
Patrón Observer
=== Tema 12: Interfaces gráficas de usuario con JavaFX ===
JavaFX es una tecnología que ha tomado mayor relevancia en los últimos años, tanto que muchos auguran que sustituirá a Swing como herramienta para crear GUIs. De este modo, es super importante que también domines esta herramienta al máximo.
Creación de componentes
Ventanas y cuadros
Modelo de eventos
JavaScript básico
=== Tema 13: Bases de datos SQL ===
Conectar una aplicación a una base de datos es super importante y casi obligatorio en el mundo de hoy. En esta sección aprenderás a conectar tus aplicaciones a MySQL y SQLite para manipular la información de forma robusta.
Creación y diseño de bases de datos
Sentencias INSERT
Sentencias SELECT
Actualización y borrado de registros
Modificación de tablas y estructuras
Claves foráneas
Proyectos SQL
Conexión de SQL a Java
Creación de aplicaciones con gestión SQL
=== Tema 14: Caso de estudio complejo ===
En este apartado veremos paso a paso la creación de un software complejo.
=== Tema 15: Tesis final ===