Curso de Programación en Java (Programa detallado)

Objetivo:

Dotar al alumno de la metodología y los fundamentos de la programación en Java usando la plataforma J2SE (Java 2 Standard Edition) y prepararlo para enfrentarse a la programación enfocada a servidor usando la plataforma Java EE (Java Enterprise Edition), una de las formas de programar en Java más ampliamente extendida a nivel empresarial. Al finalizar el curso, el alumno estará capacitado para desarrollar aplicaciones sencillas enfocadas al cliente e iniciarse en la programación orientada a servidor.

Dirigido a:

A cualquier persona interesada en la programación. Desde personas que no conocen ningún lenguaje de programación, pero quieren iniciarse en un mundo que cada día demanda más profesionales cualificados, hasta programadores que conocen otros lenguajes, analistas, jefes de proyecto, consultores, etc. que formen parte del departamento de Informática de una empresa. Muy recomendable para el seguimiento del curso, aunque no imprescindible, es tener conocimientos de otros lenguajes de programación como C, C++, Pascal, Delphi, Perl, Python, C#, etc. o, en su defecto, conocimiento de las estructuras básicas de programación empleadas en todos los lenguajes, como bucles, condicionales, declaración de variables, etc.

Requisitos:

Deseable un mínimo de 1 GB de RAM, 850 MHz de frecuencia de trabajo del microprocesador, espacio disponible en disco duro superior a 500 MB, tarjeta de sonido básica y tarjeta gráfica básica.

El software necesario para programar en Java es gratuito y está a disposición de cualquier persona en http://java.oracle.com. Su instalación y configuración se explican en el primer tema del curso.

Programa del curso

1.- Introducción

Objetivo

  • Entender qué es un programa. 
  • Tomar contacto con el lenguaje Java. 
  • Obtener las herramientas necesarias para el seguimiento del curso. 
  • Instalar estas herramientas y aprender su manejo.
  • Conocer y entender la programación orientada a objetos.

Contenido

  1. Introducción.
    1. Objetivos 
    2. Cuestiones básicas de Java
    3. Lenguajes de programación
    4.  Software Java
    5. Descarga e instalación de JDK
    6. Programación orientada a objetos
    7. Objetos
    8. Programa Java
    9. Escribir un programa Java
    10. Entorno de desarrollo
    11. Resumen 
    12. Ejemplos
  2. Ejercicios
    1. Ejercicio. Calcular el cuadrado de una suma.

2.- Variables

Objetivo

  • Entender qué es una variable.
  • Aprender a utilizar una variable, cómo declararla, inicializarla y modificar su valor.
  • Entender las estructuras básicas que se utilizan en programación.

Contenido

  1. Variables.
    1. Objetivos.
    2. Concepto de variable
    3. Proceso de creación de una variable
    4. Casting o transformaciones de tipo
    5. Alcance de variables
    6.  Estructuras básicas de programación
  2. Ejercicios
    1. Ejercicio 1. Ecuación de segundo grado
    2. Ejercicio 2. Sintaxis.
    3. Ejercicio 3. Clase Math.
    4. Ejercicio 4. Enteros.

3.- Clase String. Introducción a los flujos

Objetivo

  • Conocer la clase java.lang.String perteneciente a Java.
  • Aprender a crear y utilizar una variable de tipo String.
  • Entender sus usos más normales. 
  • Conocer los métodos más comunes del API java.lang.String.

Contenido

  1. Clase String. Introducción a los flujos.
    1. Objetivos.
    2. Clase String.
    3. Introducción a los flujos (streams)
  2. Ejercicios
    1. Ejercicio 1. Clase String.
    2. Ejercicio 2. Contar letras.
    3. Ejercicio 3. Contar letras II.
    4. Ejercicio 4. Comprobar NIF. (Ejercicio obligatorio)
    5. Ejercicio 5. Volúmenes.
    6. Ejercicio 6. Adivinar número.

