PROGRAMACIÓN III
Doble Titulación de Grado en Estadística y en Ingeniería Informática
Curso 2022/2023
1. Datos de la asignatura
(Fecha última modificación: 27-05-22 10:49)- Código
- 101112
- Plan
- ECTS
- 6
- Carácter
- Curso
- 3
- Periodicidad
- Primer Semestre
- Idioma
- ESPAÑOL
- Área
- LENGUAJES Y SISTEMAS INFORMÁTICOS
- Departamento
- Informática y Automática
- Plataforma Virtual
Datos del profesorado
- Profesor/Profesora
- Alicia García Holgado
- Grupo/s
- PA1
- Centro
- Fac. Ciencias
- Departamento
- Informática y Automática
- Área
- Ciencia de la Computación e Inteligencia Artific.
- Despacho
- E4000
- Horario de tutorías
- Solicitar por correo electrónico
- URL Web
- URL Web https://produccioncientifica.usal.es/investigadores/56361/detalle
- aliciagh@usal.es
- Teléfono
- 923294500 Ext. 6076
- Profesor/Profesora
- Álvaro Lozano Murciego
- Grupo/s
- PA2 y PB3
- Centro
- Fac. Ciencias
- Departamento
- Informática y Automática
- Área
- Lenguajes y Sistemas Informáticos
- Despacho
- F2400 – Edificio Ciencias, frente a Aula Magna II
- Horario de tutorías
- Solicitar por correo electrónico
- URL Web
- https://esalab.es/esalab-miembro/alvaro-lozano-murciego/
- loza@usal.es
- Teléfono
- 923294500 Ext. 6072
- Profesor/Profesora
- Alfonso González Briones
- Grupo/s
- PB2, PB3
- Centro
- Fac. Ciencias
- Departamento
- Informática y Automática
- Área
- Ciencia de la Computación e Inteligencia Artific.
- Despacho
- F3012
- Horario de tutorías
- URL Web
- https://bisite.usal.es/es/grupo/equipo/Alfonso
- alfonsogb@usal.es
- Teléfono
- 923294500. Ext.5479
- Coordinador/Coordinadora
- José Rafael García-Bermejo Giner
- Grupo/s
- TA y TB , PA2, PB3 ,GMAt, Estadistica
- Centro
- Fac. Ciencias
- Departamento
- Informática y Automática
- Área
- Lenguajes y Sistemas Informáticos
- Despacho
- Edif. Ciencias - F3017
- Horario de tutorías
- Ver página web
- URL Web
- http://diaweb.usal.es/diaweb/personas/coti
- coti@usal.es
- Teléfono
- 924 294500, Ext 6082
2. Sentido de la materia en el plan de estudios
Bloque formativo al que pertenece la materia.
PROGRAMACIÓN
Papel de la asignatura.
Programación III es la entrada del alumno al mundo de la programación orientada a objetos, en su aspecto teórico y práctico. Abarca aspectos fundamentales de la POO, y justifica las decisiones de diseño tomadas en la utilización de lenguajes de programación orientados a objetos. Adicionalmente, se estudian las bibliotecas de clases asociadas a los lenguajes de programación, buscando en la comparación de bibliotecas los puntos comunes basados en estándares abiertos de gran difusión
Perfil profesional.
La orientación a objetos es un paradigma presente en la práctica totalidad de las disciplinas relacionadas con Informática, desde la construcción de interfaces gráficas de usuario hasta el diseño de bases de datos. Los lenguajes orientados a objetos forman parte esencial del currículo exigido en casi cualquier puesto de trabajo; un buen conocimiento práctico de estos lenguajes facilitará el aprendizaje posterior de otros basados en el mismo paradigma, y la asignatura se ocupa precisamente de aportar la formación necesaria para conseguir este objetivo.
3. Recomendaciones previas
Asignaturas que se recomienda haber cursado:
- Se recomienda no cursar Programación III sin aprobar previamente Programación I y Programación II, por cuanto la Programación Orientada a Objetos se basa en Programación Estructurada que es objeto de estudio en Programación I y II.
Asignaturas que se recomienda cursar simultáneamente:
- Otras que no hagan uso del paradigma de Orientación a Objetos.
Asignaturas que son continuación:
- La asignatura Programación III es de aplicación directa en Ingeniería del Software (I y II), así como en Interfaces Gráficas de Usuario (3er curso), Desarrollo de Aplicaciones Avanzadas (4º curso), y en general en todas las asignatura que hagan uso de programación orientada a objetos.
4. Objetivo de la asignatura
Tomando como base el paradigma de Programación Estructurada, el primer objetivo es aportar al alumno los conocimientos teóricos asociados al Modelo de objetos en su sentido abstracto, poniendo de manifiesto el concepto de clase como unidad de construcción del software frente al mecanismo de programación estructurada, basado en funciones.
Un segundo objetivo es mostrar al alumno de forma práctica métodos y algoritmos que ofrecen las bibliotecas asociadas un lenguaje de programación orientados a objetos, para así conocer de forma general sus posibilidades. De este modo se hace uso de clases maduras y se facilita la reutilización del código.
Como tercer objetivo, durante el curso se construyen bibliotecas de clases de forma individual y en grupo, bibliotecas que se emplearán en la construcción y reutilización de software.
5. Contenidos
Teoría.
Objetivos Teóricos
Se trata de un estudio detallado de los conceptos básicos de la Metodología Orientada a Objetos, plasmados en el estudio del lenguaj de programación Java. La relación de temas estudiados, que se abordarán desde un punto de viste teórico y práctico, es la siguiente:
- Introducción a la Metodología Orientada a Objetos. El Modelo Orientado a objetos (Object Model).
- Programación Orientada a Objetos.
- Características de los lenguajes OO. Aspectos externo
- Características de los lenguajes OO. Aspectos internos.
- Abstracción, Encapsulamiento.
- Clases y objetos
- Herencia y Polimorfismo.
- Asociaciones, Interfaces y Módulos.
- Excepciones
- Genericidad
- Concurrencia
- Persistencia
- Bibliotecas de clases – colecciones
- Mecanismos de documentación
Práctica.
Objetivos Prácticos
Los temas mencionados anteriormente se ejercitan directamente con el estudio de dos lenguajes de programación orientados a objetos. Desde el punto de vista de la práctica, los contenidos que se abordan son los que se exponen a continuación.
- Estudio práctico del lenguaje de POO Java
- Construcción de programas en Java y aplicando los principios de la orientación a objetos.
- Construcción de Software Reutilizable (bibliotecas de clases) empleando el lenguaje Java.
6. Competencias a adquirir
Básicas / Generales.
Se deben relacionar las competencias que se describan con las competencias generales y específicas del título. Se recomienda codificar las competencias (CG xx1, CEyy2, CTzz2) para facilitar las referencias a ellas a lo largo de la guía.
(Básicas):CB3, CB4, CB5 (Comunes):CC1, CC6, CC7, CC8, CC14, CC16, CC17
Específicas.
TI3, TI6, CO2, CO3, CO5, CO6
Transversales.
CT1, CT3, CT8, CT9, CT12, CT16, CT21, CT22
7. Metodologías
Las actividades formativas que se proponen para esta materia son las siguientes: Actividades presenciales:
- Lección magistral: exposición de teoría y resolución de problemas
- Realización de prácticas guiadas en laboratorio
- Sesiones de tutorías, seguimiento y evaluación, individuales o en grupo
- Exposición de trabajos y pruebas de evaluación
- Actividades no presenciales:
- Estudio autónomo por parte del estudiante
- Revisión bibliográfica y búsqueda de información
- Realización de trabajos, prácticas libres, informes de prácticas…
Para esta materia las actividades formativas presenciales, que implican una interacción
profesor-estudiante, suponen el 40% de los créditos ECTS. En las asignaturas la distribución temporal asignada a cada actividad se corresponde con el modelo de tipo C (modelos presentados en el apartado 5.1 de la memoria del Grado).
El contenido teórico de las materias presentado en las clases magistrales junto con su aplicación en las clases de problemas y las prácticas guiadas facilitará la asimilación de las competencias anteriormente descritas. En las sesiones y seminarios tutelados se resolverán las dudas y el trabajo personal permitirá afianzar dichas competencias.
8. Previsión de Técnicas (Estrategias) Docentes
9. Recursos
Libros de consulta para el alumno.
Español
Construcción de Software Orientado a Objetos. Meyer, B. Prentice-Hall
Cómo programar Java. Deitel y Deitel. Pearson Educación. 10ª Edicióno posterior
El Lenguaje de Programación Java. Arnold, K., Gosling, J., Holmes, J. Pearson Educación.
Piensa en Java. Eckel, Bruce (PDF Gratuito, Mindstorms)
Inglés
Java How to program. Deitel, P. and Deitel, H. 8th Ed. Prentice-Hall. ISBN 0132662361
The Java Programming Language. Arnold, K. Gosling, J. Holmes, 4th. Ed. Prentice-Hall. ISBN 0321349806
Otras referencias bibliográficas, electrónicas o cualquier otro tipo de recurso.
10. Evaluación
Consideraciones generales.
La nota final de la asignatura se obtendrá de forma ponderada a través de las notas finales obtenidas en dos apartados: evaluación continua (control y, trabajo práctico y examen final:
- Controles (por escrito, presencial): 30%
- Trabajo práctico (entrega): 10%
- Examen final (por escrito, presencial): 60%
Cada apartado se puntúa sobre 10, y aporta el porcentaje indicado (30%, 10% y 60%) a la nota final. Para poder aprobar la asignatura hay que obtener una nota mínima de 3 en los dos apartados (controles+ trabajo y examen final).
Criterios de evaluación.
El objetivo propuesto en todos los mecanismos de evaluación es la creación de programas o fragmentos de programas, según se indique. Concretamente, el control escrito y el trabajo práctico requieren que el alumno desarrolle un programa completo. El programa completo desarrollado en el control será necesariamente más breve que el desarrollado en el trabajo práctico. Tanto en un caso como en otro, deberán aplicarse los principios de programación orientada a objetos (no solo de programación estructurada, que corresponden a cursos anteriores). Así mismo deberá emplearse el patrón Modelo-Vista-Controlador, y se hará uso intensivo de las bibliotecas de clases explicadas y utilizadas de forma práctica a lo largo del curso.
Instrumentos de evaluación.
Exámenes escritos en papel (controles y examen final)
Proyecto completo, con aplicación compilable y ejecutable en cualquier plataforma (trabajo práctico).
Examen presencial (controles) |
Examen escrito |
30% |
Trabajo práctico |
Entrega de proyecto |
10% |
Examen presencial (final) |
Examen escrito |
60% |
|
|
__% |
|
|
__% |
|
Total |
100% |
Recomendaciones para la evaluación.
La asignatura Programación III es práctica, esto es, requiere resolver por completo de forma personal los ejercicios que se plantean y/o resuelven en clase. También es conveniente investigar de forma individual otros problemas, intentando siempre comprender los principios implicados. En caso de duda, consulte al profesor en prácticas, o por medio de tutorías.
Las frases “pues en casa/a mi me funciona” y “pero vamos, está bien” NO suponen la corrección de un ejercicio o programa. Por el contrario, suelen chocar frontalmente con los principios de orientación a objetos (frente a programación estructurada), o con el uso de bibliotecas (frente a rutas fijas) y/o con el uso de “algoritmos” de longitud O(n) frente a algoritmos de longitud O(0)
Recomendaciones para la recuperación.
Resulta recomendable llevar la asignatura al día. Con este fin, el alumno necesita sus propios apuntes, escritos por el alumno en clase y completados en casa previamente a su uso como guía para realizar personalmente los ejercicios planteados y/o resueltos. Los apuntes del alumno no son las transparencias del profesor; es frecuente confundir una cosa con otra con resultados demostradamente nefastos.
Los ejercicios propuestos y/o realizados en clase deben ser realizados por el alumno de forma completa (partiendo de cero). Téngase en cuenta que en los ejercicios escritos se pide realizar un programa completo.