G4011225 - Programación Orientada a Obxetos (Programación) - Curso 2013/2014
Información
- Créditos ECTS
- Créditos ECTS: 6.00
- Total: 6.0
- Horas ECTS
- Clase Expositiva: 20.00
- Clase Interactiva Laboratorio: 30.00
- Horas de Titorías: 1.00
- Total: 51.0
Outros Datos
- Tipo: Materia Ordinaria Grao RD 1393/2007
- Departamentos: Electrónica e Computación
- Áreas: Ciencia da Computación e Intelixencia Artificial
- Centro: Escola Técnica Superior de Enxeñaría
- Convocatoria: 1º Semestre de Titulacións de Grao/Máster
- Docencia e Matrícula: null
Profesores
Horarios
Programa
Existen programas da materia para os seguintes idiomas:
CastelánGalegoInglésObxectivos da materiaO 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.
ContidosTEORÍ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 gráficas
PRÁCTICAS
Boletín. Implementación de clases
* Concepto de obxecto e instancia
* Uso e manexo de conxuntos de datos
* Encapsulación
* Sobrecarga de métodos
Proxecto: Parte 1
* Creación das clases do proxecto
* Sobrecarga de métodos e constructores
Proxecto: Parte 2
* Implementar parcialmente a funcionalidade do proxecto
* Uso de entrada/saída a través de ficheiros
Proxecto: Parte 3
* Completar as funcionalidades do proxecto
* Uso e implementación de interfaces
* Uso de excepcións para tratamento de erros en execución
Proxecto: Parte 4
* 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 5
* Interfaces gráficas
* Uso de herdanza e interfaces en aplicacións gráficas
* Tratamento de eventos de usuario
Bibliografía básica e complementariaBIBLIOGRAFÍA BÁSICA (por orden de prioridade)
1. Bruce Eckel. PIENSA EN JAVA. Cuarta edición. Editorial: Prentice Hall. 2007.
[Sig.: A310 2, Escola de Enxeñería]
2. Harvery M. Deitel y Paul J. Deitel. CÓMO PROGRAMAR EN JAVA. Quinta edición. Editorial: Pearson Educación. 2004.
[Sig.: A310 1 1, Escola de Enxeñería]
BIBLIOGRAFÍA COMPLEMENTARIA
3. James P. Cohoon y Jack W. Davidson. PROGRAMACIÓN EN JAVA 5.0. Editorial: McGraw-Hill. 2006.
[Sig.: 3 C60 162, Fac. Física]
4. Luis Joyanes Aguilar e Ignacio Zahonero Martínez. PROGRAMACIÓN EN JAVA 2: ALGORITMOS, ESTRUCTURAS DE DATOS Y PROGRAMACIÓN ORIENTADA A OBJETOS. Editorial: MgGraw-Hill. 2002.
[Sig.: C60 406, Fac. Física]
5. Marc Loy, Robert Eckstein, David Wood, James Elliot y Brian Cole. JAVA SWING. Segunda edición. Editorial: O'Reilly Corporation. 2002.
[Sig.: A310 5, Escola de Enxeñería]
CompetenciasO 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.
Metodoloxía da ensinanza 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.
Sistema de evaluaciónA 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 do cuatrimestre (Febreiro) e a do exame extraordinario (Xullo):
AVALIACIÓN DE FEBREIRO
(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 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 de tres boletíns compostos por un conxunto de exercicios nos 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 terá un primeiro boletín que será realizado polo alumno de xeito individual, e outros tres boletins que se corresponderán co desenvolvemento dun proxecto e que serán realizados en parella 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. Tanto no primeiro boletín coma no proxecto, o alumno deberá entregar unha pequena memoria onde explique as decisións de programación tomadas en cada caso. Estes catro boletíns serán os seguintes:
2.(a) No primeiro boletín realizarase un conxunto de exercicios que teñen como obxectivo que o alumno entenda o concepto de obxecto e o de instancia, e que adquira a destreza na programación de clases con métodos sobrecargados (polimorfismo) e con atributos que teñan calquera tipo. O último exercicio do boletín implicará a combinación de clases coas que se modela un problema dado. Esta parte constituirá o 15% da nota práctica.
2.(b) Proxecto: Parte 1 e 2. Nas dúas primeiras partes 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. 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 30% da nota práctica.
2.(c) Proxecto: Parte 3. Na segunda parte do proxecto os alumnos completarán as funcionalidades do proxecto que non foron implementadas na parte 1 e 2 do proxecto, e ademais incorporarán tanto as interfaces, que independizan a implementación das clases, como as excepcións, que tratan os erros que teñen lugar durante a execución do programa. Esta parte constituirá o 25% da nota práctica.
2.(d) Proxecto: Parte 4. 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. Esta parte do proxecto constituirá o 30% da nota práctica.
Como boletín opcional 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. Este boletín realizarase integramente de xeito individual.
Para aprobar a parte práctica da asignatura será necesario superar tanto o primeiro boletín como o proxecto. Ademais, a avaliación da parte práctica será continua, o que significa que o alumno, por unha parte, deberá ir presentando os exercicios ó longo do cuadrimestre; e, por outra, deberá ir superando cada un dos catro boletíns a medida que se van plantexando ó longo do curso.
Por outra banda, se un alumno entregou a metade dos exercicios do primeiro boletín de prácticas considerarase como presentado na materia. Este número coincide coa primeira entrega de exercicios dos boletíns que ha de cumprir o alumno.
Por último, a copia parcial ou total dunha clase ou dun método dalgún dos exercicios dos tres boletíns propostos significará o suspenso de toda a asignatura.
AVALIACIÓN DE XULLO
Os criterios de avaliación das partes de teoría e práctica na convocatoria de Xullo serán exactamente os mesmos que para Febreiro. Xa que logo, ademais de superar os dous exames da parte de teoría e os boletíns de exercicios, para poder superar a materia será necesario que o alumno asista ás sesións prácticas interactivas (cos criterios de asistencia indicados máis abaixo) e que na avaliación de Febreiro entregue polo menos o primeiro boletín de exercicios. Nesta avaliación, ademais, todos os exercicios dos boletíns teranse que realizar de forma individual.
CONTROL DE ASISTENCIA
Tal e como se comentou anteriormente, a asistencia ás sesións prácticas interactivas é obrigatoria, 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).
Tempo de estudo e traballo persoalTal 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 axeitadamente o tempo. Ademais disto o alumno precisará un tempo adicional para traballar nos seguintes aspectos:
(1) Estudio autónomo dos conceptos da programación orientada a obxectos (25 horas). O tempo adicado a este estudio non só inclúe o necesario para preparar o exame teórico, senón tamén o tempo que o alumno precisa en entender os conceptos teóricos de xeito que os poida aplicar correctamente á construcción dos programas.
(2) Escritura de exercicios e traballos (10 horas). O tempo adicado 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 cómo realizaron o programa seguinte 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 rematar nas sesións de prácticas. Neste tempo o alumno poderá interiorizar o xeito de resolver o problema plantexado no exercicio, na medida en que nas sesións prácticas faise máis énfase en entender o problema e o xeito xeral no que se resolverá, mentres que os detalles necesarios para completar os exercicios deberanse realizar no tempo adicional de traballo práctico.
Recomendacións para o estudo da materiaPara 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.