Universidad La Salle. Ingeniería Cibernetica y en sistemas computacionales Lenguajes de programación 3. Grupo 412 Horario: 7 a 9 a.m. Lunes, Miercoles y Viernes Sala K, Campus II 23 de Enero a 2 de junio 2006. (46 clases) Objetivo. Estudiar técnicas de programación orientada a objetos, para la construcción de aplicaciones. Software: Win32 Java 1.5.x Software abierto: Eclipse, Tomcat, Framework Spring, HSQLDB, Hibernate, Axis, JUnit, Ant, Maven, Cruise Control. (Todo el software sera entragado en un CD, por el profesor a mas tardar el 30 de enero. Cada alumno se hara responsable de copiar al CD, y traerlo clase con clase) DIA, programa de diagramación de dominio público Conocimientos necesarios: Diseño de Algoritmos Estructuras de datos Organización de archivos Lenguaje C Profesor: Gustavo De la Cruz Tovar Egresado de ingeniería cibernética y Sistemas Computacionales. Generación 1990-1995 Titulado en 1996, con la tésis de "Integración de aplicaciones con objetos distribuídos", obteniendo el título en diciembre de 1996. Estudio una maestria en Métodos matemáticos en finanzas de 1999 a 2001 Con experiencia de ocho años impartiendo clases en ULSA (desde agosto de 1997) La materia de Temas selectos de computo con experiencia de 5 veces dando clases (desde enero de 1998) Trabaja en el IMSS como titular de la Divisón de Interoperabilidad, a cargo de la integración de las diversas plataformas tecnológicas, usando Java como herramienta de integración Anteriormente trabajó para Algorithmics México,Ixe Banco, Cromasoft y el LCI de ULSA Especializado en teoría de objetos y su aplicación en tecnologías distribuídas Seguidor de la filosofía de software abierto, UNIX Su lenguaje favorito es Java, aunque C es el mejor. La razón por la que da clase es para ayudar a los alumnos de La Salle a descubrir como desenvolverse en el ambito de ingeniería y aplicarla. Le pueden decir Gustavo, Gus. No es necesario decirle ingeniero o hablarle de usted Gusta de literatura de ciencia ficción, fantasía. Musica, gusta de la música clasica. En tiempo libre gusta de oir musica, leer, ir al cine, caminar, nadar y estar con sus amigos. Temario Teoría. (8 clases) Tema I. Introducción a la orientación a objetos. (2 clases) 1. Orientación a objetos. 2. Objeto, Responsabilidades, Mensajes, Interfases 3. Cliente/proveedor, Clase, Herencia, Delegación, Polimorfismo, Encapsulamiento, Componente, Marco de aplicaciones, Patrones. 4. Métodos, Variables, Ligadura dinámica 5. Aplicaciones orientadas a objetos. 6. UML Tema II. Encapsulamiento, Herencia y Polimorfismo. (6 clases) 1. Encapsulamiento e interfases. 2. Técnicas de encapsulamiento 3. Delegación 4. Herencia. 5. Técnicas de herencia. 6. Polimorfismo. 7. Técnicas de polimorfismo. Laboratorio (31 clases) Parte I. Java Básico (17 clases) Tema I. Fundamentos de programación Java. (6 clases) 1. Compilación y ejecución de Java. 2. Fundamentos del lenguaje. 3. Manejo de excepciones. 4. Pruebas unitarias con JUnit 5. Fundamentos de interfases gráficas con Swing. 6. Empaquetamiento de aplicaciones Java. Ant 6. Ejercicios Tema II. Algoritmos y estructuras de datos. (3 clases) 1. Algoritmos sobre arreglos. 2. Manejo de cadenas de caracteres. 3. Recursividad. 4. Listas, Conjuntos, Tablas Hash y Arboles 5. Biblioteca de Estructuras de datos Java (List, Set, Map) Tema III. Organización de archivos en Java (3 clases) 1. Flujos de entrada/salida 2. Algoritmos de organización de archivos Tema IV. Interfases de usuario con Java (3 clases) 1. Java Foundation Classes 2. Componentes AWT y Swing 3. Manejo de eventos 4. Model-View-Controller Tema V. Puntos específicos de programación Java (2 clases) 1. Tipos genéricos 2. Enumeraciones 3. Anotaciones 4. Componentes JavaBeans Parte II. Java Avanzado (14 clases) Tema VI. Multihilado (2 clases) 1. Threads. 2. Ciclo de vida de threads 3. Manejo de Concurrencia 4. Solución de problemas de concurrencia Tema VII. Gráficos con Java (2 clases) 1. Algoritmos gráficos 2. Animación. Tema VIII. Aplicaciones en Red con Java. (2 clases) 1. Modelo cliente/servidor 2. Manipulación de sockets. Tema IX. Acceso a base de datos. (2 clases) 1. JDBC 2. Hibernate Tema X. Aplicaciones Web (2 clases) 1. Java Server Pages 2. Java Web Services Tema XI. Spring. (4 clases) 1. Spring básico. 2. Acceso a JDBC y Hibernate 3. Aplicaciones Model-View-Controller 4. Mensajes e invocaciones remotas Bibliografia Java Básico Deitel & Deitel. ¿ Cómo programar en Java?. Quinta edición. Ed. Pearson Eckel, Bruce. Pensando en Java. Segunda Edición. Ed. Pearson. Bell, Douglas. Java para Estudiantes. Tercera Edición. Ed. Pearson. Sierra, Kathy. Head First Java. Ed. O´Reilly Camacho, David. Programación, Algoritmos y ejercicios resueltos en Java. Ed. Pearson. Ceballos, Francisco. Java 2, Curso de Programación. Tercera Edición. Ed. AlfaOmega Arnold, Ken. Lenguaje de programación Java. Tercera Edición Ed. Pearson. Java Avanzado Burke, Erick. Java Extreme Programming. Ed. O'Reilly. Ceballos, Francisco. Java 2,Interfases gráficas y aplicaciones para Internet. Ed. AlfaOmega Flanagan, David.Java 1.5, A developer's notebook. Ed. O´Reilly Tate, Bruce. Spring: A developer´s notebook. Ed. O´Reilly. Froufe, Agustin. Java 2 Micro Edition. Manual de usuario y tutorial. Ed. AlfaOmega. Prieto, Manuel. Desarrollo de juegos con J2ME. Ed. AlfaOmega Darwin, Ian. Java Cookbook. Ed. O´Reilly Cooper, James. Patrones en Java. Ed. Pearson. Teoría de orientación a Objetos Sintes, Anthony. Aprendiendo programación orientada a objetos. Ed. Pearson. Meyer, Bertrand. Construcción de software orientado a objetos. Segunda Edicion. Ed. Pearson. West, David. Object Thinking. Ed. Microsoft Press. Beck, Kent. Extreme Programming Explained. Ed. Addison Wesley Gamma, Erich. Patrones de diseño. Ed. Pearson. Booch, Grady. Diseño orientado a objetos con aplicaciones. Tercer Edición. Ed. Pearson. UML Fowler, Martin. UML Gota a Gota. Ed. Pearson. Evaluación 10% Tareas y Participación de prácticas en laboratorio 25% Tres Examenes 25% Tres Prácticas en equipo 40% Proyecto Final Examenes. Se aplicaran 3 exámenes Primer Examen - Teórico, por escrito, individual. Tema I y II Teoria. Tema I. Lenguaje Java Segundo Examen - Práctico,en la sala de computo, individual Tercer Examen - Práctico,en la sala de computo, en equipo Tareas Actividad individual Consisten en detallar puntos vistos en clase. Las tares se deben subir a una página de WWW del alumno Partición de Practicas en laboratorio Se harán en equipos de 2 a 4 personas Consiste en la realización de actividades en laboratorio. Cada práctica de laboratorio consiste en la construcción de un producto de software Prácticas en equipo Se harán en equipos de 2 a 4 personas Se entregaran 4 prácticas, basadas en los conceptos dados en clases. Se deberá entregar el código fuente de manera electrónica. El trabajo se debe subir a una página de WWW del equipo Proyecto Final. Se harán en equipos de 2 a 4 personas El proyecto final consiste en el desarrollo de una aplicación, utilizando técnicas de orientación a objetos. Comportamiento en clase. + Considerar que estan en Universidad y el comportamiento esperado es de gente joven con criterio. + Al profesor lo que mas le interesa es que los alumnos busquen el conocimiento, no que sea impuesto. Es valido discutir con orden y uso de la razón puntos que no se esté de acuerdo con el profesor. + Evitar la cultura del silencio en la cual no se le diga al profesor posibles fallas, actitudes subjetivas, falta de claridad al explicar o en dar instrucciones. + Mas que un profesor que manda, es un profesor que GUIA a los alumnos en una dinámica en la cual se forma un equipo de trabajo y no un ambiente de quien tiene más autoridad + La clase comienza a las 07:00 am, Se concluira tipicamente a las 08:50 am dejando 10 minutos para aclarar dudas personales con el profesor. + No es necesario pedir permiso para salir del salón, pero se debe hacer con orden. Favor de salir del salón para asuntos que no distraigan del curso de la clase. + No usar el tiempo de la clase para realizar actividades ajenas a la misma (tareas de otra materia, navegación en Internet) + La asistencia a clase es obligatoria. La asistencia se tomará al FINAL de la clase. + La asistencia a clase es primordial. A parte de ser aplicado el reglamento ULSA (80 % asistencia para derecho a calificación final y 60% para extraordinario); para esta materia, cada clase está¡ orientada a tener experiencias prácticas y se incluye como parte de la evaluación la asistencia diaria. La asistencia implica estar en toda la clase y no solo pasar lista, se debe tener puntualidad y seriedad en llegada, estancia y salida en clase y trabajar en la clase. + En caso de no poder asistir a clase, es responsabilidad del alumno estudiar de manera autonoma los puntos que no pudo tomar. No es responsabilidad del profesor dar marcha atras a la clase para regulalizar alumnos atrasados. + No es pretexto el hecho de tener trabajo para justificar ausencias + No asistencia a un examen parcial implica 0 puntos + Favor de poner en modo silencio a cualquier dispositivo electrónico (celular, agendas, localizadores). El uso no controlado implicará un punto menos sobre la calificación final del dueño del dispositivo