Usted está aquí: Inicio web asignaturas

 

Fichas de asignaturas 2016-17


PROGRAMACIÓN ORIENTADA A OBJETOS

Asignaturas
 

  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
Raquel Ureña Pérez Profesor Sustituto Interino 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
  • Profesor/a
  • Autoevaluación
C06 C07 C08 CB2 CB3 CB5 CG09
Exámenes escritos Rúbricas
  • Profesor/a
  • Evaluación entre iguales
  • Co-Evaluación
C06 C07 CB2 CB3 CB5 CG09
Resolución de prácticas Rúbrica, compilación y prueba de los programas realizados
  • Profesor/a
  • Autoevaluación
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.