UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS Fundada en 1551
FACULTAD DE INGENIERIA DE SISTEMAS E INFORMATICA Escuela Académico Profesional de Ingeniería de Sistemas
SILABO
1. ESPECIFICACIONES GENERALES:
1.1 Nombre del curso : Algorítmica II 1.2 Código del curso : 202001 1.3 Duración del curso : Semestral
1.4 Forma de Dictado : Teórico - Práctico - Experimental 1.5 Horas semanales : Teoría: 2h - Práctica: 2h - Lab: 2h 1.6 Naturaleza : Básico de la profesión
1.7 Número de créditos : Cuatro (4)
1.8 Pre-requisito : 201001 - Algorítmica I 1.9 Semestre académico : 2010-I
2. SUMILLA
El paradigma de la programación orientada a objetos (POO). Conceptos básicos (objeto, clase, encapsulación, polimorfismo, etc). Relaciones semánticas y jerárquicas, clases abstractas. La importancia de la POO en la especificación y construcción de Patrones o plantillas, excepciones y persistencia. Casos prácticos y su implementación en lenguajes como C++ y java.
3. OBJETIVO GENERAL
Proveer a los estudiantes los conceptos y técnicas de orientación a objetos (OO) que son fundamento teórico práctico para la resolución de problemas y construcción de programas basado en el paradigma de la OO. Ello le permitirá afrontar con éxito la solución de aplicaciones complejas Además se cultivará las diferentes técnicas de re-uso y criterios de robustez en un programa, considerando siempre que solucionar una aplicación debe ser vista como una obra de ingeniería. 4. OBJETIVOS ESPECIFICOS
Utilizar y aplicar correctamente la terminología y conceptos básicos de la POO.
Implementar y utilizar correctamente los mensajes como medio de comunicación de los objetos. Diseñar, implementar y aplicar los conceptos sobre relaciones entre clases con el fin de modelar
aplicaciones del mundo real apoyándose en mecanismos de reutilización.
Manipular objetos de diferentes clases por medio de un mismo elemento y realizar la misma operación de formas diferente basado en conceptos de polimorfismo.
Diseñar y aplicar clases y métodos que actúen sobre diferentes tipos de datos (genericidad). Diseñar e implementar el uso de mecanismos para manejo de errores o excepciones y registro de
manera permanente del estado de un objeto usando conceptos de persistencia.
Alcanzar en el estudiante un grado de abstracción que le permita analizar, diseñar, discutir e implementar soluciones a través de las herramientas usadas hoy en día en la POO.
5. CONTENIDO ANALÍTICO POR SEMANAS 1ra Semana: INTRODUCCIÓN.
Teoría
La 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.
Práctica
Construcción de TAD y su manipulación en un enfoque estructurado a través de ejercicios prácticos, ventajas y desventajas.
Laboratorio
Implementación de TAD.
[9] 1, 21,39; [10] 29, 581; [11] 328; [12] 19; [5] 43; [7] 490; [6] 43, 69; [2] 34; [3] 1; [1] 23
2da Semana: OBJETOS Y CLASES Teoría
Objetos y clases como TAD. Encapsulación y ocultación de la información, tipos de atributos. Además creación de objetos como instancia de una clase.
Práctica
Comparación entre lenguajes de POO, creación de objetos. Laboratorio
IDEs de desarrollo. Implementación de clases y objetos.
[9] 157, 205; [10] .452; [11] 95; [12] 37, 391; [5] 58; [8] 98; [7] 507; [2] 46, 72; [3] 55; [1] 63; [6] 273; [13] 635
3ra Semana : MENSAJES Teoría
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.
Práctica
Construcción y comparación de métodos y mecanismos de iniciación y finalización (constructores y destructores).
Laboratorio
Desarrollo de un caso de iniciación en Java. [10] 470; [11] 167; [5] 63; [8] 101, 104; [6] 243
4 y 5ta. Semana: RELACIONES ENTRE CLASES Teoría
Conceptos y terminología básica usada para describir relaciones de asociación, agregación y composición, y su diseño en el diagrama de clases.
Práctica
Exposición de casos reales basados en relaciones de asociación, agregación y composición. Laboratorio
Ejemplo de herramientas para el diseño de diagramas de clases e implementación de las relaciones en Java.
[11] 199; [12] 45 .
6 y 7ma Semana: HERENCIA Teoría
Conceptos y propiedades , niveles de acceso, su importancia como mecanismo de reuso, tipos de herencia y su representación en el diagrama de clases. Reutilización con herencia.
Práctica
Construcción de jerarquías de clases. Implementación. Laboratorio
Desarrollo de casos en Java bajo herencia simple(extends) o herencia múltiple (interface – implements).
[9] 65, 433, 489, 537; [10] 505; [11] 316; [12] 91; [5] 76; [8] 119; [3] 191; [6]307; [13]697 8va Semana: Examen Parcial
9na Semana: Clase Abstracta Teoría
Concepto y propiedades de una clase abstracta, su ubicación e importancia en la jerarquía de clases.
Práctica
Diseño de clases abstractas en el diagrama de clases, la redefinición de sus métodos (funciones virtuales), tipos de ligadura, etc.
Laboratorio
Forma de Implementar y ejercicios sobre clases abstractas en Java [10] 505; [13]697
10 y 11va semana : POLIMORFISMO Teoría
Tipos de polimorfismo, su importancia en la POO, ventajas y desventajas de su uso en lenguajes de POO.
Práctica
Casos que hacen uso del polimorfismo.. Laboratorio
Ejercicios sobre polimorfismo en java o C++.
[9] 441, 452; [10] 523; [5] 86, 95; [7] 523; [3] 223; [6] 307; [13] 667 12 va Semana : CLASES GENÉRICAS
Teoría
Definición de clases genéricas o contenedores, conceptos básicos sobre plantillas, prototipos, ventajas y desventajas.
Práctica
Diseño y construcción de plantillas de clases y funciones en C++, comparación y diferencias con relación a java.
Laboratorio Ejercicio en Java. [9] 299, 1111
13va Semana: EXCEPCIONES Teoría
Concepto de excepciones, manejo de excepciones, lanzamiento de excepciones. Práctica
Comparación y construcción de excepciones. Laboratorio
Casos en Java, que requieren el uso de excepciones como en la lectura de datos por consola. [9] 387; [6] 249, 419, 631; [2] 168; [3] 405; [1] 317
14 y 15va Semana: PERSISTENCIA Teoría
Definición, tipos de instancias (persistente y transitoria), alternativas usadas para persistencia, el concepto de servicio de persistencia y requisitos de un servicio de persistencia en un sistema gestor de datos.
Práctica
Casos en java de serialización así como especificación de un servicio de persistencia en un gestor de datos.
Laboratorio
Implementación de la serialización y de un servicio de persistencia. [9] 983; [10] 642; [8] 124; [2] 710; [3] 439; [1] 419; [6] 593; [13] 715 16va Semana: Examen Final
17va Semana: Examen Sustitutorio. 6. METODOLOGÍA
El desarrollo del curso se realiza en base a sesiones teórico, práctico y laboratorio por parte del profesor y un sistema de enseñanza y aprendizaje – investigación por parte de los alumnos. La estructura del desarrollo del curso se asienta en una mixtura de métodos activos en la que la participación de los alumnos les permite estar en permanente actividad mental. En ellas se producen los estímulos necesarios, propiciando la motivación indispensable para la realización del aprendizaje. Las sesiones de aula y laboratorio se complementarán con el desarrollo de trabajos prácticos en grupo los cuales no podrán exceder el 10 % del total de alumnos inscritos en el curso.
7. EVALUACIÓN
En base a una consideración de evaluación formativa, el proceso de obtención de una calificación aprobatoria dependerá del logro de los objetivos por parte del alumno. Esto implica:
8.NF = EP + 2 EF+PL+PP+PY 6
8. BIBLIOGRAFÍA
[1] Fco. Javier Ceballos. Java 2 Curso de Programación. Alfaomega Ra-Ma [2] Jhon Zukowski. Java 2 J2SE 1.4. Anaya Multimedia 2003
[3] Bruce Eckel. Piensa en Java. Prentice Hall Hispanoamericana S. A., 2002
[4] Luis Joyanes Aguilar. Programación en Java 2, Algoritmos Estructuras de Datos y Programación Orientada a Objetos. Mc Graw Hill
[5] Mark Andrews. Aprenda Visual C++ Ya, McGraw-Hill, 1997
[6] Luis Joyanes Aguilar. Programación Orientada a Objetos, Segunda edición. McGraw-Hill Interamericana De España S.A. U, 1998
[7] Chris H. Pappas, William H. Murray. Visual C++ 6.0 . McGraw - Hill Interamericana S.A.U. 1999
[8] Kent Reisdorph. Aprendiendo Borland C++ Builder 3 en 21 Días. Prentice Hall Hispanoamericana S. A. 1998
[9] Bertrand Meyer. Construcción de Software Orientado a Objetos. Prentice Hall, segunda edición [10] Andrew C. Staugaard, Jr. Técnicas Estructuradas y Orientadas a Objetos. Prentice Hall Hispanoamericana S.A. 1998.
[11] Grady Booch. Análisis y Diseño Orientado a Objetos. Addison Wesley Iberoamericana S.A., segunda edición, 1996
[12] James Rumbaugh, Michael Blaha, William Premerlani, Frederick Hedí y William Lorenson. Modelado y Diseño Orientado a Objetos, Metodología OMT. Prentice Hall, 1996. [13] Herbert Schildt. Turbo C/C++ Manual de Referencia, una información completa ideal para todo usuario de Turbo C/C++. Osborne/ McGraw-Hill, 1999
[14]Budd. Timothy. Introducción a la Programación orientada a objetos. Addison - Wesley Iberoamericana.
4
NF: Nota final.