Programación Orientada a ObjetosCurso 2010 - 2011
Ingeniería Informática (9190)Ing. técnica en Informática de Gestión (9288)Ing. técnica en Informática de Sistemas (9363)
Presentación de la Asignatura
Versión 1.3
Pedro J. Ponce de León
2
Propiedades Asignatura
TIPO Obligatoria en el plan de estudios del 2001 para
Ingeniería Informática (II) Ingeniería Técnica Informática Gestión (ITIG) Ingeniería Técnica Informática Sistemas (ITIS)
CRÉDITOS 4’5 (2.25 TEÓRICOS + 2,25 PRÁCTICOS)
15 sesiones de teoría (1 semanal durante uncuatrimestre) de 1,5 h cada una.
15 sesiones prácticas (1 semanal durante uncuatrimestre) de 1,5 h cada una.
3
Prerrequisitos
FUNDAMENTOS DE PROGRAMACIÓN I FUNDAMENTOS DE PROGRAMACIÓN II ¡No se puede aprobar la asignatura si como muy tarde en la
misma convocatoria no están aprobados los prerrequisitos! ¡Ojo! Febrero y Junio se consideran convocatorias distintas donde
Febrero<Junio (i.e. si aprobáis un prerrequisito en Junio no se osguarda la nota de POO de Febrero, sino que tendríais que volver apresentaros en Julio)
Si hacéis el examen pero no aprobáis dichos prerrequisitos, en elexpediente os saldrá como INCOMPATIBLE (NO SE GUARDARÁ LA NOTA).
(La SEGUNDA convocatoria de Julio/Septiembre se considera la mismaconvocatoria)
4
Departamento de Lenguajes ySistemas Informáticos (DLSI)
http://www.dlsi.ua.es
5
Profesores y Tutorías
Pedro J. Ponce de León (Teoría y práctica (II))Coordinador Martes de 10:30 a 12:30 y Miércoles de 11:00 a 13:00 E.P.S. IV módulo 2 DESPACHO 18 (2º piso) TUTORÍAS ELECTRÓNICAS SÓLO A TRAVÉS DEL C.V.
David Rizo Valero (Teoría y Prácticas (IG)) (Horario de tutorías por determinar) E.P.S. IV módulo 2 Lab.Invest-4 (2º piso) TUTORÍAS ELECTRÓNICAS SÓLO A TRAVÉS DEL C.V.
Antonio Miguel Corbí Bellot (Prácticas) (Horario de tutorías por determinar) E.P.S. IV módulo 2 DESPACHO 08 (2º piso) TUTORÍAS ELECTRÓNICAS SÓLO A TRAVÉS DEL C.V.
Cita Previa: www.dlsi.ua.es (enlace ‘Reserva de Tutorias’)
6
Horarios POO 2010Teoría (6 grupos)
Para teoría se aconseja acudir siempre al mismo turno
A: ITIG B: II + ITIS
7
Horarios POO 2010Prácticas (5 + 7 turnos)
A: ITIGB: II + ITIS
8
Gestión de Prácticas¿Cómo nos apuntamos?
Prácticas preferiblemente por parejas Las parejas tendrán preferencia en el sorteo de turnos. Si no hay ordenadores para todos se os asignará una pareja al azar.
Matriculación a través de la web de la EPS http://www.eps.ua.es
Selección de turno desde el 8 de Septiembre (Miércoles) a las 9:00 a.m. al 16 de Septiembre (Jueves) 9:00 p.m.
SORTEO: EL DÍA 17 DE SEPTIEMBRE. Resultados: saldrán en la web de la escuela a lo largo del día. Importante: Elegid más de una opción!!!! (máx. 4)
9
Gestión de Prácticas¿Cómo nos apuntamos?
CAMBIOS Y REZAGADOS: Tutoría electrónica a Antonio Corbí A TRAVÉS DEL CV.
El día 20 de Septiembre saldrán los turnos con huecos libres en el C.V. Especificad en el correo el turno que preferís DE ENTRE LOS QUE TIENEN HUECOS. Se permitirán cambios hasta el 1 de Octubre
AQUELLOS ALUMNOS SIN TURNO A FECHA DE ENTREGA DE LA PRIMERAPRÁCTICA NO PODRÁN SER EVALUADOS
10
Gestión de PrácticasAsistencia
ASISTENCIA OBLIGATORIA Se permiten 4 faltas sin justificar
Las prácticas comienzan el día 21 de Septiembre para todos los grupos.
Primeras clases: Seminario de C++. Podéis acudir al turno que queráis la primera semana Contenido:
Introducción a la librería STL Conceptos generales Herramientas de programación: makefile, tar, g++...
Test de autoevaluación en el CV
Durante el curso, e independientemente del turno asignado, podéis entraren cualquier turno DE VUESTRA TITULACIÓN siempre que queden huecoslibres tras haberse sentado aquéllos que tenían el turno reservado.
11
Temario
Tema 1: Introducción al paradigma Orientado a Objetos (1 sesión) Principales Paradigmas de Programación El Paradigma OO
Motivación Características básicas Características opcionales Historia Metas
Tema 2: Fundamentos de la Programación Orientada a Objetos (3 sesiones) Clases Atributos Operaciones
Constructor, Constructor de Copia y Destructor
El concepto de interfaz El concepto de objeto El diseño de aplicaciones OO
Diagrama de clases Relaciones entre objetos: asociación, todo-parte, dependencia Relaciones entre clases: herencia
12
Temario
Tema 3: Herencia (3 sesiones) Motivación: la herencia como mecanismo de abstracción Caracterización de la herencia Herencia simple
Ppio de sustitución de Liskow Herencia de interfaz Herencia de implementación
Uso seguro de la herencia de implementación Clases abstractas
Herencia múltiple Beneficios y costes de la herencia Herencia vs. Todo-parte Resumen
Tema 4: Gestión de Errores (1 sesión) Excepciones
Motivación y objetivos Concepto de excepción Excepciones en C++
13
Temario
Tema 5: Polimorfismo (4 sesiones) Motivación y objetivos Caracterización del polimorfismo:
Sobrecarga (Overloading) Basada en ámbito Basada en signaturas de tipo
Sobrecarga de operadores Sobrecarga en jerarquías de herencia Alternativas a la sobrecarga: coerción y conversión
Sobreescritura (Overriding) Variables polimórficas
Variable polimórfica simple Variable polimórfica como receptor de mensaje Downcasting (polimorfismo inverso) Variable polimórfica como argumento: Polimorfismo puro o método polimórfico
Genericidad (templates)
14
Contextualización en la carrera
AESI/IS1 (MASI/DSS) (3º/4º) Proporcionan los conocimientos necesarios para diseñar la aplicación que aquí vais a
aprender a implementar
Diseño y Programación Avanzada de Aplicaciones (3º) Aúna conocimientos de AESI/IS1 y de Programación OO
FP1/FP2/PED/Algoritmia Avanzada (4º)/Diseño y Análisis de Algoritmos (3º) Proporcionan la base algorítmica para implementar determinados métodos /TAD’s
siguiendo la filosofía OO
PEI (opt) Aplica el paradigma OO al desarrollo de interfaces de usuario
BD1 / BD2 / HP / PC …
15
Evaluación
Teoría: 50% de la nota final Examen final: test y/o ejercicios, según convocatoria.
Práctica: 50% de la nota final Dos prácticas, cada una aporta el 50% de la nota de
prácticas. Para hacer media, la nota de cada práctica debe ser >= 4
Las notas de teoría y práctica compensan a partir de 4. Si las notasno son compensables, la nota final de la asignatura será la menor deambas, en caso de haberse presentado al examen de teoría.
Si la nota de prácticas es >= 5, se guarda HASTA DICIEMBRE.
Si hay suspendido algún prerrequisito NO SE GUARDA LA NOTA.
16
Evaluación de prácticas
Entrega obligatoria. Cada práctica consta de dos plazos de entrega obligatoria.
La práctica se evalúa en la primera entrega y se puntúa en la segunda entrega. La evaluaciónes completamente automática.
Antes del primer plazo se publica una batería de pruebas, llamada autocorrector.
Las prácticas se evalúan con cuatro tipos de pruebas: Pruebas unitarias del autocorrector (4 puntos) Prueba de documentación (en autocorrector) (1 punto) Prueba de memoria (en autocorrector) (1 punto) Pruebas unitarias adicionales de la primera entrega (4 puntos)
Para que se evalúe la práctica entregada con todas las pruebas, es requisito que funcionecorrectamente con todas las pruebas unitarias del autocorrector.
En caso contrario, la práctica tendrá nota inferior a 4. En la segunda entrega, la práctica se puntuará con el resultado de la evaluación en primera
entrega si y solo si La práctica funciona perfectamente con TODAS las pruebas realizadas. Esto significa que los fallos que se produzcan en la primera entrega deberán ser subsanados
para la segunda entrega.
17
Evaluación: Entregas optativas(a sumar a nota TEO FEBR exclusivamente)
Trabajos optativos: HASTA 2 PUNTOS sobre el aprobado(valorable por el profesor en función tanto de la defensaque haga el alumno como de la síntesis, practicidad yrelevancia para la asignatura del trabajo) Obligatoria la defensa del trabajo en clase: presentación de 10-
15 minutos Ejemplos de trabajos:
Comparativa de lenguajes OO modernos Ejemplo de implementación de persistencia en C++ Conexión de C++ con Bases de Datos Concurrencia en lenguajes OO Implementación de prácticas en otros lenguajes OO (Java, C#, …)
18
Bibliografía (Teoría)
BÁSICA Introducción a la programación orientada a Objetos. Cristina
Cachero, Pedro J. Ponce de León, Estela Saquete, 2006.Ed: Servicio de Publicaciones UA
An Introduction to Object-oriented Programming, 3rd Edition.Timothy Budd, 2001. Ed. Addison-Wesley
COMPLEMENTARIA Object Oriented Analysis and Design with Applications. Grady Booch. Ed.
Addison-Wesley Professional
Object-oriented Software Construction, Bertrand Meyer, 2000. Ed. PrenticeHall. (Disponible en castellano: Construcción de Software Orientado aObjetos)
19
Bibliografía (Prácticas)
BÁSICA y COMPLEMENTARIA
El lenguaje de programación C++, edición especial. BjarneStroustrup. Ed. Addison-Wesley, Madrid.
Thinking in C++. 2nd Edition. Bruce Eckel. Libro electrónico gratuito.http://www.mindview.net/Books/TICPP/ThinkingInCPP2e.html
• Effective C++ : 55 specific ways to improve your programs anddesigns. Scott Meyers. 2005. Addison-Wesley.
20
Más información