Créditos ECTS Créditos ECTS: 6
Horas ECTS Criterios/Memorias Trabajo del Alumno/a ECTS: 97 Horas de Tutorías: 3 Clase Expositiva: 20 Clase Interactiva: 30 Total: 150
Lenguas de uso Castellano, Gallego
Tipo: Materia Ordinaria Grado RD 1393/2007 - 822/2021
Departamentos: Electrónica y Computación
Áreas: Ciencia de la Computación e Inteligencia Artificial
Centro Escuela Técnica Superior de Ingeniería
Convocatoria: Primer semestre
Docencia: Con docencia
Matrícula: Matriculable
El objetivo de la materia es formar al alumnado en los conceptos de la Programación Orientada a Objetos, haciendo especial énfasis nos sus aspectos más prácticos. Esto supone que a la finalización del curso el alumnado estará plenamente capacitado para desarrollar un programa siguiendo el paradigma orientado a objetos como alternativa a la programación basada en procedimientos. Para eso se introducirá al alumnado en el lenguaje de programación más ampliamente usada en la actualidad: Java.
TEORÍA
Tema 1. Encapsulación: Tipos de datos, clases y objetos.
Tema 2. Clases y tipos de datos: Tipos primitivos, referencias y aliasing.
Tema 3. Conjuntos de datos: Arrays, colecciones, listas, conjuntos y mapas.
Tema 4. Herencia de clases: Jerarquías de clases, composición y abstracción.
Tema 5. Polimorfismo: Herencia y simplificación de código.
Tema 6. Interfaces: Abstracción e independencia de clases.
Tema 7. Excepciones: Gestión de errores
Tema 8. Genéricos
PRÁCTICAS
Boletín 1: Clases y objetos.
Boletín 2: Conjuntos de datos.
Boletín 3: Herencia y polimorfismo.
Boletín 4: Interfaces y excepciones.
BIBLIOGRAFÍA BÁSICA (por orden de prioridad)
1. ECKEL, Bruce. Piensa en Java. 4a edición, Prentice Hall, 2007. ISBN: 978-8489660342.
[Sig.: A310 2, Escola de Enxeñería]
2. DEITEL, Harvery M., DEITEL, Paul J. Cómo programar en Java. 9a edición, Pearson Educación, 2004. ISBN: 978-6073211505.
[Sig.: A310 1 1, Escola de Enxeñería (5a edición)]
BIBLIOGRAFÍA COMPLEMENTARIA
3. COHOON, James P., DAVIDSON, Jack W. Programación en Java 5.0. 1a Edición, McGraw-Hill, 2006. ISBN: 978-8448150617.
[Sig.: 3 C60 162, Fac. Física]
4. JOYANES AGUILAR, Luis, ZAHONERO MARTÍNEZ, Ignacio. Programación en Java 6: Algoritmos, Programación Orientada a Objetos e Interfaz Gráfica de Usuario. 1a Edición, MgGraw-Hill, 2011. ISBN: 978-6071506184.
[Sig.: C60 406, Fac. Física]
El alumnado adquirirá un conjunto de competencias específicas de la programación orientada a objetos, pero también una serie de competencias genéricas a cualquier desarrollo de un programa software y, finalmente, unas competencias transversales que inciden en las habilidades personales y en la manera en que el alumnado se relaciona entre sí. Teniendo esto en cuenta, las competencias son las siguientes:
COMPETENCIAS ESPECÍFICAS
* Conocimientos básicos en el uso y programación de ordenadores (FB4), concretamente en la creación de programas siguiendo el paradigma orientado a objetos.
* Conocimiento y utilización de manera eficiente de los tipos y estructuras de datos más acomodados para la resolución de un problema (RI7). Esta competencia es intrínseca del paradigma orientado a objetos, en la medida en que la construcción de los programas comienza modelando las estructuras de datos que permiten modelar el problema.
* Capacidad para analizar, construir y mantener aplicaciones de forma fuerte y eficiente, eligiendo el paradigma y los lenguajes de programación más idóneas (RI8). Esta es una de las principales competencias que se deberían adquirir, dado que a la conclusión del curso el alumnado deberá poder decidir correctamente que paradigma de programación aplicar en función de las características del problema.
COMPETENCIAS GENÉRICAS
* Capacidad para concebir y desarrollar aplicaciones informáticas empleando métodos de la ingeniería del software (CG5). Esta competencia es inherente a la materia de programación orientada a objetos, dado que el objetivo de ella consiste en desarrollar programas usando las características específicas de este tipo de paradigma.
* Capacidad para resolver problemas con iniciativa, toma de decisiones, autonomía y creatividad (CG9). Esta competencia se desarrollará en la resolución de los ejercicios que componen los boletines, donde será preciso decidir qué elementos de la programación se deberán aplicar y cómo implementar la solución habida cuenta las características de la programación orientada a objetos.
COMPETENCIAS TRANSVERSALES
* Capacidad de análisis y síntesis para la resolución de problemas (TR1). Esta competencia se desarrollará en los ejercicios prácticos en los que se prueban las características de la programación orientada a objetos.
* Trabajo en equipo y habilidades en las relaciones interpersonales (TR2). Esta competencia se desarrollará en la propia dinámica de las clases interactivas, en las que el alumnado discutirá las distintas soluciones a los ejercicios de los boletines, de modo que será necesario explotar las habilidades de interacción entre personas.
* Aprendizaje autónomo y adaptación a nuevas situaciones (TR3). En la resolución de los ejercicios fuera de las sesiones de prácticas y en el entendimiento de los conceptos de programación orientada a objetos será preciso desarrollar este tipo de competencias.
COMPETENCIAS DE MÓDULO
* Manejar diferentes niveles de abstracción para estructurar el software a desarrollar.
* Programar bajo el paradigma de la programación orientada a objetos.
* Identificar posibles estrategias de solución a problemas con los conceptos propios de la orientación a objetos, como el uso de la jerarquía, el polimorfismo y la utilización de interfaces de objetos.
* Conocer diferentes paradigmas de programación y saber elegir el más apropiado la cada situación.
La metodología de enseñanza está dirigida a centrar la atención sobre los aspectos prácticos de la programación y sobre los conceptos que diferencian al paradigma orientado a objetos de otras aproximaciones. El alumnado debe estar capacitado, por lo tanto, para entender las ventajas del enfoque orientado a objetos y para desarrollar un programa con solvencia siguiendo este paradigma de programación. Teniendo esto en cuenta, se distinguen tres tipos de actividades de aprendizaje: clases magistrales, sesiones en grupos reducidos, y tutorías en grupos reducidos:
(1) Las clases magistrales (20 horas) están dirigidas a explicar las características de la programación orientada a objetos (herencia, polimorfismo, etc.), haciendo especial énfasis en las diferencias con el paradigma de programación basada en procedimientos e ilustrando con ejemplos las situaciones en las cuales el enfoque orientado a objetos es más idóneo. Para explicar estas características se hará uso de ejemplos sobre el lenguaje de programación Java, aunque en las clases magistrales no se pretende detallar todos los aspectos del lenguaje, si no que su uso está orientado a ilustrar los conceptos del paradigma de programación.
(2) Las sesiones prácticas en grupos reducidos (30 horas) están dirigidas a que el alumnado adquiera destreza en la implementación de programas siguiendo el paradigma orientado a objetos. Por esta razón es importante que en las prácticas se realice un conjunto suficientemente extenso de ejercicios de programación en los que se haga uso de las características de la programación orientada a objetos desde el prisma del lenguaje Java. El alumnado debe realizar tres boletines compuestos a su vez de un conjunto de ejercicios en los que se irán viendo la manera de construir programas orientados a objetos y como hacer uso de las características del paradigma. La asistencia a estas clases es OBLIGATORIA.
De acuerdo con esta metodología de enseñanza, las competencias FB4, RI7, RI8, CG5 y CG9, así como las indicadas en el módulo de programación, tienen contenidos específicos que están vinculados con la parte teórica y práctica de una materia como Programación Orientada a Objetos, en la que se revisan los paradigmas de programación modular y estructurada hasta llegar a una forma de programación más flexible. Estas competencias, por tanto, se evalúan de forma explícita en las pruebas realizadas a lo largo del curso.
Por otra parte, la competencia TR1 se trabajará en los ejercicios prácticos, ya que en ellos se deben analizar los problemas expuestos y sintetizar en su resolución los conceptos de la Programación Orientada a Objetos; la competencia TR2 se trabajará en la dinámica de las clases prácticas en las que se podrán discutir diferentes soluciones a los boletines entre el alumnado; y la competencia TR3 se trabajará en los ejercicios prácticos, ya que en ellos es donde se deberá adoptar un nuevo paradigma de computación, que extiende los conceptos de la programación modular y estructurada.
La evaluación de la materia tendrá lugar de dos maneras diferentes, aunque complementarias, que pretenden evaluar la competencia en la realización práctica de programas y el dominio del paradigma orientado a objetos. Por otra parte, se distinguirá entre la evaluación de la oportunidad común y la de recuperación:
OPORTUNIDAD ORDINARIA
(1) Examen en el que se demostrará el dominio de los aspectos teóricos de la programación orientada a objetos como alternativa a la programación basada en procedimientos, y de aquellas características de Java que inciden sobre este tipo de programación. En este examen se deberá responder a un conjunto de cuestiones sobre las características de la programación orientada a objetos y del lenguaje Java, que constituyen el temario de teoría de la materia. Esta parte representará el 70% de la nota final de la materia.
(2) Realización de un conjunto de boletines en los que se demostrará de manera práctica el dominio del lenguaje de programación Java y de los conceptos de la programación orientada a objetos. Todos los boletines se realizarán de manera individual. Esta parte constituirá el 30% de la nota final de la materia.
Si se entregó el primer boletín se considerará cómo presentado en la materia. Por último, la copia parcial o total de una clase o de un método de alguna de las entregas de los boletines significará el suspenso de toda la materia.
OPORTUNIDAD DE RECUPERACIÓN
Los criterios de evaluación de las partes de teoría y práctica en la oportunidad de recuperación serán exactamente los mismos que para la oportunidad ordinaria. Por tanto, además de superar el examen de teoría y los boletines, para poder superar la materia será necesario que se hubiera asistido a las sesiones prácticas interactivas (con los criterios de asistencia indicados más abajo).
CONTROL DE ASISTENCIA
Tal y como se comentó anteriormente, la asistencia a las sesiones prácticas interactivas es obligatoria debido la que en ellas se abordan conceptos clave de la materia, y el control de esta asistencia se realizará a través de hojas de firmas que se deberán cubrir a la finalización de cada una de las sesiones. Además, si se asiste a menos del 80% de las sesiones prácticas interactivas se considerará que no se superó la materia.
En el caso de realización fraudulenta de ejercicios o pruebas, será de aplicación lo recogido en la Normativa de evaluación del rendimiento académico de los estudantes y de revisión de calificaciones.
En aplicación de la Normativa de la ETSE sobre plagio (aprobada por la Xunta da ETSE el 19/12/2019), la copia total o parcial de algún ejercicio de prácticas o teoría supondrá el suspenso en las dos oportunidades del curso, con la calificación de 0,0 en ambos casos.
Tal y como se indicó anteriormente, la asistencia a las sesiones de prácticas es obligatoria, y además esa participación debería ser activa para así aprovechar de forma adecuada el tiempo. Además de esto, se necesitará un tiempo adicional para trabajar en los siguientes aspectos:
(1) Estudio autónomo de los conceptos de programación orientada a objetos (25 horas). El tiempo dedicado a este estudio no sólo incluye el necesario para preparar el examen teórico, sino también el tiempo que se precisa para entender los conceptos teóricos de forma se puedan aplicar correctamente a la construcción de los programas.
(2) Escritura de ejercicios y trabajos (10 horas). El tiempo dedicado a esta escritura está relacionado con el trabajo que se deberá entregar a la conclusión de cada uno de los boletines de ejercicios, en el cual se deberán explicar cómo se realizó el programa siguiendo el enfoque orientado a objetos.
(3) Completar los ejercicios de los boletines (50 horas). Este tiempo es necesario para que se completen los ejercicios de los boletines que no se acaben en las sesiones de prácticas. En este tiempo se podrá interiorizar la forma de resolver el problema expuesto en el ejercicio, en la medida en que en las sesiones prácticas se hace más énfasis en entender el problema y la forma general en la que se resolverá, mientras que los detalles necesarios para completar los ejercicios se deberán realizar en el tiempo adicional de trabajo práctico.
Para poder aprovechar la materia y adquirir con cierta fluidez los conceptos de la programación orientada a objetos es muy aconsejable aprovechar las clases de teoría, las sesiones de prácticas y las tutorías en grupos reducidos, en la medida en que, tal y como se presentó en el programa y en la metodología docente, estas actividades están directamente relacionadas. Por otra parte, también es muy recomendable que el alumnado explore el material de soporte (páginas web sobre tecnología, tutoriales online de los entornos de desarrollo, descripción de casos de éxito, etc.) en el que se incluyen explicaciones adicionales a las de las clases presenciales y que ayudan a entender y afianzar los conceptos de la programación orientada a objetos y las dudas de programación relacionadas con Java.
El idioma preferente de impartición de las clases expositivas es el gallego. Las clases interactivas se imparten en gallego o castellano.
Maria Purificacion Cariñena Amigo
- Departamento
- Electrónica y Computación
- Área
- Ciencia de la Computación e Inteligencia Artificial
- Teléfono
- 881813563
- Correo electrónico
- puri.carinena [at] usc.es
- Categoría
- Profesor/a: Profesor Contratado/a Doctor
Manuel Lama Penin
Coordinador/a- Departamento
- Electrónica y Computación
- Área
- Ciencia de la Computación e Inteligencia Artificial
- Teléfono
- 881816427
- Correo electrónico
- manuel.lama [at] usc.es
- Categoría
- Profesor/a: Catedrático/a de Universidad
Nicolas Vila Blanco
- Departamento
- Electrónica y Computación
- Área
- Ciencia de la Computación e Inteligencia Artificial
- Correo electrónico
- nicolas.vila [at] usc.es
- Categoría
- Profesor/a: Profesor Ayudante Doctor LOU
Lunes | |||
---|---|---|---|
11:30-14:00 | Grupo /CLIL_03 | Castellano | Aula de Informática I5 |
Martes | |||
11:30-14:00 | Grupo /CLIL_04 | Castellano | Aula de Informática I5 |
15:00-17:00 | Grupo /CLE_01 | Gallego | Aula A2 |
Miércoles | |||
12:00-14:30 | Grupo /CLIL_02 | Gallego | Aula de Informática I7 |
Jueves | |||
09:00-11:30 | Grupo /CLIL_01 | Gallego | Aula de Informática I5 |
08.01.2025 10:00-14:00 | Grupo /CLIL_04 | Aula A1 |
08.01.2025 10:00-14:00 | Grupo /CLE_01 | Aula A1 |
08.01.2025 10:00-14:00 | Grupo /CLIL_01 | Aula A1 |
08.01.2025 10:00-14:00 | Grupo /CLIL_02 | Aula A1 |
08.01.2025 10:00-14:00 | Grupo /CLIL_03 | Aula A1 |
08.01.2025 10:00-14:00 | Grupo /CLE_01 | Aula A2 |
08.01.2025 10:00-14:00 | Grupo /CLIL_01 | Aula A2 |
08.01.2025 10:00-14:00 | Grupo /CLIL_02 | Aula A2 |
08.01.2025 10:00-14:00 | Grupo /CLIL_03 | Aula A2 |
08.01.2025 10:00-14:00 | Grupo /CLIL_04 | Aula A2 |
02.07.2025 16:00-20:00 | Grupo /CLE_01 | Aula A2 |
02.07.2025 16:00-20:00 | Grupo /CLIL_01 | Aula A2 |
02.07.2025 16:00-20:00 | Grupo /CLIL_02 | Aula A2 |
02.07.2025 16:00-20:00 | Grupo /CLIL_03 | Aula A2 |
02.07.2025 16:00-20:00 | Grupo /CLIL_04 | Aula A2 |