4.- Excepciones

Objetivo

  • Conocer y entender el significado de las excepciones en Java.
  • Conocer las clases java.lang.Throwable y java.lang.Exception.
  • Conocer las clases de Excepción más comunes en Java.
  • Aprender el manejo de excepciones en Java.

Contenido

  1. Excepciones.
    1. Objetivos.
    2. Definición.
    3. Bloque try ... catch ... finally.
    4. throws
    5. Cómo tratar las excepciones.
  2. Ejercicios
    1. Ejercicio 1. Excepciones trabajando con números.
    2. Ejercicio 2. Sumar números.

5.- Arrays

Objetivo

  • Conocer qué son los arrays.
  • Entender cómo se define y utiliza un array. 
  • Conocer los métodos más comunes sobre los arrays.
  • Utilizar los arrays en sus diferentes variantes.

Contenido

  1. Arrays.
    1. Objetivos.
    2. Concepto de array.
    3. Ejemplos.
  2. Ejercicios
    1. Ejercicio 1. Ordenar un array.
    2. Ejercicio 2. Calcular el factorial.
    3. Ejercicio 3. Rellenar el código que falta.

6.- Constructores, herencia e interfaces

Objetivo

  • Entender el uso de los constructores en Java.
  • Entender la herencia y el polimorfismo en Java.

Contenido

  1. Constructores, herencia e interfaces
    1. Objetivo
    2. Constructores.
    3. Destructores
    4. Palabra reservada this
    5. Sobrecarga de métodos
    6. Sobrecarga de constructores
    7. Herencia
    8. Polimorfismo
    9. Palabra reservada super
    10. Interfaces
    11. Contenido de una interface
    12. Implementación de interfaces en una clase
    13. Creación de interfaces propias
    14. Interfaces muy usadas que forman parte de la API
  2. Ejercicios
    1. Ejercicio 1. Línea de comandos
    2. Ejercicio 2. Constructor
    3. Ejercicio 3. Instancias
    4. Ejercicio 4. Instancias 
    5. Ejercicio 5. Herencia

7.- Paquetes y modificadores de acceso

Objetivo

  • Entender que son los paquetes en Java.
  • Aprender a manejar el concepto de paquete y a organizar las clases de un proyecto.
  • Conocer los modificadores de acceso y su utilidad.
  • Usar modificadores en aplicaciones Java.

Contenido

  1. Paquetes y modificadores de acceso
    1. Objetivo
    2.  Paquetes
    3. Creación de paquetes propios
    4. Ejecución de clases de paquetes externos
    5. Modificadores de acceso
    6.  Tipos de modificadores
  2. Ejercicios
    1. Ejercicio 1. Paquetes
    2. Ejercicio 2. Usar paquetes ya creados

8.- Gestión de ficheros

Objetivo

  • Se va a estudiar, fundamentalmente, la metodología de trabajo para que un programa Java realice las siguientes operaciones:

    • Lectura de datos almacenados en un fichero local.
    • Escritura de datos en un fichero, que no tiene que existir a priori.

Contenido

  1. Gestión de ficheros
    1. Objetivos
    2. Flujos
    3. Clase File
  2. Ejercicios
    1. Ejercicio1. Leer un fichero
    2. Ejercicio 2. Copiar ficheros
    3. Ejercicio 3. Creación, edición y borrado de ficheros.
    4. Ejercicio 4. Manejo de ficheros
    5. Ejercicio 5. Manejo de carpetas

9.- Estructuras de datos. Paquete java.util

Objetivo

  • Entender la estructura de datos que Java utiliza.
  • Estudiar el paquete java.util y entender su uso.

Contenido

  1. Estructuras de datos. Paquete java.util
    1. Objetivos
    2. Clase StringBuffer
    3. Clase StringTokenizer
    4. Clase Vector
    5. Clase Hashtable
  2. Ejercicios
    1. Ejercicio 1. StringBuffer
    2. Ejercicio 2. StringTokenizer
    3. Ejercicio 3. Vectores
    4. Ejercicio 4. Buscar ficheros
    5. Ejercicio 5. HashTable
    6. Ejercicio 6. Contar palabras

