UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS
F AC UL T AD D E I N G E NI E R Í A
SYLLABUS
FACULTA DE INGENIERÍA
NOMBRE DEL DOCENTE:
ESPACIO ACADÉMICO: Programación Orientada a Objetos
Obligatorio ( X ) : Básico ( X) Complementario ( ) CÓDIGO: 10
Electivo ( ) : Intrínsecas ( ) Extrínsecas ( )
NUMERO DE ESTUDIANTES: GRUPO:
NÚMERO DE CREDITOS: 3
TIPO DE CURSO: TEÓRICO PRACTICO TEO-PRAC:
Alternativas metodológicas:
Clase Magistral ( x ), Seminario ( ), Seminario – Taller ( ), Taller (x), Prácticas ( x ), Proyectos
tutoriados( ), Otro:
HORARIO:
DIA HORAS SALON
I. JUSTIFICACIÓN DEL ESPACIO ACADÉMICO
Esta asignatura contribuye al desarrollo de la competencia “Resuelve
problemas computacionales algorítmicamente” que se encuentra en el
Competencias del perfil a las que
dominio de “programación” del área “básicas de ingeniería” del proyecto
contribuye la asignatura:
curricular de ingeniería Electrónica.
En este espacio académico se establecen las bases de la aplicación del
paradigma orientado a objetos y se le brindan al estudiante las
herramientas para la aplicación de los principios y características de este
Contribución a la formación: paradigma para fortalecer en el estudiante las habilidades en el
desarrollo de programas computacionales. Estas habilidades se
reconocen como claves dentro del dominio del perfil de “Programación”.
Estructura lógica conceptual basada en el paradigma de programación
orientada a objetos.
Puntos de apoyo para otras
Herramienta fundamental para Programación avanzada y Modelos
asignaturas:
de programación.
Herramienta fundamental para ingeniería de software.
Herramienta fundamental para bases de datos
SYLLABUS, Programación Orientada a Objetos, Página 1
Herramienta fundamental para Redes
Herramientas para Ciencias de la computación
Requisitos previos: Programación Básica
II. PROGRAMACION DEL CONTENIDO
OBJETIVO GENERAL
Presentar al estudiante la conceptualización y aplicación del paradigma orientado a objetos, enfatizando en
los elementos conceptuales propios de este que permitan plantear y aplicar modelos bien formados utilizando
un lenguaje de programación orientado a objetos.
OBJETIVOS ESPECÍFICOS
1. Determinar los tipos de aplicación y las situaciones en las que se debe aplicar el paradigma orientado a
objetos.
2. Comprender, interpretar y analizar el cambio de enfoque en el modo de resolver problemas que supone el
uso del paradigma orientado a objetos respecto a otros paradigmas.
3. Aplicar los conceptos del paradigma de programación orientada a objetos tales como: polimorfismo,
encapsulamiento, herencia, sobrecarga, funciones virtuales, etc., usando como lenguaje de programación
C# o Java
4. Manejar adecuadamente conceptos tales como: recursividad, objetos transientes, residentes y
persistentes; generalización y generacidad; clases plantillas; asociación, agregación y composición.
5. Identificar problemas de: portabilidad, efectos colaterales y transparencia referencial.
6. Comprender la enorme importancia de crear software fiable, reutilizable y mantenible.
7. Dominar estrategias básicas de reutilización como son el uso de librerías o paquetes de software.
8. Aplicar el modelo orientado a objetos en programación de dispositivos de cómputo.
COMPETENCIAS DE FORMACIÓN:
El estudiante está en capacidad de pensar ordenadamente para modelar una
Competencias que
solución a un problema, en donde se debe analizar e implementar dicha solución
compromete la asignatura:
aplicando el paradigma de programación orientado a objetos
El estudiante entiende el concepto de paradigma y sus implicaciones en el
modo de resolver problemas.
Conoce y entiende el proceso de evolución de los distintos paradigmas de
programación.
Entiende el tipo de problemas de desarrollo software que solucionan un uso
correcto del paradigma orientado a objetos.
Conoce el modo en que el paradigma orientado a objetos ayuda a mejorar
las capacidades de reutilización del software.
Entiende los conceptos de clase, atributo, operación, interfaz y objeto.
Entiende el mecanismo de paso de mensajes.
Comprende el modo en que se deben implementar los caminos de
Competencias específicas de comunicación entre clases para permitir el paso de mensajes entre ellas.
la asignatura: Entiende y es capaz de implementar los distintos tipos de relaciones que se
pueden establecer a nivel de objeto entre dos clases: asociaciones,
agregaciones y composiciones.
Entiende el concepto de estado de un objeto.
Entiende la relación entre diagramas de clase y el código de implementación
de dichos diagramas.
Entiende el mecanismo de abstracción de la herencia.
Es capaz de plantear jerarquías de herencia bien definidas.
Comprende los costes de la herencia.
Diferencia claramente cuándo usar herencia y cuándo optar por composición.
Entiende el concepto y la utilidad del polimorfismo.
Entiende la diferencia entre ligadura estática y ligadura dinámica en los
SYLLABUS, Programación Orientada a Objetos, Página 2
lenguajes de programación.
Entiende la relación a nivel de implementación entre herencia y
polimorfismo.
Identifica los distintos tipos de polimorfismo: sobrecarga, sobreescritura,
variables polimórficas y genericidad.
Entiende las relaciones entre los distintos tipos de polimorfismo.
Entiende los mecanismos de gestión de errores que ofrecen algunos
lenguajes de programación (C# o Java).
Entiende el concepto de concurrencia.
Entiende el concepto de persistencia.
El alumno tiene la capacidad de discernir que tecnología debe utilizar para la
Competencias Transversales resolución de problemas particulares.
a las que contribuye la Comunica ideas de manera clara de forma oral o escrita.
asignatura: Actúa estratégicamente dentro de un grupo de trabajo para el desarrollo de
proyectos.
1. Introducción al paradigma Orientado a Objetos
1.1. El progreso de la abstracción
1.2. El paradigma orientado a objetos
1.3. Lenguajes orientados a objetos
1.4. Metas del paradigma orientado a objetos
2. Fundamentos de la programación orientada a objetos
2.1. Clases
2.2. Atributos
2.3. Operaciones (métodos)
2.4. Encapsulación y ocultamiento de la información.
2.5. Modularidad de Meyer.
2.6. El concepto de interfaz
2.7. El concepto de objeto
2.8. Metaclases
2.9. El diseño de aplicaciones OO
2.10. Relaciones entre clases y relaciones entre objetos
2.11. Documentación del código
3. Herencia y polimorfismo
3.1. Introducción a la Herencia
Programa sintético: 3.2. Herencia Simple
3.3. Herencia Múltiple
3.4. Herencia de Interfaz
3.5. Herencia de Implementación
3.6. Beneficios y costes de la herencia
3.7. Elección de la técnica de reutilización
3.8. Polimorfismo y reutilización
3.9. Sobrecarga
3.10. Polimorfismo en jerarquías de herencia
3.11. Variables Polimórficas
3.12. Genericidad
4. Gestión de errores y otras características
4.1. Gestión de errores
4.2. Concurrencia
4.3. Persistencia
4.3.1. Persistencia con serialización
4.3.2. Persistencia con archivos
4.4. Recogiendo la basura
5. Sockets
SYLLABUS, Programación Orientada a Objetos, Página 3
III. ESTRATEGIAS
Metodología Pedagógica y Didáctica:
Asistencia a clases expositivas y de discusión
Elaboración y lectura de paper (documentación).
Se debe procurar incentivar el trabajo de grupo más que el trabajo individual. (se recomienda
trabajar en grupos de dos o tres estudiantes)
Implementación y prueba de prototipos (programas) en laboratorio de computación
Horas Horas Total Horas
Horas Créditos
profesor/semana Estudiante/semana Estudiante/semestre
Tipo de
TD TC TA (TD + TC) (TD + TC +TA) X 16 semanas
Curso
Asignatura 4 2 3 6 9 144 3
Trabajo Presencial Directo (TD): trabajo de aula con plenaria de todos los estudiantes.
Trabajo Mediado_Cooperativo (TC): Trabajo de tutoría del docente a pequeños grupos o de forma
individual a los estudiantes.
Trabajo Autónomo (TA): Trabajo del estudiante sin presencia del docente, que se puede realizar en
distintas instancias: en grupos de trabajo o en forma individual, en casa o en biblioteca, laboratorio, etc.)
IV. RECURSOS
Medios y Ayudas:
Aula normal con pizarrón para sesiones de cátedra y para sesiones de discusión.
Disponibilidad para acceder a proyector multimedia.
Laboratorio de computación, para las sesiones de laboratorio.
IDE’s para desarrollar en java (Eclipse, Netbeans, …)
Página web para publicar material didáctico, guías de ejercicios, soluciones, tareas, etc.
Acceso al material bibliográfico recomendado.
Asignación de una persona que tenga las plenas competencias del curso (monitor) para asesorar a los
estudiantes en dudas durante las sesiones del laboratorio de computación.
BIBLIOGRAFÍA
TEXTOS GUÍA
Bertrand Meyer. Construcción de Software Orientado a Objetos. Prentice Hall.
Bruce Eckel. Thinking Java. Pretince Hall
Guía de certificación de java. Sun Microsystem.
Francisco Javier Ceballos Sierra, Microsoft C#. Lenguaje y aplicaciones, 2ª edición
Harvey M. Deitel y Paul J. Deitel, C# Como Programar, segunda edición.
Alfredo Weitzenfeld, Ingenieria de Software orientada a Objetos con UM. Java e Internet.
TEXTOS COMPLEMENTARIOS
Agustín Froufe Quintas. Java 2 Manual de usuario y tutorial. Alfaomega.
Francisco Javier Ceballos Sierra , Enciclopedia de Microsoft Visual C#, 3ª edición
REVISTAS
DIRECCIONES DE INTERNET
[Link]
[Link]
[Link]
SYLLABUS, Programación Orientada a Objetos, Página 4
V. ORGANIZACIÓN / TIEMPOS
Espacios, Tiempos, Agrupamientos:
Se recomienda trabajar una unidad cada cuatro semanas, trabajar en pequeños grupos
de estudiantes, utilizar Internet para comunicarse con los estudiantes para revisiones de
avances y solución de preguntas (esto considerarlo entre las horas de trabajo
cooperativo).
PROGRAMA SINTÉTICO SEMANAS ACADÉMICAS
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
1. Introducción al x x x x
paradigma Orientado a
Objetos
1.1. El progreso de la x
abstracción
1.2. El paradigma x
orientado a objetos
1.3. Lenguajes x
orientados a objetos
1.4. Metas del x
paradigma orientado a objetos
2. Fundamentos de la x x x x x x
programación orientada a
objetos
2.1. Clases x
2.2. Atributos x
2.3. Operaciones x
(métodos)
2.4. Encapsulación y x
ocultamiento de la información.
2.5. Modularidad de x
Meyer.
2.6. El concepto de x
interfaz
2.7. El concepto de x
objeto
2.8. Metaclases x
2.9. El diseño de x
aplicaciones OO
2.10. Relaciones x
entre clases y relaciones entre
objetos
2.11. Documentación del x
código
3. Herencia y x x x x x x
polimorfismo
3.1. Introducción a la x
Herencia
3.2. Herencia Simple x
3.3. Herencia Múltiple x
3.4. Herencia de x
SYLLABUS, Programación Orientada a Objetos, Página 5
Interfaz
3.5. Herencia de x
Implementación
3.6. Beneficios y costes x
de la herencia
3.7. Elección de la x
técnica de reutilización
3.8. Polimorfismo y x
reutilización
3.9. Sobrecarga x
3.10. Polimorfismo en x
jerarquías de herencia
3.11. Variables x
Polimórficas
3.12. Genericidad x
4. Gestión de errores y
x x x
otras características
4.1. Gestión de errores x
4.2. Concurrencia x
4.3. Persistencia x
5. Sockets x
SYLLABUS, Programación Orientada a Objetos, Página 6
VI. EVALUACIÓN
TIPO DE EVALUACIÓN FECHA PORCENTAJE
PRIMERA Prueba oral/escrita para el grupo que el docente
NOTA elabora.
Semana 4 ó 5 10 %
Informes de conceptos basado en análisis (Paper's)
Pruebas orales/escritas rápidas (Quizes)
Prueba escrita conjunta (para todos los grupos de la
SEGUNDA asignatura), elaborada por los docentes que imparten
NOTA
Semana 14 ó 15 20 %
la asignatura.
Pruebas orales/escritas rápidas (Quizes)
Guías de ejercicios resueltas
Informes de conceptos basado en análisis (Paper's)
TERCERA NOTA Varias fechas 10 %
Pruebas orales/escritas rápidas (Quizes)
Prueba escrita
CUARTA NOTA Informe de desempeño en laboratorio Varias fechas 20 %
Informe de desempeño y sustentación de un prototipo
PROYECTO Semana 16 10 %
funcional que evalúe las competencias exigidas.
Prueba escrita conjunta (para todos los grupos de la
EXAMEN FINAL asignatura), elaborada por los docentes que imparten 30 %
la asignatura.
ASPECTOS A EVALUAR DEL CURSO
Claridad y entendimiento de los conceptos.
Que se haya identificado correctamente el problema y que el modelo lo represente adecuadamente.
Que la solución diseñada resuelva el problema.
Apego a la formalidad y estándares requeridos.
Que el análisis de corrección sea exhaustivo.
Que el prototipo corresponda al modelo diseñado y no presente errores de sintaxis.
La asistencia a las clases magistrales y a los laboratorios.
El esfuerzo y dedicación en la resolución de problemas.
Que la documentación permita reconocer la forma en que se ha abordado el problema y la estructura
del programa implementado.
En las pruebas escritas se consideran en forma parcial los aspectos considerados en proyectos de
programación bajo problemas que requieren un menor tiempo de desarrollo y en una modalidad que
no requiere uso del computador, así como la comprensión conceptual.
SYLLABUS, Programación Orientada a Objetos, Página 7