UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS (Universidad del Perú, DECANA DE AMÉRICA) FACULTAD DE INGENIERIA DE SISTEMAS E INFORMATICA ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS 1. INFORMACIÓN GENERAL 1.1 Nombre y código de la asignatura: ALGORITMICA II - 202001 1.2 Número de créditos : 04 1.3 Número de horas semanales : Teoría: 02 horas, : 02 horas, Laboratorio: 02 horas 1.4 Ciclo de estudio: II 1.5 Periodo Académico: 2017 - II 1.6 Pre-requisitos : 201001 Algorítmica I 1.7 Profesor: Jorge Zavaleta Campos Virginia Vera Pomalaza 2. SUMILLA El paradigma de la programación orientada a objetos. Los mecanismos básicos, ventajas y desventajas. Mecanismos de abstracción: Generalización, especialización, especificación. Jerarquía de clases, herencia, herencia múltiple, polimorfismo y sobrecarga. Notaciones gráficas lenguaje de Modelamiento Unificado. Aplicaciones prácticas, Plantillas como rehúso de algoritmos para cualquier tipos de datos y excepciones para prever fallas del programa, y Patrones como mecanismo de rehúso de un programa en aplicaciones. 3. COMPETENCIA GENERAL Desarrollar programas y sistemas de información básicos basados en las técnicas de POO, cultivar el re-uso, robustez de un programa como una obra de ingeniería. 4. PROGRAMACIÓN Unidad Nº 1: INTRODUCCION A LA PROGRAMACION ORIENTADA A OBJETOS Competencias específicas:
Identifica, define y aplica los conceptos de la programación orientada a objetos. Explica y aplica los TAD teniendo en cuenta al objeto, clase a problemas informáticos. Implementa y utiliza correctamente los mensajes como medio de comunicación de los objetos. Sem. Contenido Estrategia Actividades Evaluación 1 Teoría: POO como un nuevo paradigma, su diferencia con la programación estructurada y modular, abstracción, ocultamiento de la implementación, reutilización y lenguajes orientados a objetos. Ventajas y desventajas de la POO. Practica: Construcción de TAD y su implementación en un enfoque estructurado a través de ejercicios prácticos, ventajas y desventajas Expositiva participativa Elaboración de mapa conceptual Conformación de su equipo. Cuestionario de teoría Informe de Integrantes Teoría: Objetos y clases como TAD. Encapsulación y ocultación de la información, tipos de atributos. 2 Además creación de objetos como instancia de una clase. Practica: Comparación entre lenguajes de POO, creación de objetos. IDEs de desarrollo. Implementación de clases y objetos. participativa con desarrollo de Elaboración de cuadro comparativo. dirigida. 3 Teoría: Mensajes. Métodos y sus variantes como constructores y destructores. Activación de objetos, definición de mensaje y partes de un mensaje. Introducción a excepciones. Laboratorio: Desarrollo de casos en Java. Expositiva participativa. Presentación de Proyecto del curso. Análisis de situaciones problemáticas calificada. de Proyecto. Unidad Nº 2: RELACIONES ENTRE CLASES
Competencias específicas: Diseña, implementa y aplica los conceptos sobre relaciones entre clases con el fin de modelar aplicaciones del mundo real apoyándose en mecanismos de reutilización. Explica y aplica las relaciones entre clases a problemas informáticos. Explica e implementa las relaciones de herencia entre clases a la resolución de problemas de la realidad. Sem. Contenido Estrategia didáctica Actividades Evaluación 4 y 5 Teoría: Conceptos y terminología básica usada para describir dependencia, asociación, generalizaciónespecialización, y su diseño en el diagrama de clases. y Laboratorio: Exposición de casos reales basados en relaciones de asociación, agregación y composición. Ejemplo de herramientas para el diseño de diagramas de clases e implementación de las relaciones en Java. Expositiva Elabora Desarrolla problemas dirigida. de Proyecto. 6 Teoría: Herencia. Conceptos y propiedades, niveles de acceso, su importancia como mecanismo de rehúso, tipos de herencia y su representación en el diagrama de clases. Reutilización con herencia. y Laboratorio: Construcción de jerarquías de clases. Implementación. participativa. Elabora y calificada. de Proyecto. Desarrollo de casos en Java bajo herencia simple (extends), herencia múltiple (implements). Unidad Nº 3: TIPOS ESPECIALES DE CLASES Y OPERACIONES ASOCIADAS Competencias específicas: Explica e implementa la clase abstracta e interface entre clases en la resolución de problemas de la realidad.
Sem. Contenido Estrategia didáctica Actividades Evaluación Teoría: Clase abstracta e Interfaces. Concepto y propiedades de una clase abstracta, su ubicación e importancia en la jerarquía de clases. 7 Interfaces. Conceptos, diferencia con las clases abstractas. Aplicaciones. y Laboratorio: Diseño de clases abstractas en el diagrama de clases, la redefinición de sus métodos (funciones virtuales), tipos de ligadura, etc. participativa. Informe del proyecto del curso. Laboratorio calificado. Forma de implementar y ejercicios sobre clases abstractas e interfaces en Java 8 Examen Parcial Unidad Nº 4: POLIMORFISMO, INTERFAZ GRÁFICA, EXCEPCIONES Y CLASES GENÉRICAS Competencias específicas: Manipula objetos de diferentes clases por medio de un mismo método y realizar la misma operación de formas diferentes basado en el concepto de polimorfismo. Identifica, define y aplica las interfaces gráficas de usuario (GUI). Diseña e implementa el uso de mecanismos para manejo de errores o excepciones. Diseña y aplica clases y métodos que actúen sobre diferentes tipos de datos (genericidad). Sem. Contenido Estrategia didáctica Actividades Evaluación 9 Teoría: Polimorfismo, su importancia en la POO, tipos, ventajas y desventajas de su uso en lenguajes de POO. y Laboratorio: Casos que hacen uso de polimorfismo de inclusión, redefinición, sobrecarga, paramétrico. problemas Practica dirigida
Ejercicios en Java. 10 Teoría: GUI. Conceptos, componentes, disposición, eventos. Laboratorio: Implementación de GUI en java, AWT y SWING Expositiva problemas Laboratorio dirigido 11 Teoría: Excepciones. Concepto de excepciones, manejo de excepciones, lanzamiento de excepciones. Laboratorio: Implementación de programas java, casos que requieren utilización de excepciones. Excepciones propias. calificada 12 Teoría: Clases genéricas. Definición de clases genéricas o contenedores, conceptos básicos sobre plantillas, prototipos, ventajas y desventajas. y Laboratorio: Diseño e implementación de clases genéricas en java. Informe del proyecto del curso. Unidad Nº 5: PERSISTENCIA, HILOS, Y CONECTIVIDAD CON BASE DE DATOS Competencias específicas: Registra de manera permanente el estado de un objeto usando conceptos de persistencia. Aplica ejemplos de programación concurrente. Desarrolla, aplica proyectos de conectividad con base de datos. Sem. Contenido Estrategia didáctica Actividades Evaluación 13 Teoría: Persistencia. Definición, tipos de instancias (persistente y transitoria), alternativas usadas para persistencia, el concepto de servicio de persistencia y requisitos de un servicio de Laboratorio calificado
persistencia en un sistema gestor de datos. Laboratorio: Casos en java de serialización e implementación en un servicio de persistencia. 14 Teoría: Programación concurrente e Hilos (Thread). Definición de concurrencia, ejemplos de sistemas donde existe concurrencia, necesidad de la programación concurrente, problemas típicos de la programación concurrente, Multiprogramación, Multitarea, Multiprocesos, Sistemas Paralelos y Distribuidos. El Concepto de Hilo (Thread), composición de Hilos, comunicación entre Hilos, sincronización entre Hilos, soluciones a problemas de interbloqueo, ejemplos de uso de Hilos en Productor Consumidor, Semáforos. Practica calificada Laboratorio: Implementación, uso de hilos en Productor Consumidor, semáforos. 15 Teoría: Conectividad con base de datos. Introducción a ORM, la API JDBC, el bridge jdbcodbc, otras categorías de drivers, estructura de una aplicación JDBC, DriverManager, conectándose a una base de datos, ejecución de consultas, conversiones de tipos de dato. Laboratorio: Construcción de conexión JDBC e implementación de conectividad entre JAVA MYSQL, JAVA MS-SQL Server. Informe final del proyecto del curso. 16 Examen Final 17 Examen Sustitutorio
5. ESTRATEGIA DIDACTICA Por parte del docente, ra su asignatura siguiendo los criterios deductivos, inductivos, flexible con la participación activa de los estudiantes; en este sentido, se utilizará las técnicas de exposición participativa, prácticas dirigidas, laboratorios y proyectos. Por parte de los estudiantes, van a participar activamente a través de solución de problemas y estudios de problemas prácticos que les permita construir programas, proyectos y exponer sus avances de proyectos de equipo. El un proyecto real forma parte fundamental de la estrategia de aprendizaje. 6. EVALUACION DEL APRENDIZAJE Examen Parcial (EP) Examen Final (EF) Promedio Practicas Calificadas (PP) Promedio de Laboratorios (PL) Promedio del Proyecto del curso (PY) PF = 0.2*EP + 0.2*EF + 0.2*PP + 0.2*PL + 0.2*PY 7. REFERENCIAS BIBLIOGRÁFICAS BASICA Deitel, Paul & Deitel Harvey. Java como programar. México. Edit. Pearson Educación. 616p. ISBN: 978-607-32-1150-5. 2012. Bell, Douglas & Parr, Mike. Java para estudiantes. México. Edit Pearson Educación. 552p. ISBN: 978-607-32-0557-3. 2011. Wu, Thomas. Programación en Java. Introducción a la Programación Orienta a Objetos. México D. F. McGraw-Hill. 1186p. 2008. Joyanes, Luis & Zahonero, Ignacio. Programacion C, C++, Java y UML. Mexico D. F. MacGraw-Hill, 1000p. 2010. Deitel & Deitel. Java como programar. México. Edit. Pearson Prentice Hall. 2008. COMPLEMENTARIA Ceballos Sierra, Francisco Javier. Java 2. Curso de Programación. México D. F. Alfaomega Grupo Editor S. A. 779p. 2000. *Textos no deben tener una antigüedad mayor a 5 años ENLACES Y SITIOS WEB Interfaz gráfica de usuario: - http://www.proyectoautodidacta.com/comics/la-interfaz-grfica-de-usuario-gui/
- http://doutdex.wordpress.com/2007/06/09/gui-graphical-user-interfaceinterface-grafica-de-usuario-en-java/ Patrones de diseño de software: - http://www.proactiva-calidad.com/java/patrones/index.html