Guías Académicas

PROGRAMACIÓN III

PROGRAMACIÓN III

Doble Titulación de Grado en Física y en Matemáticas

Curso 2024/2025

1. Datos de la asignatura

(Fecha última modificación: 09-05-24 13:17)
Código
101112
Plan
ECTS
6
Carácter
Curso
5
Periodicidad
Primer Semestre
Idioma
ESPAÑOL
Á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
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. Recomendaciones previas

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

3. Objetivos

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.

4. Competencias a adquirir | Resultados de Aprendizaje

Básicas / Generales | Conocimientos.

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

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.

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. Metodologías Docentes

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.

7. Distribución de las Metodologías Docentes

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

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.

http://java.oracle.com

http://www.w3schools.com/java/default.asp 

9. Evaluación

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

Sistemas de evaluación.

Exámenes escritos en papel (control y examen final)

Proyecto completo, con aplicación compilable y ejecutable en cualquier plataforma (trabajo práctico).

METODOLOGIAS DE EVALUACION

Metodología 

Tipo de prueba a emplear

calificación

Examen presencial (control)

Examen escrito

20%

Trabajo práctico

Entrega de proyecto

20%

Examen presencial (final)

Examen escrito

40%

 

 

__%

 

 

__%

 

Total

100%

 

La nota de evaluación continua no es recuperable, esto es, hay una sola convocatoria para el control y una sola convocatoria para la entrega del trabajo práctico. La nota de evaluación continua se empleará tanto en la primera convocatoria como en la segunda.

 

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

10. Organización docente semanal