Fichas de asignaturas 2015-16
![]() |
PROGRAMACIÓN ORIENTADA A OBJETOS |
![]() ![]() ![]() |
|
Asignatura |
![]() |
| |
Profesorado |
![]() |
| |
Competencias |
![]() |
| |
Resultados Aprendizaje |
![]() |
| |
Actividades Formativas |
![]() |
| |
Sistemas de Evaluación |
![]() |
| |
Contenidos |
![]() |
| |
Bibliografía |
![]() |
Código | Nombre | |||
Asignatura | 21714017 | PROGRAMACIÓN ORIENTADA A OBJETOS | Créditos Teóricos | 3 |
Título | 21714 | GRADO EN INGENIERÍA INFORMÁTICA | Créditos Prácticos | 4.5 |
Curso | 2 | Tipo | Obligatoria | |
Créd. ECTS | 6 | |||
Departamento | C137 | INGENIERÍA INFORMÁTICA |
Requisitos previos
Haber cursado con aprovechamiento las siguientes asignaturas: - Introducción a la Programación - Metodología de la Programación - Análisis de Algoritmos y Estructuras de Datos - Sistemas Operativos
Recomendaciones
Para poder seguir la asignatura razonablemente es aconsejable: - Conocer los aspectos relacionados con la descomposición de problemas, el diseño modular y la abstracción operacional. - Saber especificar de manera informal los algoritmos mediante precondiciones y postcondiciones. - Ser capaz de definir algoritmos de una manera correcta mediante el uso de estructuras de control, bucles, sentencias condicionales, etc. según convenga a la finalidad, eficiencia y claridad del código. - Conocer los mecanismos de transferencia de parámetros y utilizarlos correctamente. - Conocer y usar correctamente los tipos de datos básicos que ofrecen los lenguajes de programación y especialmente, los tipos estructurados: cadenas de caracteres, vectores, matrices, registros y ficheros. - Dominar el uso de punteros y la gestión dinámica de memoria. - Ser capaz de implementar, en un lenguaje de programación de alto nivel, programas de pequeño y mediano tamaño haciendo uso de la descomposición modular del software. - Saber elegir y diseñar adecuadamente casos de prueba para los programas y funciones implementados. - Conocer los mecanismos de abstracción en programación y su importancia para la resolución de problemas. - Comprender la necesidad de separación entre los niveles de especificación, implementación y aplicación en el desarrollo de módulos software. - Conocer los conceptos de programación basada en tipos abstractos y de reutilización de los módulos de software. - Conocer el concepto de recursividad y sus tipos y saber implementar algoritmos recursivos para resolver problemas. - Saber separar perfectamente los aspectos computacionales puros de los efectos colaterales como la E/S y reconocer la importancia de que la E/S, los interfaces gráficos, etc., no deben mezclarse ni ensuciar las funciones que implementan los algoritmos y las estructuras de datos.
Profesorado
Nombre | Apellido 1 | Apellido 2 | C.C.E. | Coordinador | |
Gerardo | Aburruzaga | García | Asociado a Tiempo Parcial | N |
![]() |
José Fidel | Argudo | Argudo | TEU | S |
![]() |
Francisco | Palomo | Lozano | Profesor Titular de Escuela Univ. | N |
Competencias
Se relacionan aquí las competencias de la materia/módulo o título al que pertenece la asignatura, entre las que el profesorado podrá indicar las relacionadas con la asignatura.
Identificador | Competencia | Tipo |
C06 | Conocimiento y aplicación de los procedimientos algorítmicos básicos de las tecnologías informáticas para diseñar soluciones a problemas, analizando la idoneidad y complejidad de los algoritmos propuestos | ESPECÍFICA |
C07 | Conocimiento, diseño y utilización de forma eficiente los tipos y estructuras de datos más adecuados a la resolución de un problema. | ESPECÍFICA |
C08 | Capacidad para analizar, diseñar, construir y mantener aplicaciones de forma robusta, segura y eficiente, eligiendo el paradigma y los lenguajes de programación más adecuados | ESPECÍFICA |
CB2 | Que los estudiantes sepan aplicar sus conocimientos a su trabajo o vocación de una forma profesional y posean las competencias que suelen demostrarse por medio de la elaboración y defensa de argumentos y la resolución de problemas dentro de su área de estudio | GENERAL |
CB3 | Que los estudiantes tengan la capacidad de reunir e interpretar datos relevantes (normalmente dentro de su área de estudio) para emitir juicios que incluyan una reflexión sobre temas relevantes de índole social, científica o ética | GENERAL |
CB5 | Que los estudiantes hayan desarrollado aquellas habilidades de aprendizaje necesarias para emprender estudios posteriores con un alto grado de autonomía | GENERAL |
CG09 | Capacidad para resolver problemas con iniciativa, toma de decisiones, autonomía y creatividad. Capacidad para saber comunicar y transmitir los conocimientos, habilidades y destrezas de la profesión de Ingeniero Técnico en Informática. | GENERAL |
Resultados Aprendizaje
Identificador | Resultado |
R01 | R01. Conocer los aspectos generales sobre los lenguajes orientados a objetos y su evolución histórica. |
R02 | R02. Conocer los principios fundamentales del paradigma de la programación orientada a objetos. |
R03 | R03. Conocer los pasos para la realización de un sistema orientado a objetos y sus principales elementos (objetos, mensajes, clases,...) |
R04 | R04. Identificar los objetos que aparecen en un sistema, sus características y comportamientos, y clasificarlos en clases. |
R05 | R05. Conocer e identificar los tipos de relaciones que se pueden establecer entre las clases de un sistema orientado a objetos. |
R06. | R06. Conocer e identificar los tipos de polimorfismo que se pueden presentar en un sistema orientado a objetos. |
R07. | R07. Conocer el lenguaje C++ como un lenguaje orientado a objetos y los elementos fundamentales de la biblioteca estándar de C++ (E/S, STL,...). |
R08 | R08. Implementar clases, objetos y sus relaciones con el lenguaje orientado a objetos C++. |
R09 | R09. Implementar un sistema orientado a objetos de mediana complejidad con el lenguaje de programación C++. |
Actividades formativas
Actividad | Detalle | Horas | Grupo | Competencias a desarrollar |
01. Teoría | Impartición de los contenidos teóricos y realización de ejemplos sencillos. |
24 | CB2 CB3 CB5 CG09 | |
02. Prácticas, seminarios y problemas | Realización de problemas sobre la materia de la asignatura. Se incentivará la participación activa del alumnado en las clases, realizando en grupos los problemas, y provocando el profesor un debate abierto sobre cada uno de los temas que se traten, motivando a los alumnos para que propongan soluciones alternativas a los problemas planteados y su posterior discusión. |
12 | C06 C07 CB2 CB3 CB5 CG09 | |
03. Prácticas de informática | En las clases prácticas se proporcionará al alumno guiones de prácticas para la implementación de un sistema orientado a objetos de pequeña/mediana complejidad, usando un lenguaje orientado a objetos. Los alumnos asistirán a clase con dichos guiones, que los tendrán disponibles en el campus virtual con suficiente antelación. |
24 | C06 C07 C08 CB2 CB3 CB5 CG09 | |
10. Actividades formativas no presenciales | Esta actividad incluye estudio personal del alumno, resolución de ejercicios y cuestiones y realización de trabajos. |
87 | C06 C07 C08 CB2 CB3 CB5 CG09 | |
12. Actividades de evaluación | Examen escrito |
3 | Grande | C07 CB2 CB3 CB5 CG09 |
Evaluación
Criterios Generales de Evaluación
- Adecuación a los principios del paradigma de la programación orientada a objetos - Adecuación al estándar - Adecuación a la especificación - Eficiencia en la ejecución - Organización, claridad, elegancia y corrección de las soluciones presentadas - Participación e implicación - Corrección ortográfica y gramatical - Claridad en el proceso por el cual obtiene la solución al problema
Procedimiento de Evaluación
Tarea/Actividades | Medios, Técnicas e Instrumentos | Evaluador/es | Competencias a evaluar |
Entrega de ejercicios y cuestiones | Rúbricas |
|
C06 C07 C08 CB2 CB3 CB5 CG09 |
Exámenes escritos | Rúbricas |
|
C06 C07 CB2 CB3 CB5 CG09 |
Resolución de prácticas | Rúbrica, compilación y prueba de los programas realizados |
|
C06 C07 C08 CB2 CB3 CB5 CG09 |
Procedimiento de calificación
SISTEMAS DE EVALUACIÓN Para la primera convocatoria se dispone de dos sistemas de evaluación diferentes: evaluación continua y evaluación final. Para el resto de convocatorias, dado que ya no hay docencia, se utilizará exclusivamente la evaluación final. No se guardará ningún tipo de calificación parcial entre convocatorias. En la primera convocatoria los alumnos se evaluarán mediante el sistema de evaluación continúa, salvo aquellos que por causas sobrevenidas, justificadas documentalmente, no tengan posibilidad de asistir a alguno de los exámenes parciales y que sean comunicadas por correo electrónico al profesor coordinador antes del día siguiente a la fecha del examen parcial al que no puedan asistir. CÓDIGOS DE LAS DISTINTAS CALIFICACIONES 1. NEP: nota de exámenes parciales 2. NCC: nota de los ejercicios y cuestiones de clase 3. NEC: nota conjunta de exámenes, ejercicios y cuestiones de clase 4. NET: nota del examen final de teoría 5. NPR: nota de prácticas 6. NFA: nota final de la asignatura SISTEMA DE EVALUACIÓN FINAL El sistema de evaluación final consta de tres componentes: 1. Examen final de teoría 2. Ejercicios y cuestiones 3. Memoria de prácticas y defensa final El examen final de teoría será un examen escrito que se realizará de acuerdo con las convocatorias oficiales de exámenes finales que establecen los Estatutos de la Universidad de Cádiz y que el centro publica con la debida antelación. La calificación del examen final de teoría (NET) se realizará en una escala de 0 a 10. Los alumnos deberán presentar una serie de ejercicios y cuestiones, y una memoria final de prácticas a través del campus virtual en las fechas indicadas por el profesor. La calificación final de la asignatura se obtiene de la siguiente forma: NEC = NET * 0,9 + NCC * 0,1 Si NEC < 5 NFA = NEC Si no Si NPR >= 5 NFA = NET * 0,6 + NCC * 0,1 + NPR * 0,3 Si no NFA = NPR SISTEMA DE EVALUACIÓN CONTINUA El sistema de evaluación continua consta de tres componentes: 1. Exámenes parciales 2. Ejercicios y cuestiones 3. Memorias de prácticas y defensa La calificación final de la asignatura se obtiene de la siguiente forma: NEC = NEP * 0,9 + NCC * 0,1 Si NEC < 5 NFA = NEC Si no Si NPR >= 5 NFA = NEP * 0,6 + NCC * 0,1 + NPR * 0,3 Si no NFA = NPR A lo largo del curso se realizarán varios exámenes parciales y entregas de ejercicios y cuestiones, que tendrán lugar durante el desarrollo de la asignatura, en fechas publicadas con suficiente antelación. Algunas de estas pruebas de control podrán ser coevaluadas por los alumnos. En ese caso, se realizará una sesión de coevaluación. En cada sesión de coevaluación los alumnos deberán calificar, bajo la supervisión del profesor, los ejercicios de dos compañeros elegidos al azar correspondientes a la prueba de control previa. Para ello, el profesor presentará una solución canónica y los criterios de corrección a emplear. La asistencia a las sesiones de control y coevaluación es obligatoria. - Si un alumno no asiste a una sesión de control o de coevaluación, su prueba de control se calificará con 0. - Si tras revisar el resultado de una coevaluación los profesores detectan negligencia o fraude, la prueba de control del alumno corrector se calificará con 0. La evaluación continua se realizará mediante exámenes parciales y entregas de ejercicios y cuestiones que se propondrán a los alumnos durante el curso. Los ejercicios y cuestiones de clase (NCC) se calificarán globalmente en una escala de 0 a 10 y la calificación de los exámenes parciales (NEP) será la correspondiente, en una escala de 0 a 10, a la media aritmética de las calificaciones de los exámenes parciales que la integran. La presentación de memorias parciales por cada práctica a través del campus virtual en las fechas indicadas por el profesores es obligatoria. - Si un alumno no presenta alguna de las memorias, obtendrá un 0 en su NPR. NORMAS COMUNES PARA AMBOS SISTEMAS Las prácticas (NPR) se calificarán en una escala de 0 a 10. Sólo se corregirán las memorias de aquellos alumnos con NEC >= 5. Los alumnos podrán ser convocados para la defensa de sus prácticas en determinadas fechas indicadas por el profesor. A dicha defensa deberá acudir con una copia impresa de la memoria (o memorias parciales, para el caso de evaluación continua) entregada electrónicamente. El desconocimiento de las cuestiones planteadas implicará que NPR = 0.
Descripcion de los Contenidos
Contenido | Competencias relacionadas | Resultados de aprendizaje relacionados |
CT0. Evolución histórica y principios fundamentales. 0.1. Evolución histórica. 0.2. Principios básicos. |
CG09 | R01 R02 |
CT1. Paradigma de la programación orientada a objetos. 1.1. Principios generales. 1.2. Objetos. 1.3. Clases. 1.4. Relaciones entre clases. |
R03 R04 R07. | |
CT2. Relaciones entre clases. 2.1. Descripción general. 2.2. Asociaciones. 2.3. Generalizaciones y especializaciones. 2.4. Interfaces e implementaciones. |
C07 CG09 | R05 R08 |
CT3. Polimorfismo. 3.1. Descripción general. 3.2. Polimorfismo de sobrecarga. 3.3. Polimorfismo en tiempo de ejecución. 3.4. Polimorfismo paramétrico. |
C07 CG09 | R06. R08 |
P0. Clases, objetos y excepciones. |
C07 C08 CG09 | R07. R08 |
P1. Biblioteca de E/S y localización |
C08 CG09 | R07. R08 |
P2. Relaciones de asociación y contenedores de la STL. |
C07 C08 CG09 | R05 R07. R08 R09 |
P3. Clases de asociación y algoritmos de la STL. |
C06 C07 C08 CG09 | R05 R07. R08 R09 |
P4. Herencia y polimorfismo. |
C06 C07 C08 CG09 | R06. R07. R08 R09 |
Bibliografía
Bibliografía Básica
Aburruzaga García, Gerardo; Medina Bulo, Inmaculada y Palomo Lozano,
Francisco.
Fundamentos de C++.
Servicio de Publicaciones de la Universidad de Cádiz. 2ª edición.
1ª reimpresión. 2009.
Budd, Timothy.
An Introduction to Object-Oriented Programming
Addison-Wesley. 3ª edición. 2002.
Carretero Pérez, Jesús; García Carballeira, Félix; Pérez Menor, José
María;
García Sánchez, José Daniel y Sánchez García, Luis Miguel
Problemas resueltos de programación en lenguaje C++.
Paraninfo. 2004.
Eckel, Bruce
Thinking in C++: Introduction to Standard C++
Volume one
Second Edition
Prentice Hall. 2000
Eckel, Bruce y Allison, Chuck
Thinking in C++: Practical Programming
Volume two
Prentice Hall. 2003
Horstmann, Cay S. y Budd, Timothy A.
Big C++.
Wiley. 2ª edición. 2008.
Muñoz Caro, Camelia; Niño Ramos, Alfonso y Vizcaíno Barceló, Aurora
Introducción a la programación con orientación a objetos.
Prentice-Hall. 2002.Stroustrup, Bjarne.
The C++ Programming Language. Fourth Edition.
Addison-Wesley. 2013
Stroustrup, Bjarne.
The C++ Programming Language. Special Edition.
Addison-Wesley. 2000.
Stroustrup, Bjarne.
Programming: Principles and Practice Using C++
Addison-Wesley. 2008.
Bibliografía Específica
Austern, Matthew H.
Generic programming and the STL. Using and extending the
C++ standard template library.
Addison-Wesley. 1999.Josuttis, Nicolai M.
The C++ Standard Library: A Tutorial and Reference.
Addison-Wesley. 1999
Lippman, Stanley y LaJoie, Josee.
C++ Primer.
Addison-Wesley. 2005. 4ª edición.
Musser, David R. y Saini, Atul.
STL tutorial and reference guide. C++ programming with the standard
template
library.
Addison-Wesley. 2.ª edición. 2001.
El presente documento es propiedad de la Universidad de Cádiz y forma parte de su Sistema de Gestión de Calidad Docente. En aplicación de la Ley 3/2007, de 22 de marzo, para la igualdad efectiva de mujeres y hombres, así como la Ley 12/2007, de 26 de noviembre, para la promoción de la igualdad de género en Andalucía, toda alusión a personas o colectivos incluida en este documento estará haciendo referencia al género gramatical neutro, incluyendo por lo tanto la posibilidad de referirse tanto a mujeres como a hombres.