10.- Gestión del tiempo

Objetivo

  • Entender como se encarga Java de la gestión del tiempo.
  • Entender la clase Date del paquete java.util
  • Entender la clase Calendar del paquete java.util
  • Entender la clase GregorianCalendar del paquete java.util
  • Entender la clase TimeZone del paquete java.util

Contenido

  1. Gestión del tiempo
    1. Objetivos
    2. Gestión del tiempo en Java
    3. Clases más utilizadas 
  2. Ejercicios
    1. Ejercicio 1. DateFormat
    2. Ejercicio 2. Formatos numéricos
    3. Ejercicio 3. GregorianCalendar
    4. Ejercicio 4. Cálculos con fechas.

11.- Threads

Objetivo

  • Entender qué es un thread.
  • Crear y manejar threads
  • Entender y saber utilizar la clase java.lang.Thread

Contenido

  1. Threads
    1. Objetivo
    2. Threads
    3. Clase Thread
    4. Creación de hilos
    5. Ciclo de vida de un hilo
    6. Sincronía de hilos
  2. Ejercicios
    1. Ejercicio 1. Gestión de hilos
    2. Ejercicio 2. Interface Runnable
    3. Ejercicio 3. Calcular fechas con hilos
    4. Ejercicio 4. Buscar insultos

12.- Interfaces gráficas de usuario (GUIs)

Objetivo

  • Estudiar las clases fundamentales del paquete java.awt.
  • Estudiar las clases fundamentales del paquete java.swing.

Contenido

  1. Interfaces gráficas de usuario (GUIs)
    1. Objetivos
    2. Concepto de interface gráfica
    3. Estructura AWT
    4. Elementos de una GUI
    5. Agregar componentes a un contenedor
    6. Métodos de Component muy usados en el diseño de GUIs
    7. Estudio de componentes
    8. Administradores de diseño
    9. Otros contenedores
    10. Canvas
    11. Menús
  2. Ejercicios
    1. Ejercicio 1. Crear una ventana con componentes (Ejercicio obligatorio)
    2. Ejercicio 2. Swing

13.- Gestión de eventos

Objetivo

  • Entender cómo se encarga Java de gestionar los eventos que se producen.
  • Conocer los posibles tipos de eventos.
  • Conocer cómo manejar eventos en las aplicaciones.

Contenido

  1. Gestión de eventos
    1. Objetivos
    2. Qué es un evento
    3. Tipos de eventos
    4. Gestión de eventos
    5. Metodología de gestión de eventos
    6. Eventos de acción
    7. Eventos de ventana 
    8. Clases adaptadoras 
    9. Eventos de ratón 
    10. Eventos de teclado
  2. Ejercicios
    1. Ejercicio 1. Eventos de botón.
    2. Ejercicio 2. Eventos de botón 2
    3. Ejercicio 3. Juego de capitales
    4. Ejercicio 4. Virus maligno

14.- Programación en red. Paquete java.net

Objetivo

  • Las clases que van a estudiarse son URL, URLConnection, InetAddress, Socket y ServerSocket.

    Antes de estudiar las clases del paquete se va a explicar, a grandes rasgos, el esquema de comunicación entre programas basado en la arquitectura cliente-servidor.

Contenido

  1. Programación en red. Paquete java.net
    1. Objetivos
    2. Programación en red
    3. Arquitectura cliente-servidor
    4. Tipos de protocolo
    5. Identificación de un servidor
    6. Clase URL
    7. getInputStream y getOutputStream
    8. Clases Socket y ServerSocket
    9. Clase ServerSocket
    10. Clase Socket
  2. Ejercicios
    1. Ejercicio. Crear un chat