Créditos ECTS Créditos ECTS: 6
Horas ECTS Criterios/Memorias Traballo do Alumno/a ECTS: 99 Horas de Titorías: 3 Clase Expositiva: 24 Clase Interactiva: 24 Total: 150
Linguas de uso Castelán, Galego
Tipo: Materia Ordinaria Grao RD 1393/2007 - 822/2021
Departamentos: Electrónica e Computación
Áreas: Ciencia da Computación e Intelixencia Artificial
Centro Escola Técnica Superior de Enxeñaría
Convocatoria: Primeiro semestre
Docencia: Sen docencia (Extinguida)
Matrícula: Non matriculable
O obxectivo da materia é formar o alumno nos conceptos da Programación Orientada a Obxectos, facendo especial énfase nos seus aspectos máis prácticos. Isto supón que á finalización do curso o alumno estará plenamente capacitado para desenvolver un programa seguindo o paradigma orientado a obxectos como alternativa á programación procedemental. Para iso introducirase ó alumno na linguaxe de programación máis amplamente usada na actualidade: Java.
TEORÍA
Tema 1. Introducción á Programación Orientada a Obxectos
Tema 2. Abstracción de tipos: Clases e obxectos
Tema 3. Estructuras de datos e almacenamento de obxectos
Tema 4. Herdanza de clases: Reutilización
Tema 5. Polimorfismo
Tema 6. Excepcións: Xestión de erros
Tema 7. Interfaces: Independenza de clases
Tema 8. Interfaces gráficas
PRÁCTICAS
Proxecto: Parte 1.
* Creación das clases do proxecto
* Sobrecarga de métodos e constructores
* Implementar parcialmente a funcionalidade do proxecto
* Uso de entrada/saída a través de ficheiros
Proxecto: Parte 2
* Completar as funcionalidades do proxecto
* Uso e implementación de interfaces
* Uso de excepcións para tratamento de erros en execución
Proxecto: Parte 3
* Xerarquías de clases e polimorfismo de métodos
* Uso de clases abstractas para reutilización
* Uso de clases e métodos finais
* Herdanza de excepcións
Proxecto: Parte 4 (opcional)
* Interfaces gráficas
* Uso de herdanza e interfaces en aplicacións gráficas
* Tratamento de eventos de usuario
BIBLIOGRAFÍA BÁSICA (por orden de prioridade)
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]
O alumno adquirirá un conxunto de competencias específicas da programación orientada a obxectos, pero tamén una serie de competencias xenéricas a calquera desenvolvemento dun programa software e, finalmente, unhas competencias transversais que inciden nas habilidades personais do alumno e no xeito no que se relaciona con demais alumnos. Tendo isto en conta, as competencias son as seguintes:
COMPETENCIAS ESPECÍFICAS
* Coñecementos básicos no uso e programación de ordenadores (FB4), concretamente na creación de programas seguindo o paradigma orientado a obxectos.
* Coñecemento e utilización de xeito eficiente dos tipos e estructuras de datos máis axeitados para a resolución dun problema (RI7). Esta competencia é intrínseca do paradigma orientado a obxectos, na medida en que a construcción dos programas comeza modelando as estructuras de datos que permiten modelar o problema.
* Capacidade para analizar, construír e manter aplicacións de forma robusta e eficiente, elexindo o paradigma e as linguaxes de programación máis axeitadas (RI8). Esta é unha das principais competencias que o alumno debería adquirir, dado que á conclusión do curso o alumno deberá poder decidir correctamente qué paradigma de programación aplicar en función das características do problema.
COMPETENCIAS XENÉRICAS
* Capacidade para concebir e desenvolver aplicacións informática empregando métodos da enxeñaría do software (CG5). Esta competencia é inherente á materia de programación orientada a obxectos, dado que o obxectivo dela consiste en desenvolver programas usando as características específicas desde tipo de paradigma.
* Capacidade para resolver problemas con iniciativa, toma de decisións, autonomía e creatividade (CG9). O alumno deberá desenvolver esta competencia na resolución dos exercicios que compoñen os boletíns, onde será preciso que decida qué estructuras de datos aplicar e cómo implementar a solución tendo en conta as características da programación orientada a obxectos.
COMPETENCIAS TRANSVERSAIS
* Capacidade de análise e síntese para a resolución de problemas (TR1). O alumno deberá desenvolver esta competencia para poder realizar os exercicios prácticos nos que se proban as características da programación orientada a obxectos.
* Traballo en equipo e habilidades nas relacións interpersonais (TR2). Esta competencia desenvolverase na resolución do último exercicio dos boletíns, que deberá realizarse en parella con outro alumno e onde será necesario explotar as habilidades de interacción entre persoas.
* Aprendizaxe autónomo e adaptación a novas situacións (TR3). Na resolución dos exercicios fóra das sesións de prácticas e no entendemento dos conceptos de programación orientada a obxectos será preciso desenvolver este tipo de competencias.
COMPETENCIAS DE MÓDULO
* Manexar diferentes niveis de abstracción para estruturar o software a desenvolver.
* Programar baixo a paradigma da programación orientada a obxectos.
* Identificar posibles estratexias de solución a problemas cos conceptos propios da orientación a obxectos, como o uso da xerarquía, o polimorfismo e a utilización de interfaces de obxectos.
* Coñecer diferentes paradigmas de programación e saber elixir o máis apropiado a cada situación.
A metodoloxía da ensinanza está dirixida a focalizar a materia sobre os aspectos prácticos da programación e sobre os conceptos que diferencian ó paradigma orientado a obxectos doutras aproximacións. O alumno debe estar capacitado, polo tanto, para entender as vantaxes do enfoque orientado a obxectos e para desenvolver un programa con solvencia seguindo este paradigma de programación. Tendo isto en conta, distínguense tres tipos de actividades de aprendizaxe: clases maxistrais, sesións en grupos reducidos, e titorías en grupos reducidos. Así:
(1) As clases maxistrais (20 horas) están dirixidas a explicar as características da programación orientada a obxectos (herdanza, polimorfismo, etc.), facendo especial énfase nas diferencias co paradigma de programación procedural e ilustrando con exemplos as situacións nas cales o enfoque orientado a obxectos é máis axeitado. Para explicar estas características farase uso de exemplos sobre a linguaxe de programación Java, ainda que nas clases maxistrais non se pretende detallar todos os aspectos da linguaxe: o seu uso está orientado a ilustrar os conceptos do paradigma de programación.
(2) As sesións prácticas en grupos reducidos (30 horas) están dirixidas a que o alumno adquira destreza na implementación de programas seguindo o paradigma orientado a obxectos. Por elo é importante que nestas prácticas se realice un conxunto suficientemente extenso de exercicios de programación nos que se faga uso das características da programación orientada a obxectos desde o prisma da linguaxe Java. Para elo os alumnos deberan realizar tres boletíns compostos á súa vez dun conxunto de exercicios nos que se irán vendo o xeito de construír programas orientados a obxectos e cómo facer uso das características do paradigma. A asistencia a estas clases por parte do alumnos é OBRIGATORIA.
Tendo en conta esta metodoloxía de ensino, as competencias FB4, RI7, RI8, CG5 e CG9, así como as indicadas no módulo de programación, teñen contidos específicos que están vencellados coa parte teórica e práctica dunha materia como Programación Orientada a Obxectos, na que se revisan os paradigmas de programación modular e estruturada ata chegar a unha forma de programación máis flexible. Estas competencias, por tanto, avalíanse de forma explícita nas probas realizadas ao longo do curso.
Por outra banda, a competencia TR1 traballarase nos exercicios prácticos (tanto no boletín como no proxecto), xa que neles débense analizar os problemas expostos e sintetizar na súa resolución os conceptos da Programación Orientada a Obxectos; a competencia TR2 traballarase fundamentalmente no proxecto, no que é necesario interaccionar con outro alumno para poder levar a bo porto un problema complexo de programación; e a competencia TR3 traballarase nos exercicios prácticos, xa que neles é onde o alumno debe adaptarse a un novo paradigma de computación, que estende os conceptos da programación modular e estruturada.
NO CASO DE QUE A USC DETERMINE O PASO A ESCENARIO 2 (DISTANCIAMENTO) OU ESCENARIO 3 (PECHE DE INSTALACIÓNS), A METODOLOXÍA DE ENSINANZA MODIFICARASE SEGUNDO O PLAN DE CONTINXENCIA INDICADO NO APARTADO "OBSERVACIÓNS".
A avaliación da materia terá lugar de dous xeitos diferentes, aínda que complementarios, que pretenden avaliar a competencia do alumno na realización práctica de programas e o dominio do paradigma orientado a obxectos. Por outra parte, distinguirase entre a avaliación da oportunidade ordinaria e a de recuperación:
OPORTUNIDADE ORDINARIA
(1) Exame no que o alumno demostrará o dominio dos aspectos teóricos da programación orientada a obxectos como alternativa á programación procedemental, e daquelas características de Java que inciden sobre este tipo de programación. Este exame constituirá o 50% da nota final da materia, e consistirá de dúas partes que o alumno deberá aprobar por separado para superar a parte teórica da asignatura:
1.(a) Na primeira parte o alumno deberá respostar a un conxunto de preguntas curtas sobre as características da programación orientada a obxectos e da linguaxe Java. Esta parte constituirá o 50% da nota de teoría.
1.(b) Na segunda parte o alumno deberá realizar nun ordenador a programación dun conxunto de problemas que focalizarán sobre aqueles aspectos da programación que non foron tratados en profundidade nos exercicios da parte práctica da asignatura. Esta parte constituirá o outro 50% da nota de teoría.
(2) Realización dun proxecto no que o alumno demostrará de xeito práctico o dominio da linguaxe de programación Java e dos conceptos da programación orientada a obxectos. Esta parte constituirá o 50% da nota final da materia e sera realizado en parellas por mor de reducir a carga de traballo e para que os alumnos poidan discutir sobre as decisións de deseño e implementación. Este proxecto dividirase en tres partes:
2.(a) Proxecto: Parte 1. Nesta parte do proxecto os alumnos crearán o conxunto de clases coas que se modelarán os conceptos que describen as principais entidades do proxecto. Así, especificaranse os atributos de cada clase, e implementaranse tanto os construtores, nos que se dan valores iniciais a ditos atributos, como parte dos métodos, que proporcionan a funcionalidade do proxecto. Tamén incorporarán utilidades para a lectura dos datos de entrada do programa. Dende o punto de vista teórico, nesta parte o alumno traballará fundamentalmente sobre o concepto de encapsulación e de sobrecarga de métodos. Esta parte constituirá o 35% da nota práctica.
2.(c) Proxecto: Parte 2. Na segunda parte do proxecto os alumnos completarán as funcionalidades do proxecto que non foron implementadas na parte 1, e ademais incorporarán as excepcións, que tratan os erros que teñen lugar durante a execución do programa. Esta parte constituirá o 30% da nota práctica.
2.(d) Proxecto: Parte 3. Na última parte do proxecto o alumno desenvolverá xerarquías de clases seguindo os requisitos indicados no proxecto, incorporando o polimorfismo como elemento clave á hora de favorecer a reutilización de código. Ademais, nesta parte tamén se estenderá o uso da xerarquía ás excepcións implementadas na parte 3 e implementarán interfaces coas que independizan a implementación das clases. Esta parte do proxecto constituirá o 35% da nota práctica.
Como parte opcional do proxecto presentarase ó alumno a implementación dunha interfaz gráfica. Isto xustifícase en que o desenvolvemento de interfaces gráficas é un elemento central da linguaxe Java e que ademais nese desenvolvemento faise uso intensivo de todas as características da programación orientada a obxectos. Este boletín poderá supoñer un incremento adicional do 15% da nota da parte práctica, ata o límite de que dito incremento supere a nota máxima de 10.
Para aprobar a parte práctica da asignatura será necesario superar todas as partes do proxecto. Ademais, a avaliación da parte práctica será continua, o que significa que o alumno deberá ir superando cada unhas das tres partes do proxecto a medida que se van plantexando ó longo do curso.
Por outra banda, se un alumno entregou a primeira parte do proxecto considerarase como presentado na materia. Por último, a copia parcial ou total dunha clase ou dun método dalgunha das entregas do proxecto significará o suspenso de toda a asignatura.
OPORTUNIDADE DE RECUPERACIÓN
Os criterios de avaliación das partes de teoría e práctica na oportunidade de recuperación serán exactamente os mesmos que para a oportunidade ordinaria. Xa que logo, ademais de superar os dous exames de teoria e todas as partes do proxecto, para poder superar a materia será necesario que o alumno asistira ás sesións prácticas interactivas (cos criterios de asistencia indicados máis abaixo). Nesta avaliación, ademais, o proxecto terase que realizar de forma individual.
CONTROL DE ASISTENCIA
Tal e como se comentou anteriormente, a asistencia ás sesións prácticas interactivas é obrigatoria debido a que nelas se abordan conceptos clave da materia, e o control desta asistencia realizarase a través de follas de firmas que os alumnos deberán cubrir á finalización de cada unha das sesións. Ademais, se un alumno asiste a menos do 80% das sesións prácticas interactivas considerarase que non superou a materia; mentres que se asiste polo menos ó 95% e ó 100% das sesións prácticas interactivas terá 0.1 e 0.2 puntos adicionais na nota final da materia, respectivamente (sempre que non supere a puntuación de 10).
No caso de realización fraudulenta de exercicios ou probas, será de aplicación o recollido na Normativa de avaliación do rendemento académico dos estudantes e de revisión de cualificacións.
En aplicación da Normativa da ETSE sobre plaxio (aprobada pola Xunta da ETSE o 19/12/2019), a copia total ou parcial dalgún exercicio de prácticas ou teoría suporá o suspenso nas dúas oportunidades do curso, coa cualificación de 0,0 en ambos casos.
NO CASO DE QUE A USC DETERMINE O PASO A ESCENARIO 2 (DISTANCIAMENTO) OU ESCENARIO 3 (PECHE DE INSTALACIÓNS), O SISTEMA DE AVALIACIÓN MODIFICARASE SEGUNDO O PLAN DE CONTINXENCIA INDICADO NO APARTADO "OBSERVACIÓNS".
Tal e como se indicou anteriormente, a asistencia ás sesións de prácticas é obrigatoria, e ademais esa participación debería ser activa para así aproveitar de forma adecuada o tempo. Ademais disto, o alumno necesitará un tempo adicional para traballar nos seguintes aspectos:
(1) Estudo autónomo dos conceptos da programación orientada a obxectos (25 horas). O tempo dedicado a este estudo non só inclúe o necesario para preparar o exame teórico, senón tamén o tempo que o alumno precisa para entender os conceptos teóricos de forma que os poida aplicar correctamente á construción dos programas.
(2) Escritura de exercicios e traballos (10 horas). O tempo dedicado a esta escritura está relacionado co traballo que deberán entregar os alumnos á conclusión de cada un dos boletíns de exercicios, no cal deberán de explicar como realizaron o programa seguindo o enfoque orientado a obxectos.
(3) Completar os exercicios dos boletíns (50 horas). Este tempo é necesario para que o alumno complete os exercicios dos boletíns que non terá tempo de acabar nas sesións de prácticas. Neste tempo o alumno poderá interiorizar a forma de resolver o problema exposto no exercicio, na medida en que nas sesións prácticas faise máis énfases en entender o problema e a forma xeral na que se resolverá, mentres que os detalles necesarios para completar os exercicios deberanse realizar no tempo adicional de traballo práctico.
Para poder aproveitar a materia e adquirir con certa fluidez os conceptos da programación orientada a obxectos é moi aconsellable aproveitar as clases de teoría, as sesións de prácticas e as titorías en grupos reducidos, na medida en que, tal e como se presentou no programa e na metodoloxía docente, estas actividades están directamente relacionadas. Por outra parte, tamén é moi recomendable que o alumno explore o material de soporte (páxinas web sobre tecnoloxía, tutoriais online dos entornos de desenvolvemento, descrición de casos de éxito, etc.) no que se inclúen explicacións adicionais ás das clases presenciais e que axudan a entender e afianzar os conceptos da programación orientada a obxectos e as dubidas de programación relacionadas con Java.
O idioma preferente de impartición das clases expositivas e interactivas é o galego.
PLAN DE CONTINXENCIA
No caso de que a situación sanitaria aconselle establecer un Escenario 2 (distanciamento):
1) Todas as clases expositivas impartiranse de modo online (síncronamente por Microsoft Teams ou asíncronamente mediante a publicación de vídeos gravados polo profesorado),
2) As clases interactivas impartiranse de modo presencial en aula de informática,
3) A ponderación das distintas partes da materia e os requisitos para superar a materia permanecerán inalterados,
4) A proba final realizarase de modo presencial.
No caso de que a situación sanitaria aconselle establecer un Escenario 3 (peche de instalacións):
1) Todas as clases expositivas impartiranse de modo online (síncronamente por Microsoft Teams ou asíncronamente mediante a publicación de vídeos gravados polo profesorado),
2) Todas as clases interactivas impartiranse de modo online (síncronamente por Microsoft Teams ou asíncronamente mediante a publicación de vídeos gravados polo profesorado),
3) A ponderación das distintas partes da materia e os requisitos para superar a materia permanecerán inalterados,
4) A proba final realizarase de modo non presencial, mediante Microsoft Teams e as ferramentas da aula virtual Moodle.
Manuel Lama Penin
Coordinador/a- Departamento
- Electrónica e Computación
- Área
- Ciencia da Computación e Intelixencia Artificial
- Teléfono
- 881816427
- Correo electrónico
- manuel.lama [at] usc.es
- Categoría
- Profesor/a: Titular de Universidade
María Jesús Taboada Iglesias
- Departamento
- Electrónica e Computación
- Área
- Ciencia da Computación e Intelixencia Artificial
- Teléfono
- 881813561
- Correo electrónico
- maria.taboada [at] usc.es
- Categoría
- Profesor/a: Catedrático/a de Universidade
Efren Rama Maneiro
- Departamento
- Electrónica e Computación
- Área
- Ciencia da Computación e Intelixencia Artificial
- Correo electrónico
- efren.rama.maneiro [at] usc.es
- Categoría
- Predoutoral Ministerio
Jose Maria Alonso Moral
- Departamento
- Electrónica e Computación
- Área
- Ciencia da Computación e Intelixencia Artificial
- Teléfono
- 881816432
- Correo electrónico
- josemaria.alonso.moral [at] usc.es
- Categoría
- Investigador/a: Ramón y Cajal
Ilia Stepin
- Departamento
- Electrónica e Computación
- Área
- Ciencia da Computación e Intelixencia Artificial
- Categoría
- Predoutoral Ministerio
Luns | |||
---|---|---|---|
09:00-11:30 | Grupo /CLIL_01 | Castelán | Aula de Informática I6 |
11:30-14:00 | Grupo /CLIL_03 | Castelán | Aula de Informática I6 |
Martes | |||
11:30-14:00 | Grupo /CLIL_04 | Castelán, Galego | Aula de Informática I7 |
15:00-17:00 | Grupo /CLE_01 | Galego | Aula A1 |
Mércores | |||
11:30-14:00 | Grupo /CLIL_02 | Castelán | Aula de Informática I7 |
18.01.2021 16:00-20:45 | Grupo /CLIL_01 | Aula A3 |
18.01.2021 16:00-20:45 | Grupo /CLE_01 | Aula A3 |
18.01.2021 16:00-20:45 | Grupo /CLIL_04 | Aula A3 |
18.01.2021 16:00-20:45 | Grupo /CLIL_02 | Aula A3 |
18.01.2021 16:00-20:45 | Grupo /CLIL_03 | Aula A3 |
18.01.2021 16:00-20:45 | Grupo /CLIL_02 | Aula A4 |
18.01.2021 16:00-20:45 | Grupo /CLIL_03 | Aula A4 |
18.01.2021 16:00-20:45 | Grupo /CLIL_01 | Aula A4 |
18.01.2021 16:00-20:45 | Grupo /CLE_01 | Aula A4 |
18.01.2021 16:00-20:45 | Grupo /CLIL_04 | Aula A4 |
18.01.2021 16:00-20:45 | Grupo /CLIL_04 | Aula de Informática I3 |
18.01.2021 16:00-20:45 | Grupo /CLIL_03 | Aula de Informática I3 |
18.01.2021 16:00-20:45 | Grupo /CLIL_02 | Aula de Informática I3 |
18.01.2021 16:00-20:45 | Grupo /CLE_01 | Aula de Informática I3 |
18.01.2021 16:00-20:45 | Grupo /CLIL_01 | Aula de Informática I3 |
18.01.2021 16:00-20:45 | Grupo /CLE_01 | Aula de Informática I5 |
18.01.2021 16:00-20:45 | Grupo /CLIL_01 | Aula de Informática I5 |
18.01.2021 16:00-20:45 | Grupo /CLIL_04 | Aula de Informática I5 |
18.01.2021 16:00-20:45 | Grupo /CLIL_02 | Aula de Informática I5 |
18.01.2021 16:00-20:45 | Grupo /CLIL_03 | Aula de Informática I5 |
18.01.2021 16:00-20:45 | Grupo /CLIL_04 | Aula de Informática I6 |
18.01.2021 16:00-20:45 | Grupo /CLIL_03 | Aula de Informática I6 |
18.01.2021 16:00-20:45 | Grupo /CLIL_02 | Aula de Informática I6 |
18.01.2021 16:00-20:45 | Grupo /CLE_01 | Aula de Informática I6 |
18.01.2021 16:00-20:45 | Grupo /CLIL_01 | Aula de Informática I6 |
18.01.2021 16:00-20:45 | Grupo /CLIL_04 | Aula de Informática I7 |
18.01.2021 16:00-20:45 | Grupo /CLE_01 | Aula de Informática I7 |
18.01.2021 16:00-20:45 | Grupo /CLIL_02 | Aula de Informática I7 |
18.01.2021 16:00-20:45 | Grupo /CLIL_03 | Aula de Informática I7 |
18.01.2021 16:00-20:45 | Grupo /CLIL_01 | Aula de Informática I7 |
18.01.2021 16:00-20:45 | Grupo /CLIL_01 | Lab PP-2 |
18.01.2021 16:00-20:45 | Grupo /CLIL_04 | Lab PP-2 |
18.01.2021 16:00-20:45 | Grupo /CLE_01 | Lab PP-2 |
18.01.2021 16:00-20:45 | Grupo /CLIL_03 | Lab PP-2 |
18.01.2021 16:00-20:45 | Grupo /CLIL_02 | Lab PP-2 |
25.06.2021 09:15-14:00 | Grupo /CLIL_04 | Aula A2 |
25.06.2021 09:15-14:00 | Grupo /CLE_01 | Aula A2 |
25.06.2021 09:15-14:00 | Grupo /CLIL_03 | Aula A2 |
25.06.2021 09:15-14:00 | Grupo /CLIL_02 | Aula A2 |
25.06.2021 09:15-14:00 | Grupo /CLIL_01 | Aula A2 |