Guías Académicas

PROGRAMACIÓN III

PROGRAMACIÓN III

Grado en Matemáticas

Curso 2017/2018

1. Datos de la asignatura

(Fecha última modificación: 20-06-18 12:09)
Código
101112
Plan
ECTS
6.00
Carácter
OPTATIVA
Curso
4
Periodicidad
Primer Semestre
Área
LENGUAJES Y SISTEMAS INFORMÁTICOS
Departamento
Informática y Automática
Plataforma Virtual

Campus Virtual de la Universidad de Salamanca

Datos del profesorado

Profesor/Profesora
José Rafael García-Bermejo Giner
Grupo/s
20
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
E-mail
coti@usal.es
Teléfono
924 294500, Ext 6082
Profesor/Profesora
José Rafael García-Bermejo Giner
Grupo/s
3
Centro
Fac. Ciencias
Departamento
Informática y Automática
Área
Lenguajes y Sistemas Informáticos
Despacho
Edif. Ciencias - F3017
Horario de tutorías
-
URL Web
http://diaweb.usal.es/diaweb/personas/coti
E-mail
coti@usal.es
Teléfono
924 294500, Ext 6082

2. Sentido de la materia en el plan de estudios

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. Adicionalmente, se estudian las bibliotecas de clases asociadas a los lenguajes de programación, buscando en la comparación de bibliotecas los puntos comunes a distintos lenguajes de programación orientados a objetos y basados en estándares abiertos de gran difusión. La asignatura se ofrece también en el GMAT, y se mencionan aspectos matemáticos de interés en este grado. Concretamente, se plantea el tratamiento de archivos matriciales, en especial de archivos numéricos, con objeto de facilitar la entrada y salida de información con este formato. De este modo se implementan algoritmos matriciales (suma, resta, producto, inversión) que dan lugar a la resolución de sistemas lineales. También se plantea la implementación de mecanismos para la resolución numérica de ecuaciones diferenciales, para implementar métodos de integración numérica y para la representación de gráficos.

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. La POO se está complementando en la actualidad con otros mecanismos de programación, que también se mencionan.

3. Recomendaciones previas

Se recomienda no cursar Programación III sin aprobar previamente Informática II para alumnos del GMAT.

4. Objetivo de la asignatura

Tomando como base el paradigma de Programación Estructurada, 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.

Efectuar un estudio práctico de los lenguajes de programación orientados a objetos, tomando como base dos lenguajes orientados a objetos de amplia difusión. Las características teóricas mencionadas en la primera parte del programa se aplican directamente al caso concreto de los lenguajes estudiados.

Aplicar de forma práctica los métodos y algoritmos que ofrecen las bibliotecas asociadas a los lenguajes 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.

Construir bibliotecas de clases de forma individual y en grupo, bibliotecas que se emplearán en la construcción y reutilización de software. Ofrecer un ejemplo práctico de los principios expuestos en otras asignaturas del mismo curso.

5. Contenidos

Teoría.

Contenidos Teóricos

Se trata de un estudio detallado de los conceptos básicos de la Metodología Orientada a Objetos, plasmados en el estudio de dos lenguajes de programación: Java y (en menor medida) C++. La relación de temas estudiados, que se abordarán desde un punto de vista teórico y práctico, es la siguiente:

  1. Introducción a la Metodología Orientada a Objetos. El Modelo Orientado a objetos (Object Model).
  2. Programación Orientada a Objetos.
  3. Características de los lenguajes OO. Aspectos externos.
  4. Características de los lenguajes OO. Aspectos internos.
  5. Abstracción, Encapsulamiento.
  6. Clases y objetos
  7. Herencia y Polimorfismo.
  8. Asociaciones, Interfaces y Módulos.
  9. Excepciones
  10. Genericidad
  11. Concurrencia
  12. Persistencia
  13. Bibliotecas de clases – colecciones
  14. Mecanismos de documentación

Práctica.

Contenidos 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.

1)             Estudio práctico del lenguaje de POO Java

2)             Estudio práctico del lenguaje de POO C++

3)             Construcción de programas en Java y C++, aplicando los principios de la orientación a objetos.

4)             Construcción de Software Reutilizable (bibliotecas de clases) empleando ambos lenguajes

Se considera de especial importancia el tratamiento de datos empleando distintos lenguajes y aplicaciones

6. Competencias a adquirir

Básicas / Generales.

Capacidad de análisis y síntesis. Habilidades básicas en el manejo del ordenador. Resolución de problemas. Trabajo en equipo. Capacidad de aplicar los conocimientos en la práctica. Habilidad para trabajar de forma autónoma

Específicas.

