PROGRAMA DE CURSO ESCUELA DE INGENIERÍA DE SISTEMAS Y COMPUTACIÓN UNIVERSIDAD DEL VALLE Curso : Programación Interactiva Código : 750085M Prerrequisito : Introducción a la Programación Orientada a Objetos (750081M) Créditos :4 Intensidad Horaria : 4 horas semanales Habilitable : No Validable : Si OBJETIVOS OBJETIVO GENERAL Capacitar al estudiante en la solución de problemas mediante su modelación por el enfoque de objetos, el desarrollo de métodos con algoritmos estructurados y la programación en el computador mediante un lenguaje orientado a objetos. OBJETIVOS ESPECÍFICOS Al finalizar el curso el estudiante estará en capacidad de: Aplicar las técnicas y herramientas de desarrollo del lenguaje de programación Java para la construcción de programas. Usar una metodología para el desarrollo de soluciones a problemas, mediante el enfoque de objetos, en su modelamiento y diseño, y la utilización de un lenguaje de programación orientado a objetos para su implementación. Utilizar la documentación y entender la estructura de las librerías API, como herramientas listas para enfrentar la solución de diversos problemas. Aplicar técnicas de la programación basada en eventos y excepciones. Diseño y desarrollo de aplicaciones basadas en interfaces gráficas de usuario (GUI). Desarrollar aplicaciones multitarea mediante la utilización de hilos. Desarrollar aplicaciones que permitan el manejo de flujos o canales. Desarrollar aplicaciones que se desempeñen en el ambiente de las redes de Comunicaciones. Desarrollar aplicaciones que permitan la interacción con base de datos. Desarrollar aplicaciones que permitan la interacción entre uno o más clientes y un servidor. CONTENIDO Introducción y presentación del curso. El concepto de programas interactivos. La programación orientada a Objetos. Requerimientos de un programa. Caracterización de objetos, sus interacciones y mensajes. Metodología para el desarrollo de aplicaciones bajo el enfoque de objetos. Lenguaje de programación Java: Clases en Java. Estructura de las clases. Componentes de las clases. Creación de tipos de clase, de instancias. Construcción de sus propias clases, mensajes, datos miembros, ubicación en una jerarquía, diseño y construcción de los métodos. Control de acceso. Estructura de paquetes y clases del Java. Uso del paquete Math y de la clase Integer y otros APIS. Arreglos y uso de la clase Vector. Clases Abstractas e Interfaces. Desarrollo de applets. Ciclo de vida un applet. Uso de elementos del paquete AWT y del Graphics. Introducción al paquete Swing y conceptos de contenedores y manejadores de distribución de contenido. Uso de editores para desarrollo de programas. Introducción al desarrollo con el ambiente visual Forte. Otros entornos visuales y de texto. Programación orientada a eventos: modelo de eventos y escuchas Java. Implementación de manejadores de eventos: ActionListener, ComponentListener, ItemListener, MouseListener, KeyListener, MouseMotionListener, WindowListener. Manejo de excepciones. Tipo de excepciones. Utilización de las sentencias try, catch y throw. Excepciones propias. Desarrollo de interfaces gráficas de usuario con componentes gráficos. Familiarización con el ambiente visual de desarrollo para Java visual Forte. Otros entornos visuales y de texto. Manejo de hilos: introducción a la programación concurrente orientada a objetos. Creación de programas multitarea. Uso de la clase Thread y la interfaz Runnable. Uso de métodos sincronizados. Aplicaciones en multimedia. Manejo de flujos y archivos: uso del paquete java.io para el manejo de flujos de entrada/salida. Concepto de flujo, clase Stream, clase File, clase RandomAccessFile, clases InputStreamReader y OutputStreamWriter. Serialización de objetos. Conectividad a Bases de Datos: Introducción a JDBC, el api JDBC, drivers JDBC, uso del paquete java.sql. Introducción al SQL para la construcción de consultas en Java. Aplicaciones cliente-servidor: Trabajo en redes (Networking), conceptos básicos. Carga de documentos desde un URL a un applet Java. Lectura de un archivo a través de una conexión URL. El paquete java.net, URL, programación de sockets, introducción al manejo de puertos. Desarrollo de un programa cliente y desarrollo de un programa servidor. METODOLOGIA El curso se ofrece en sesiones teórico-prácticas con una intensidad de 4 horas semanales. Los aspectos teóricos, sus ejemplos y aplicaciones prácticas por parte del profesor se darán en sesiones magistrales en el salón de clase. Las sesiones prácticas dirigidas por el profesor o talleres se harán semanalmente en el laboratorio. Se contará con la asistencia de un estudiante monitor. Los talleres y tareas corresponden a aplicaciones y desarrollos prácticos de los temas tratados en las clases magistrales, que deben ser realizadas por los estudiantes y entregadas a su profesor en la fecha y medios en que se indique. EVALUACION Tipo de Evaluación Tareas, Talleres, Quices Primer Examen Parcial Segundo Examen Parcial Proyecto Final Porcentaje 20% 30% 30% 20% BIBLIOGRAFIA Deitel H. M., Deitel P.J. Cómo programar en Java. Prentice-Hall, Hispanoamericana, S.A. segunda edición, 1998, México. Lynn, S. Andrea. Interactive programming in Java. MIT, 1999, USA. http://www.mkp.com/ipij. Lewis Bil, Berg Daniel J. Multithread programming with Java technology. Sun Microsystems, Inc. 2000, USA. Hall, Marty. Servlets y JavaServer Pages. Pearson Education, 2001, Mexico. Allamaraju S, Avedal Karl, et al. Professional Java Server Programming J2EE Edition. Wrox Press. 2000 USA. Wang. Paul. Java con programación orientada a objetos y aplicaciones en la WWW. International Thomson, 2000, México. Deitel H. M., Deitel P.J. Java: How to program, Prentice-Hall, tercera edición, 1999, USA. Schildt, H. Java2: manual de referencia. Osborne McGraw-Hill. Cuarta edición, 2002, España. Lea Doug. Programación concurrente en Java. Pearson Education, segunda edición, 2001, España. Froufe, Agustin. Java 2 Manual de usuario y tutorial. Editorial Ra-Ma, segunda edición, España 2001. Arnow, David. Weiss Gerald. Introducción a la programación con Java- un enfoque orientado a objetos. Addison Wesley. Madrid , 2001. Tafur, J., Angulo, H., Gomez, S. Programación moderna de computadores: algoritmos, objetos y Java. Edita NuevaU, Cali, 2001. Sitios web con contenido de Java.