Semana 1
|
-
Concepto de ordenador como autómata.
-
Concepto de lenguaje máquina: datos e instrucciones.
-
Concepto de lenguajes de alto y bajo nivel.
-
Concepto de intérprete y lenguaje interpretado.
-
Concepto de máquina virtual.
-
Concepto de compilador y lenguaje compilado.
-
Concepto de entorno de ejecución (runtime)
-
Complejidad del problema: necesidad de la Ingeniería del Software.
-
Instalar una máquina virtual para las principales plataformas del mercado.
-
Instalar el IDE Eclipse (Windows XP)
-
Instalar el IDE NetBeans (Windows XP)
-
Instalar el IDE XCode (Mac OS X)
-
Instalar el IDE Eclipse (Mac OS X)
-
Instalar el IDE NetBeans (Mac OS X)
-
Compilar programas que consten de una sola clase (editor + línea de órdenes).
-
Crear makefiles que compilen programas que consten de una sola clase. (editor + línea de órdenes)
-
Compilar programas que consten de varios archivos. (línea de órdenes)
-
Crear makefiles que compilen programas que consten de varios archivos (editor + línea de órdenes)
-
Utilizar varios IDEs para compilar programas que consten una sola clase.
-
Utilizar varios IDEs para compilar programas que consten de varios archivos
-
Utilizar las directrices externas de compilación (parámetros del compilador).
-
Utilizar las directrices externas de ejecución (parámetros de la máquina virtual).
|
Semana 2
|
-
Concepto de tipo de datos.
-
Concepto de tipo de datos de referencia.
-
Concepto de variable: nombre, dirección, longitud, tipo.
-
Concepto de definición de tipo.
-
Concepto de declaración de variables, y de comprobación estricta de tipos.
-
Concepto de compatibilidad de tipos.
-
Concepto de refundición de tipos.
-
Concepto elemental de clase.
-
Concepto de ámbito de una variable: de clase, de ejemplar, local.
-
Concepto de duración de una variable: de clase, de ejemplar, local.
-
Tipos de datos enteros (tamaño, alcance y precisión).
-
El problema del desbordamiento.
-
Tipos de datos de coma flotante (tamaño, alcance y precisión).
-
El problema del redondeo.
-
Números no representables: NaN.
-
Concepto de carácter.
-
Codificación de caracteres. (Estandar ASCII, estándar UTF)
-
Listas de caracteres.
-
Concepto de byte.
-
Listas de bytes.
-
La clase
String y sus métodos.
-
Versiones mutables de
String .
-
Clases de envoltorio y sus principales métodos.
-
Tipos enumerados.
|
Semana 3
|
-
Mecanismos básicos de E/S en la terminal (System.in, System.out, println, printf).
-
La clase
Console .
-
La clase
Scanner y aplicar sus métodos.
-
Lectura y escritura de valores numéricos del teclado.
-
Lectura y escritura de valores alfanuméricos del teclado.
-
Paso de valores a un programa a través de la línea de órdenes.
-
Concepto de operador.
-
Taxonomía de operadores en función del número de operandos.
-
Operadores unarios (incremento, decremento, signo).
-
Operadores aritméticos.
-
Operadores de comparación para números.
-
Mecanismo de comparación de objetos.
-
Mecanismo de comparación de cadenas.
-
Operadores lógicos. Cortocircuitos.
-
Operadores de bits.
-
Operador ternario ?.
-
Ejecución secuencial.
-
Estructuras de control alternativas.
-
Estructuras de control repetitivas.
-
Estructuras de control selectivas.
-
Algoritmo de búsqueda secuencial.
-
Algoritmo de búsqueda binaria.
-
Algoritmo de ordenación por burbuja.
-
No se debe reinventar la rueda.
Arrays , Collections .
|
Semana 4
|
-
Concepto básico de clase: atributos, métodos, variables de clase, variables de ejemplar.
-
Concepto de paquete ("package").
-
Mecanismo de declaración e invocación de métodos.
-
Mecanismo de paso de parámetros de tipos primitivos y de referencia.
-
Concepto de métodos de acceso.
-
Modificadores de acceso a clases, atributos y métodos.
-
Concepto de polimorfismo.
-
Herramienta jar para la creación de archivos.
-
Metodología
make /makefile .
-
Técnicas elementales de depuración (impresión en pantalla).
-
Mecanismo de asertos.
-
Conceptos básicos de depurador y depuración.
-
Configuración de compilación necesaria para utilizar un depurador basado en IDE.
-
Puntos de ruptura.
-
Valores de las variables del programa, incluyendo matrices y tipos de referencia.
-
Valor de una expresión en un programa en ejecución.
-
Ejecutar un programa hasta llegar a una determinada línea.
-
Proseguir la ejecución de un programa detenido en un depurador.
-
Finalizar la ejecución de un programa desde un depurador.
-
Depurar un programa basado en hilos.
-
Técnicas de depuración basadas en la línea de órdenes.
|
Semana 5
|
-
Mecanismo de recolección automática de basura.
-
Diferencia entre clases mutables y clases inmutables.
-
Diferencia entre colecciones mutables e inmutables.
-
Optimizar el consumo de memoria de una aplicación.
-
Concepto de herencia.
-
Derivar clases por herencia.
-
Diferencia entre herencia y composición, distinguiendo cuando debe usarse cada método.
-
Aplicación de la herencia para la derivación de interfaces.
-
Ascenso de mensajes a lo largo de la jerarquía de herencia.
-
Importancia de la jerarquía de herencia en aplicaciones controladas por eventos.
-
Diferencia entre herencia e implementación.
-
Crear clases abstractas.
-
Concepto de clases adaptadoras. Conocer algunos casos concretos.
-
Precondición, postcondición y programación bajo contrato.
-
Concepto de aserto.
-
Conocer y aplicar la directriz -ea
-
Aplicar asertos en distintos métodos.
-
Aplicar los asertos en tareas comunes de programación.
|
Semana 6
|
-
Concepto de
interface .
-
Definir interfaces y de crear clases que las implementen.
-
Jerarquía de colecciones como caso particular.
-
Conveniencia del uso de interfaces en el diseño de aplicaciones.
-
Mecanismo de ascenso por la jerarquía de interfaces en el paso de mensajes.
-
Concepto de protocolo como origen de las interfaces.
-
La interfaz
TextUtils . Construir una implementación vacía. Añadir asertos.
-
Una implementación de
TextUtils .
-
Concepto de clase autosintonizada.
-
La clase
System .
-
Concepto de archivo de texto.
-
Concepto de importación y exportación de datos como método de intercambio de información.
-
Tipos básicos de organización de archivos de texto: un campo por línea, delimitado, en columnas.
-
Volcado hexadecimal para comprender los archivos de texto.
-
Flujos de texto más importantes. Apertura, lectura/escritura/adición, cierre.
-
Leer y escribir tablas numéricas en archivos de texto. (opcional)
-
Leer y escribir tablas alfanuméricas en archivos de texto.
-
Leer y escribir tablas mixtas (numéricas y alfanuméricas) en archivos de texto. (opcional)
-
Importar y exportar el estado de una clase en todo o en parte.
-
Escribir una clase que pueda leer y escribir archivos de texto con los formatos anteriores. Este archivo será un mecanismo de conversión para archivos de texto.
|
Semana 7
|
-
Concepto de archivo binario.
-
Concepto de persistencia (activación y pasivación).
-
Concepto de archivo binario homogéneo e inhomogéneo.
-
Flujos binarios más importantes.
-
Flujos binarios más importantes para la persistencia.
-
Volcado hexadecimal para comprender los archivos binarios.
-
Leer y escribir archivos binarios cuyo contenido sean tablas numéricas y/o alfanuméricas.
-
Leer y escribir archivos binarios cuyo contenido sean colecciones.
-
Leer y escribir archivos binarios cuyo contenido sean componentes (en lo posible).
-
Escribir un programa que pueda leer y escribir sus propios archivos binarios, y también importar y exportar información.
-
Pasivar y activar partes de una interfaz gráfica de usuario.
-
El paso siguiente: una introducción a Interface Builder.
-
Metas de la genericidad.
-
Concepto de clases parametrizables.
-
Forma de crear clases parametrizadas por uno o más tipos.
-
Forma de parametrizar colecciones.
|
Semana 8
|
-
Jerarquías de interfaces que sirven como base para el mecanismo de colecciones en Java.
-
Derivaciones e implementaciones de
Set
.
-
Derivaciones e implementaciones de
List
.
-
Derivaciones e implementaciones de
Queue
.
-
Derivaciones e implementaciones de
Map
.
-
La clase
Collections y sus métodos.
-
La clase
Vector<E>
y sus métodos.
|
Semana 9
|
-
Concepto de hilo.
-
Estados posibles de un hilo.
-
Las clases
Runnable y Thread .
-
Problemas de colisión.
-
Concepto de flotas de hilos.
-
Concepto de grupos de hilos
-
Ventajas del uso de hilos en sistemas de varios núcleos y aplicar ese conocimiento.
-
AWT y Swing, introducción.
-
Componentes, contenedores y disposiciones.
-
La clase
JFrame .
-
La clase
JFileChooser .
-
La clase
JPanel .
-
Las clases
JTabbedPane y JDesktopPane .
-
Concepto de propiedades de una aplicación: la clase
Properties .
|
Semana 10
|
-
Las clases de menús que ofrece Swing.
-
El problema del hilo de ejecución de Swing.
-
Mecanismos de implementación de oyentes.
-
Implementar y aplicar menús con imágenes.
-
Implementar y aplicar menús con casillas de verificación.
-
Implementar y aplicar menús con botones de radio.
-
Implementar y aplicar menús emergentes.
-
Implementar una clase auxiliar para la creación de menús. Aplicar esa clase para construir de nuevo los ejemplos vistos. ¿Supone realmente un ahorro de tiempo o esfuerzo?
-
Distintos tipos de botones que ofrece Swing.
-
Aplicación a botones de los mecanismos de implementación de oyentes .
-
Mecanismo de creación de oyentes basado en
AbstractAction .
-
La clase JButton.
-
La clase JToolBar para barras de herramientas.
-
La clase JCheckBox para casillas de verificación.
-
La clase JRadioButton para gráficos de botones de radio.
-
La clase JComboBox para combos.
-
Menús jerárquicos.
-
Menús emergentes.
-
Diseñar una clase auxiliar para botones y utilizarla para implementar los ejemplos vistos. ¿Supone realmente un ahorro de tiempo o esfuerzo?
|
Semana 11
|
-
Jerarquía de componentes de texto que ofrece Swing.
-
El componente JTextField.
-
Acciones asociadas a campos de texto.
-
Eventos asociados a campos de texto.
-
La clase
JPassword .
-
La clase
JTextArea .
-
Eventos asociados a zonas de texto.
-
Acciones de edición (cortar, copiar pegar).
-
Concepto de cuadro de diálogo.
-
La clase
JOptionPane y sus principales métodos.
-
Cuadros de diálogo de advertencia.
-
Cuadros de diálogo de confirmación.
-
Cuadros de diálogo para solicitar información al usuario.
-
Cuadros de diálogo para proporcionar información al usuario.
-
Cuadros de diálogo que ofrezcan distintos tipos de opciones al usuario.
-
La clase
JDialog y sus principales métodos.
-
Una estrategia para establecer comunicaciones entre el diálogo y el modelo subyacente.
|
Semana 12
|
-
El componente
JList y el modelo predefinido asociado.
-
Las filas de un
JList (selección, adición, eliminación, modificación).
-
El componente
JTable y el modelo predefinido asociado.
-
Manejar las filas y columnas de un ejemplar de
JTable (selección, adición, eliminación, modificación).
-
Aplicación: ser capaz de conectar un ejemplar
JTable con una o más tablas de una base de datos mediante JDBC.
|
Semana 13
|
-
Concepto applet.
-
Métodos de un applet.
-
Limitaciones de ejecución y acceso de un applet.
-
Applets con acceso a archivos locales y remotos.
-
Applets firmados.
-
Concepto de Java Web Start
-
Utilizar archivos
.jnlp
|
Semana 14
|
-
TBD
|
Semana 15
|
-
TBD
|