Indice Sistemas de Información Curso 2009-2010 Syllabus
2009-2010
Listado siguiente

Objetivos del Curso

Semana 1
  1. Concepto de ordenador como autómata.
  2. Concepto de lenguaje máquina: datos e instrucciones.
  3. Concepto de lenguajes de alto y bajo nivel.
  4. Concepto de intérprete y lenguaje interpretado.
  5. Concepto de máquina virtual.
  6. Concepto de compilador y lenguaje compilado.
  7. Concepto de entorno de ejecución (runtime)
  8. Complejidad del problema: necesidad de la Ingeniería del Software.

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