programación orientada a objetosvicente/docencia/poo/teoria/poo_0... · 2020. 9. 21. ·...

23
Programación Orientada a Objetos Departamento de Lenguajes y Ciencias de la Computación E.T.S.I. Informática. Univ. de Málaga. Departamento de Lenguajes y Ciencias de la Computación Programación Orientada a Objetos E.T.S.I. Informática. Univ. de Málaga. 1 / 23

Upload: others

Post on 02-Feb-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

  • Programación Orientada a Objetos

    Departamento de Lenguajes y Ciencias de la Computación

    E.T.S.I. Informática. Univ. de Málaga.

    Departamento de Lenguajes y Ciencias de la Computación Programación Orientada a Objetos E.T.S.I. Informática. Univ. de Málaga. 1 / 23

  • Programación Orientada a Objetos

    Presentación de la asignaturaInformación generalObjetivos de la asignaturaMetodología docenteCriterios de codificación y correcciónSistema de evaluaciónPrograma de la asignaturaBibliografía

    Esta obra se encuentra bajo una licencia Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional (CC BY-NC-SA 4.0) de Creative Commons.

    Departamento de Lenguajes y Ciencias de la Computación Programación Orientada a Objetos E.T.S.I. Informática. Univ. de Málaga. 2 / 23

  • Programación Orientada a Objetos

    Centro: E.T.S. de Ingeniería Informática

    Departamento: Lenguajes y Ciencias de la Computación

    Asignatura: Programación Orientada a Objetos

    Campus Virtual: https://informatica.cv.uma.es/

    Profesor: Vicente Benjumea García

    email: [email protected]

    Tutorías: segundo cuatrimestre (Despacho: 3.2.3)Lunes: 12:30 – 14:30 (a través de videoconferencia con cita previa)Miércoles: 12:30 – 14:30 (a través de videoconferencia con cita previa)Viernes: 12:30 – 14:30 (a través de videoconferencia con cita previa)

    Horario de Clases y Laboratorios:Ver documento con la planificación de la asignatura

    Departamento de Lenguajes y Ciencias de la Computación Programación Orientada a Objetos E.T.S.I. Informática. Univ. de Málaga. 3 / 23

  • Programación Orientada a Objetos

    Grupos de Laboratorio:G1: Miércoles de 17:15-19:00.

    G2: Viernes de 17:15-19:00.

    Los alumnos con problemas para asistir a un determinado grupo, pueden enviarun correo a [email protected] con asunto POO Cambio de Grupo, antesdel 5 de Marzo, explicando las razones (justificables).

    Nótese que la solicitud se debe enviar y recibir antes de realizar la asignación degrupos, de tal forma que se pueda realizar una división equilibrada de los mismos.

    Los alumnos con reconocimiento de tiempo parcial o deportistas de altonivel deben indicarlo en la justificación de la solicitud de cambio de grupo.

    Departamento de Lenguajes y Ciencias de la Computación Programación Orientada a Objetos E.T.S.I. Informática. Univ. de Málaga. 4 / 23

  • Programación Orientada a Objetos

    Objetivos de la asignaturaIntroducir el paradigma de la Programación Orientada a Objetos

    El alumno conozca los conceptos teóricos del paradigma de la ProgramaciónOrientada a Objetos.El alumno conozca y utilice adecuadamente los mecanismos de la POO para laresolución de problemas.Aprenda a desenvolverse con las distintas librerías proporcionadas por loslenguajes OO.Se estudiará el lenguaje de programación Java.

    Departamento de Lenguajes y Ciencias de la Computación Programación Orientada a Objetos E.T.S.I. Informática. Univ. de Málaga. 5 / 23

  • Programación Orientada a Objetos

    Metodología docenteEl desarrollo de las clases seguirá un enfoque práctico.Sesiones de teoría, a través de videoconferencia.

    Las explicaciones de teoría se encuentran grabadas en videotutoriales. Esconveniente que el alumno vea los videotutoriales antes de las sesiones.Teoría: en que se exponen los conceptos básicos.Ejemplos: para ilustrar los conceptos expuestos.Ejercicios: para afianzar y asimilar los conceptos adquiridos.

    Sesiones de laboratorio (presenciales en grupos reducidos).En el laboratorio se pondrán en práctica los conceptos adquiridos.Las prácticas de laboratorio NO son prácticas de mecanografía.Es importante que el alumno estudie la teoría y videotutoriales antes de lascorrespodientes sesiones de laboratorio.Es necesario el código de usuario (números, ¿alias?) y contraseña del CV.

    Tutorías, a través de videoconferencia.Trabajo autónomo del alumno de los contenidos teóricos y prácticos de laasignatura. Al menos 6 horas semanales (además de las clases).A programar se aprende PROGRAMANDO.

    Departamento de Lenguajes y Ciencias de la Computación Programación Orientada a Objetos E.T.S.I. Informática. Univ. de Málaga. 6 / 23

  • Programación Orientada a Objetos

    Prácticas de laboratorio (presenciales en grupos reducidos)Además de los ejemplos realizados durante las explicaciones de teoría, y de losejercicios adicionales para realizar en casa, el alumno debe realizar prácticas delaboratorio periódicamente.Existe una tarea en el campus virtual, donde el alumno deberá subir losejercicios realizados de una determinada práctica de laboratorio, dentro delplazo de entrega para cada práctica.Los ejercicios se realizarán durante la práctica de laboratorio, y aquellosejercicios que no hayan sido realizados en el laboratorio, se deberán realizar encasa, dentro del plazo de entrega para cada práctica.De forma periódica, se publicarán los resultados de las correcciones de lasprácticas (se aplicarán las pruebas JUnit correspondientes a cada ejercicio).

    La tabla de correcciones es informativa, sin efectos en la evaluación.

    Departamento de Lenguajes y Ciencias de la Computación Programación Orientada a Objetos E.T.S.I. Informática. Univ. de Málaga. 7 / 23

  • Programación Orientada a Objetos

    Estudio y trabajo autónomo del alumnoPara un alumno de primer curso, lo más importante es la capacidad de trabajoautónomo y esfuerzo desde el primer día del curso.Los alumnos deben ser conscientes de que deben gestionar su tiempo,trabajo y esfuerzo adecuadamente desde el principio del curso, incluso aunqueel profesor no les haya “puesto” ninguna tarea explícitamente.El aprendizaje necesita de un esfuerzo y dedicación continuada, y unaasimilación progresiva de los conceptos.No es posible adquirir los conocimientos proporcionados y requeridos en unaasignatura en un corto espacio de tiempo, su asimilación debe ser progresiva ycontinuada a lo largo del curso.Los alumnos hacen muy poco uso de las tutorías, y es un recurso queutilizado adecuadamente (por alumnos que trabajen adecuadamente y deforma continuada a lo largo del curso) proporciona numerosas ventajas deaprendizaje.

    Departamento de Lenguajes y Ciencias de la Computación Programación Orientada a Objetos E.T.S.I. Informática. Univ. de Málaga. 8 / 23

  • Programación Orientada a ObjetosEstudio y trabajo autónomo del alumno

    La asignatura es práctica, por lo que no basta con saber los conocimientos teóricos,es necesario saber cómo aplicarlos para resolver problemas y desarrollar programas.Para poder asimilar el contenido de la asignatura, es muy importante el estudio ytrabajo autónomo del alumno, al menos 6 horas semanales (además de las clases).A programar se aprende PROGRAMANDO, pero no sólo programando, es necesariodisponer de los conocimientos teóricos adecuados.

    El alumno debe estudiar los conocimientos teóricos, y comprender el PORQUÉ,CUANDO, CÓMO y DONDE se utilizan.El alumno debe desarrollar los programas de los ejercicios y prácticas de laboratoriopropuestas, debe comprobar que su ejecución es correcta, y cuando los termineadecuadamente, debe analizar y comparar su solución con la solución proporcionadapor el profesor, y extraer conclusiones adecuadas.Cuando el alumno estudia los ejemplos y soluciones proporcionadas por el profesor,debe intentar comprender el PORQUÉ de cada sentencia y su justificación.El alumno debe utilizar las pruebas unitarias JUnit que proporciona el profesor paracomprobar que su programa funciona adecuadamente.COPIAR LA SOLUCIÓN NO SIRVE DE NADA. El cerebro aprende con el esfuerzode enfrentarse a la resolución de un problema. Si se copia la solución, o parte de ella, elcerebro no se esfuerza y no aprende. Cada ejercicio es un oportunidad para aprenderalgo. Si se copia la solución, o parte de ella, se pierde esa oportunidad.Si el alumno tiene dudas, debe pasar por tutorías.

    Departamento de Lenguajes y Ciencias de la Computación Programación Orientada a Objetos E.T.S.I. Informática. Univ. de Málaga. 9 / 23

  • Programación Orientada a ObjetosEntorno de trabajo

    Los controles y exámenes se realizarán en los ordenadores de los laboratoriosde prácticas del departamento (desde 3.1.1 hasta 3.1.12)No está permitido que los alumnos realicen los controles y exámenes en suspropios portátiles.Por ello, los alumnos deben estar familiarizados con los mecanismosnecesarios para realizar la prueba en los ordenadores del laboratorio.

    Deben conocer su código de usuario (los números del carnet de estudiante dela UMA, a veces el alias no es adecuado) y la contraseña.Deben conocer su código de usuario y la contraseña para acceder a laasignatura en el campus virtual, para poder realizar la entrega de loscontroles en las tareas correspondientes.Deben conocer el S.O. y el entorno de desarrollo instalado en los laboratorios,según la configuración de los mismos.

    Es responsabilidad del alumno saber manejar adecuadamente el entorno dedesarrollo (ordenador, cuentas de usuario, entorno de desarrollo, editores,compiladores, guardar regularmente el código fuente, etc) de loslaboratorios cuando se presente a un determinado control o examen, para ello,entre otras cosas, se realizan las prácticas de laboratorio durante el curso.

    Departamento de Lenguajes y Ciencias de la Computación Programación Orientada a Objetos E.T.S.I. Informática. Univ. de Málaga. 10 / 23

  • Programación Orientada a Objetos

    Criterios de codificación y correcciónSólo están permitidas las sentencias y estructuras de selección e iteración queaparecen en los apuntes y que serán vistas en clase (if, switch, while,do-while, for, etc.). No se podrán usar otras como continue, etc. Lasentencia break sólo se podrá utilizar en la estructura switch.No se puede modificar la variable de control de un bucle for dentro de sucuerpo. El número máximo de iteraciones que realiza el bucle for debe quedarclaramente especificado en la cabecera del mismo.En un método que devuelva un valor, sólo se utilizará una única sentenciareturn, y será la última sentencia del cuerpo de dich método. En un métodoque no devuelva ningún valor, no se utilizará ninguna sentencia return.Estos criterios de codificación serán considerados en la corrección del códigoproporcionado por el alumno.

    Departamento de Lenguajes y Ciencias de la Computación Programación Orientada a Objetos E.T.S.I. Informática. Univ. de Málaga. 11 / 23

  • Sistema de EvaluaciónConvocatorias de Junio y Septiembre Con Evaluación Continua

    Para acceder a la modalidad de evaluación continua, es necesario que el alumno realicetodos los controles, y además, asista y entregue al menos el 60% de las prácticas delaboratorio.

    La realización de los controles es obligatoria.La asistencia a las prácticas de laboratorio es obligatoria.

    Es obligatorio registrar la asistencia al laboratorio en la tarea del CampusVirtual.Excepto para alumnos enfermos o en cuarentena (necesario justificante médico).

    Es obligatoria la entrega de las prácticas realizadas en la tarea del CampusVirtual.Se recomienda que las prácticas entregadas superen las pruebas de JUnitproporcionadas en el Campus Virtual.

    La asistencia a las clases de teoría es muy recomendable.Para los alumnos que siguen la modalidad de evaluación continua, la calificación en lasconvocatorias de Junio y Septiembre se realiza de la siguiente forma:

    Los controles realizados durante el curso se califican sobre un máximo de 4 puntos.Control-1: 2 pts. Temas 1 y 2.Control-2: 2 pts. Temas 1, 2, 3 y 4.

    El examen final se califica con un máximo de 10 puntos menos lo obtenido en elapartado anterior.La calificación final será la suma de las calificaciones.Se aprueba con un mínimo de 5 sobre 10 puntos.

    NotaFinal = 0.2 × C1 + 0.2 × C2 + 10−(0.2×C1+0.2×C2)10 × Examen

    Departamento de Lenguajes y Ciencias de la Computación Programación Orientada a Objetos E.T.S.I. Informática. Univ. de Málaga. 12 / 23

  • Sistema de Evaluación

    Convocatorias de Junio y Septiembre Sin Evaluación ContinuaPara calcular la calificación en las convocatorias de Junio y Septiembre de losalumnos que no han seguido la modalidad de evaluación continua:

    Se califica un cuestionario teórico sobre un máximo de 3 puntos.Se califica un examen final sobre un máximo de 7 puntos.La calificación final será la suma de las calificacionesSe aprueba con un mínimo de 5 sobre 10 puntos.Final = 0.3 × Teoria + 0.7 × Examen

    Departamento de Lenguajes y Ciencias de la Computación Programación Orientada a Objetos E.T.S.I. Informática. Univ. de Málaga. 13 / 23

  • Sistema de Evaluación

    Convocatorias Extraordinarias (Diciembre)Para calcular la calificación para todos los alumnos en las convocatoriasextraordinarias:

    Se califica un examen final sobre un máximo de 10 puntos que proporciona el100% de la calificación.Se aprueba con un mínimo de 5 sobre 10 puntos.Final = 1.0 × Examen

    Para presentarse en las convocatorias extraordinarias, es necesario serrepetidor, estar matriculado en la asignatura, y presentar una instancia en lasecretaría del centro.

    En un determinado curso, de las tres convocatorias disponibles (Diciembre,Junio y Septiembre), sólo es posible presentarse a un máximo de dos.En total, sólo es posible presentarse a un máximo de seis convocatorias.

    Departamento de Lenguajes y Ciencias de la Computación Programación Orientada a Objetos E.T.S.I. Informática. Univ. de Málaga. 14 / 23

  • Sistema de Evaluación

    Alumnos a Tiempo Parcial o Deportistas de Alto NivelLos alumnos con reconocimiento de tiempo parcial o deportistas de altonivel se consideran, en principio, alumnos que no siguen el proceso deevaluación continua. No obstante, en función de su situación particular,pueden optar por el proceso de evaluación continua.

    AnexoEl profesor se reserva el derecho de verificar la calificación obtenida por unalumno, tanto en los controles como en el examen final, realizando lacorrespondiente revisión interactiva en presencia del alumno.

    Departamento de Lenguajes y Ciencias de la Computación Programación Orientada a Objetos E.T.S.I. Informática. Univ. de Málaga. 15 / 23

  • Programación Orientada a ObjetosPrograma de la asignatura

    Tema 1. Introducción a la programación orientada a objetos.Tema 2. Introducción a Java.Tema 3. Tratamiento de excepciones.Tema 4. Clases básicas predefinidas. Entrada/Salida.Tema 5. Colecciones e iteradores.

    Distribución de Sesiones

    Núm. Sesiones Teoría Laboratorio

    Tema-1: 2 0Tema-2: 6 3Tema-3: 1 1Tema-4: 4 2Tema-5: 5 3Control: 0 2

    Total Horas: 36 22

    Departamento de Lenguajes y Ciencias de la Computación Programación Orientada a Objetos E.T.S.I. Informática. Univ. de Málaga. 16 / 23

  • Programación Orientada a Objetos

    Tema 1. Introducción a la programación orientada a objetos.Evolución de los lenguajes de programación.Conceptos fundamentales de la POO:

    Clases y objetos.Metodos, mensajes y atributos.Composición y herencia.Polimorfismo y vinculación dinámica.

    Departamento de Lenguajes y Ciencias de la Computación Programación Orientada a Objetos E.T.S.I. Informática. Univ. de Málaga. 17 / 23

  • Programación Orientada a Objetos

    Tema 2. Introducción a Java.Introducción a Java.Programas y paquetes.Clases y objetos, tipos y variables.Elementos del lenguaje.Control de errores.Cadenas de caracteres.Arrays.Herencia, polimorfismo y vinculación dinámica.Clases abstractas e interfaces.

    Departamento de Lenguajes y Ciencias de la Computación Programación Orientada a Objetos E.T.S.I. Informática. Univ. de Málaga. 18 / 23

  • Programación Orientada a Objetos

    Tema 3. Tratamiento de excepciones.Software tolerante a fallos. El concepto de excepción.Captura y tratamiento de excepciones.Propagación de excepciones.Excepciones predefinidas.Definición de nuevas excepciones.

    Departamento de Lenguajes y Ciencias de la Computación Programación Orientada a Objetos E.T.S.I. Informática. Univ. de Málaga. 19 / 23

  • Programación Orientada a Objetos

    Tema 4. Clases básicas predefinidas. Entrada/Salida.Organización en paquetes.Clases básicas: java.lang.Clases básicas del paquete java.util.Entrada/Salida. java.io.

    Departamento de Lenguajes y Ciencias de la Computación Programación Orientada a Objetos E.T.S.I. Informática. Univ. de Málaga. 20 / 23

  • Programación Orientada a Objetos

    Tema 5. Colecciones e iteradores.Clases genéricas.Clases ordenables.Colecciones y correspondencias.

    Las interfaces básicas y sus implementaciones.Conjuntos, listas y correspondencias.Colecciones y correspondencias ordenadas.

    Decoradores.Algoritmos sobre arrays. La clase Arrays.

    Departamento de Lenguajes y Ciencias de la Computación Programación Orientada a Objetos E.T.S.I. Informática. Univ. de Málaga. 21 / 23

  • Bibliografía Básica

    S. Reges y M. Stepp. “Building Java Programs: a back to basics approach”.Pearson, 2011.

    Fco. Durán, Fco. Gutiérrez y E. Pimentel “Programación Orientada a Objetoscon Java”. Thomson, 2007.

    M. Campione, K. Walrath y A. Huml “The Java tutorial: a short course on thebasics”. Addison-Wesley, 2001.http://docs.oracle.com/javase/tutorial/

    K. Arnold, J. Gosling y D. Holmes “El lenguaje de programación Java”.Addison-Wesley, 2001.

    D. Arnow y G. Weiss “Introducción a la programación con Java: un enfoqueorientado a objetos”. Addison-Wesley, 2000.

    P. Deitel y H. Deitel “Java SE 8 for Programmers”. Prentice Hall, 2014.

    Departamento de Lenguajes y Ciencias de la Computación Programación Orientada a Objetos E.T.S.I. Informática. Univ. de Málaga. 22 / 23

  • Bibliografía Complementaria

    K. Mughal y R. Rasmunssen “A Programmer’s Guide to Java Certification”.Addison-Wesley, 1999.

    M. Campione, K. Walrath y A. Huml “The Java tutorial continued: the rest ofthe JDK”. Addison-Wesley, 2003.http://docs.oracle.com/javase/tutorial/

    K. Walrath y M. Campione “The JFC Swing tutorial: a guide constructingGUIs”. Addison-Wesley, 2001.http://docs.oracle.com/javase/tutorial/

    B. Eckel “Thinking in Java”. Prentice Hall, 2003.http://www.mindview.net/Books/TIJ

    I. Horton “Beginning Java”. Jon willey & Son, 2011.

    Departamento de Lenguajes y Ciencias de la Computación Programación Orientada a Objetos E.T.S.I. Informática. Univ. de Málaga. 23 / 23