Construir software correcto, robusto y eficiente. Conocer de forma precisa y práctica lenguajes y metodologías, así como adquirir buenos hábitos de programación. Conocer detalladamente el proceso de creación de aplicaciones, desde la creación eficiente de código fuente hasta la generación de aplicaciones optimizadas. Aplicar la metodología orientada a objetos al diseño de aplicaciones software. Conocer detalladamente un lenguaje de programación orientado a objetos y utilizar las herramientas adecuadas para implementar soluciones previamente diseñadas.

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
  • Seminarios tutelados para grupos pequeños con exposición de trabajos
  • 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.

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, ISBN 84-8322-040-7

Cómo programar en C++. Deytel y Deitel. Pearson Educación. 6ª Edición. ISBN 970261273X

El Lenguaje de Programación C++. Stroustrup, B. Addison-Wesley Iberoamericana. ISBN   84-7829-046-X

El Lenguaje de Programación Java. Arnold, K., Gosling, J., Holmes, J. Pearson Educación. ISBN 9788478290191

Inglés

Object-oriented Software Construction. Meyer, B. 2nd. Ed. Prentice-Hall. ISBN 0136291554

C++ How to program. Deitel, P. and Deitel, H. 8th Ed. Prentice-Hall. ISBN 0132662361

The C++ Programming Language. Stroustrup, B. Addison Wesley. 3rd Ed. ISBN 0201889544

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.

•              Evaluación continua:               25%

•              Realización de exámenes de teoría o problemas:   60%

•              Realización y defensa de prácticas, trabajos o proyectos: 15%

La nota final de las asignaturas se obtendrá de forma ponderada a través de las notas finales conseguidas en los apartados anteriores.

Criterios de evaluación.

Evaluación continua: tendrá como objetivo facilitar un aprendizaje progresivo, evitando que el alumno aborde su aprendizaje de manera puntual, tanto en los aspectos teóricos como en los prácticos. Se llevará a cabo mediante entregas de ejercicios prácticos que se propondrán a lo largo del curso, buscando escalonar la comprensión de la asignatura. Estos ejercicios se tienen asociados exámenes relativos a los temas aplicados en los ejercicios entregados. Tendrá un peso del 40% respecto a la nota total, repartido entre las calificaciones obtenidas por entrega de pequeñas prácticas (15%) y pruebas escritas (25%).

Práctica final y examen final: tendrá como objetivo comprobar la correcta comprensión de los contenidos teóricos, y también la capacidad del alumno para aplicar esos conceptos en la construcción de programas. Su peso conjunto es del 60% respecto a la calificación final .El examen busca comprobar la correcta comprensión de los mecanismos aplicados en las prácticas finales entregadas.

Para poder aprobar la asignatura se exigirá una nota mínima de 3 sobre 10 en cada una de las tres partes consideradas. Los profesores de teoría y prácticas podrán considerar la posibilidad de no admitir a examen a los alumnos que no superen un 80% de asistencia a las clases de teoría y de prácticas.

Instrumentos de evaluación.

Evaluación continua: se llevará a cabo mediante la realización de ejercicios propuestos en las clases de teoría y práctica. Los ejercicios se realizarán y entregarán en clase, por escrito en el caso de teoría y a través de la plataforma Studium en el caso de prácticas. La entrega de práctica para evaluación continua se complementará con breves exámenes escritos.

Examen teórico-práctico: se realizará por escrito, y estará formado por una colección de cuestiones teóricas y prácticas con pesos ponderales aproximadamente equivalentes. Las cuestiones abordarán los conceptos, técnicas y lenguajes de programación  estudiados.

Realización y defensa de prácticas, trabajos o proyectos: se evaluará con especial atención al rigor teórico de lo construido a lo largo de todo el curso completo. El profesor podrá proponer uno o más temas, y especificar el lenguaje o lenguajes utilizados en el trabajo

Recomendaciones para la evaluación.

Evaluación continua: se prestará especial atención a un trabajo continuado por parte del alumno, que deberá respetar los plazos de entrega (distribuidos de tal modo que se vayan tratando todas las partes del curso a medida que este avanza). Realización de exámenes de teoría y problemas: se prestará especial atención a comprobar la correcta comprensión de los temas estudiados a lo largo del curso. Realización y defensa de prácticas: Salvo indicación expresa del profesor, éstas se realizarán y calificarán de forma individual. La defensa es potestativa del profesor.

Recomendaciones para la recuperación.

Evaluación continua: no se contempla su recuperación. La nota obtenida se mantendrá a efectos de la segunda convocatoria. Realización de exámenes de teoría y de prácticas: se recomienda encarecidamente realizar los ejercicios solicitados en las clases prácticas y en el trabajo final, puesto que este tipo de ejercicio formará parte del examen final. Realización y defensa de prácticas, trabajos o proyectos: La nota obtenida, en caso de obtener una calificación de aprobado o superior, se mantendrá a efectos de la segunda convocatoria.