Programación Orientada a Objetos y Eventos


Semestre:

Fecha de elaboración:

Febrero de 2014

Fecha de revisión:

Mayo de 2014

Elaborado por:

Francisco Betancourt Cejudo, Lorena Díaz González

Ciclo de formación:

Profesional

Área curricular:

Ciencias de la Disciplina

Tipo de unidad:

Teórica

Carácter de unidad:

Obligatoria

Clave:

PO01FP050010

Créditos:

10

Semestre:

Horas Teoría:

5

Horas Práctica:

0

Programas académicos en los que se imparte:

Licenciatura en Ciencias Áreas terminales en Matemáticas, Física, Bioquímica y Biología Molecular, y Ciencias Computacionales y Computación Científica

Prerrequisitos:

Implementa algoritmos y comprende los conceptos teóricos de los lenguajes de programación, tales como analizador léxico, sintáctico y semántico; funcionamiento de variables y constantes, datos y tipos de datos, expresiones y sentencias, manejo de excepciones y procedimientos, y tipos de datos abstractos y módulos.

Antecedentes Recomendadas:

Ninguna

Consecuentes Recomendadas:

  • Teoría de la Computación

Presentación de la unidad de aprendizaje:

En esta UA se introduce al sujeto en formación en el proceso de abstracción utilizando el paradigma orientado a objetos, al llevar un problema del mundo real a un modelo de computadora concentrándose en lo relevante dejando de lado los detalles de su implementación. Contribuye a desarrollar los hábitos en el proceso de abstracción, y la aplicación del paradigma orientado a objetos, en el análisis de objetos y situaciones, de sus características (propiedades) e identificación del comportamiento (métodos) con los que operan estos objetos.


Propósito de la unidad de aprendizaje:

Comprender los fundamentos del paradigma de programación orientado a objetos e implementar este paradigma usando el lenguaje de programación Java. Asimismo, desarrollar interfaces gráficas de usuarios (GUIs) complejas y aprender a manejar los diferentes tipos de eventos. Comprender aspectos avanzados de la POO.


Competencias profesionales:

Introducir al estudiante a la organización y arquitectura de los sistemas de cómputo.

Contribución al perfil de egreso:

Para el cumplimiento del perfil, se desarrolla la habilidad para enlazar conocimientos y técnicas de diferentes áreas de las ciencias exactas y naturales.


Secuencia temática:

  1. I Introducción a las clases y objetos.
    1. Tipos de lenguajes de programación orientados a objetos (POO): C++, java, ADA y Python.
    2. Conceptos y generalidades de clases, objetos, métodos y variables de instancia.
    3. Generalidades de lenguaje POO java: palabras reservadas y literales; tipos de datos primitivos; variables y constantes. Operadores de asignación, de incremento y decremento, y lógicos.
  2. II Estructuras de control y arreglos en un lenguaje POO.
    1. 2.1 Instrucciones de selección, simple if; doble if-else; múltiple switch.
    2. 2.2 Instrucciones de repetición while y do-while.
    3. 2.3 Arreglos unidimensionales y multidimensionales: paso de arreglos a los métodos.
  3. III Análisis detallado de los métodos y clases y objetos.
    1. 3.1 Métodos: importancia de los métodos establecer/obtener; tipos de acceso a métodos; métodos estáticos y campos estáticos; paso de argumentos a métodos; métodos con múltiples parámetros; sobrecarga de métodos.
    2. 3.2 Clases y objetos: control de acceso a los miembros; constructores predeterminados; constructores sobrecargados; enumeraciones; miembros de clase estáticos; recolección automática de basura; reutilización de software; abstracción de datos y encapsulamiento; paquetes de clases; instancias: creación y manejo de instancias.
  4. IV Herencia y polimorfismo.
    1. 4.1 Herencia: superclases y subclases; relaciones entre superclases y subclases; constructores en las subclases.
    2. 4.2 Polimorfismo: métodos abstractos; interfaces; clases abstractas e herencia múltiple; Métodos y clases finales.
  5. V Manejo de excepciones.
    1. 5.1 Generalidades acerca del manejo de excepciones en Java y jerarquía de excepciones.
    2. 5.2 Manejo de excepciones: bloques try-catch y finally; cláusula throws; uso de los métodos printStackTrace, getStackTrace y getMessage.
  6. VI Cadenas y caracteres.
    1. 6.1 Cadenas: constructores y métodos de la clase String.
    2. 6.2 Caracteres: Clse Character y StringTokenizer.
  7. VII Archivos y flujos.
    1. 7.1 Constructores y métodos de la clase File.
    2. 7.2 Archivos de texto de acceso secuencial.
    3. 7.3 Serialización de objetos.
  8. VIII Interfaces gráficas de usuario y manejo de eventos.
    1. 8.1Generalidades del manejo de evento y tipos de eventos.
    2. 8.1.1 Contrucción de interfaces gráficas de usuario GUIs: componentes Swing. JLabel, JTextField, JButton, JCheckBox, JRadioButton, JComboBox, JList, etc.
    3. 8.1.2 Construcción de interfaces gráficas de usuario: contenedores, posicionamiento y dimensionamiento de componentes.
    4. 8.1.3 Administradores de esquemas: FlowLayout, Borderlayout, GridLayout, BoxLayout, GridBagLayout.
    5. 8.1.4 Uso de paneles y marcos como administradores complejos: JPanel, JFrame JDesktopPanel, JInternalFrame, JTabbedPane.
    6. 8.2 Manejo de eventos en GUIs.
    7. 8.2.1 Tipos de eventos de acción, ratón y teclado. Interfaces de escucha.
    8. 8.2.2 Clases adaptadoras. Manejo de eventos usando clases internas anónimas. Objetos JPanel como área de dibujo usando diferentes eventos.
    9. 8.2.3 Objetos JSlider y su manejo de eventos.
    10. 8.2.4 Manejo de eventos en menús JMenu y menús contextuales JPopupMenu.
  9. IX Subprocesamiento múltiple.
    1. 9.1 Estados de los subprocesos.
    2. 9.2 Prioridades y programación de procesos.
    3. 9.3 Creación y ejecución de subprocesos: objetos Runnable y la clase Thread.
    4. 9.4 Sincronización de procesos: compartir datos con y sin sincronización.
    5. 9.5 Subprocesamiento múltiple con GUIs: SwingWorker.

Criterios de Evaluación:

  • Exámenes parciales: 40%
  • Examen final: 30%
  • Participación en clase: 10%
  • Búsqueda de información: 10%
  • Otra (especifique): Tareas: 10%


Bibliografía básica:

  • Deitel, H. y Deitel, P. 2008. Cómo programar en Java. 7a edición. Ed. Prentice Hall.

Bibliografía complementaria:

  • Gutiérrez, F., Duran, F. y Pimentel, E. 2007. Programación orientada a objetos con Java. Ed. Paranifo.