Guía docente de Programación Técnica y Científica (Especialidad Computación y Sistemas Inteligentes) (29611AD)

Curso 2024/2025
Fecha de aprobación: 27/06/2024

Grado

Grado en Ingeniería Informática

Rama

Ingeniería y Arquitectura

Módulo

Complementos de Computación y Sistemas Inteligentes

Materia

Herramientas de Computación Científica

Curso

4

Semestre

1

Créditos

6

Tipo

Optativa

Profesorado

Teórico

Miguel García Silvente. Grupo: A

Práctico

David Criado Ramón Grupo: 1

Tutorías

Miguel García Silvente

Email
  • Primer semestre
    • Martes de 11:30 a 13:00 (D30 (Etsiit))
    • Miércoles de 09:30 a 13:00 (D30 (Etsiit))
    • Jueves de 10:30 a 11:30 (D30 (Etsiit))
  • Segundo semestre
    • Miércoles de 10:00 a 12:30 (D30 (Etsiit))
    • Jueves de 10:30 a 12:30 (D30 (Etsiit))
    • Viernes de 11:00 a 12:30 (D30 (Etsiit))

David Criado Ramón

Email
  • Primer semestre
    • Martes de 09:00 a 12:00 (Edificio Auxiliar Despacho 1.4)
    • Miércoles de 09:00 a 12:00 (Edificio Auxiliar Despacho 1.4)
  • Segundo semestre
    • Martes de 09:00 a 12:00 (Edificio Auxiliar Despacho 1.4)
    • Miércoles de 09:00 a 12:00 (Edificio Auxiliar Despacho 1.4)

Prerrequisitos y/o Recomendaciones

No es necesario que los estudiantes tengan aprobadas asignaturas, materias o módulos previos como requisito indispensable para cursar este módulo. No obstante se recomienda la superación de los contenidos y adquisición de competencias de las materias de formación básica y de rama.

Breve descripción de contenidos (Según memoria de verificación del Grado)

  • Herramientas y lenguajes de alto nivel orientados al cálculo técnico y científico.
  • Representación gráfica y visualización de datos.
  • Prototipado y desarrollo rápido de software técnico y científico.
  • Bibliotecas de software específicas para ingeniería.
  • Resolución de problemas comunes en las ingenierías.
  • Comunicación e integración de software desarrollado en diferentes lenguajes.

Competencias

Competencias generales

  • CG08. Conocimiento de las materias básicas y tecnologías, que capaciten para el aprendizaje y desarrollo de nuevos métodos y tecnologías, así como las que les doten de una gran versatilidad para adaptarse a nuevas situaciones.
  • CG09. Capacidad para resolver problemas con iniciativa, toma de decisiones, autonomía y creatividad. Capacidad para saber comunicar y transmitir los conocimientos, habilidades y destrezas de la profesión de Ingeniero Técnico en Informática.

Competencias Transversales

  • CT02. Capacidad para tomar decisiones basadas en criterios objetivos (datos experimentales, científicos o de simulación disponibles) así como capacidad de argumentar y justificar lógicamente dichas decisiones, sabiendo aceptar otros puntos de vista. 
  • CT03. Capacidad para el uso y aplicación de las TIC en el ámbito académico y profesional. 

Resultados de aprendizaje (Objetivos)

  • Conocer herramientas y plataformas de desarrollo de software y prototipos software específicamente orientadas al cálculo técnico y científico, entendiendo las características que las distinguen de otras de carácter genérico.
  • Familiarizarse con lenguajes de programación o extensiones de lenguajes específicamente orientados al cálculo técnico y científico, comprendiendo las herramientas que proporcionan para facilitar el desarrollo de software que resuelva problemas de Ingeniería.
  • Estudiar herramientas orientadas a la visualización de datos científicos y de Ingeniería.
  • Conocer herramientas interactivas para el diseño de diagramas de visualización de conjuntos de datos científicos y técnicos.
  • Conocer distintos formatos estándar de almacenamiento de grandes cantidades de datos.
  • Conocer distintas bibliotecas software orientadas específicamente a la solución de problemas de ingeniería y científicos.
  • Estudiar la solución de problemas del ámbito de la Ingeniería, con especial atención a problemas tipo que tengan aplicación en varias especialidades de ingeniería.
  • Conocer mecanismos y herramientas que faciliten la integración de software desarrolladoen diferentes lenguajes de programación, entendiendo los procesos de comunicación entre los diferentes módulos desarrollados.

Programa de contenidos teóricos y prácticos

Teórico

  • Tema 1. Introducción a la Programación en Python.
    • Elementos básicos del lenguaje.
    • Tipos de datos.
  • Tema 2. Computación numérica en Python y visualización de datos científicos.
    • Numpy.
    • Visualización de datos.
    • Scipy.
  • Tema 3. Programación de interfaces de usuario en Python.
    • Cuestiones básicas.
    • Desarrollo de interfaces de usuario para programación científica.
  • Tema 4. Uso de Python con otros lenguajes.
    • Envolviendo código.
    • Herramientas.
  • Tema 5. Módulos de Python para programación técnica y científica.
    • Pandas.
    • Scikit-learn.
    • Otros módulos.

Práctico

  • Bibliotecas científicas y para ingeniería: Numerical Recipes, OpenCV, etc.
  • Desarrollo de una aplicación científica con Python.
  • Eficiencia numérica con Python.
  • Desarrollo de una aplicación con bibliotecas científicas.
  • Seminarios:
    • Instalación de herramientas.
    • Elementos de Ingeniería del software con Python.
    • Desarrollo de aplicaciones web con Python.

Bibliografía

Bibliografía fundamental

  • Langtangen, H.P., A Primer on Scientific Programming with Python(3ª ed), Springer, 2012.
  • Langtangen, H.P., Python Scripting for Computational Science, Springer, 2009.
  • Kaplan, D., Introduction to Scientific Computation and Programming, CL-Engineering, 2004.
  • Strang, G., Computational Science and Engineering, Wellesley-Cambridge Press, 2007.

Bibliografía complementaria

  • Martelli, A., Python in a nutshell. A desktop quick reference (4ªed), O'Really, 2023
  • Martelli, A., Martelli, A., Ascher, D., Python Cookbook, O'Really, 2013
  • Rossant, C., Learning IPython for interactive computing and data visualization : learn IPython for interactive Python programming, high-performance numerical computing, and data visualization, Packt Publishing, 2013
  • Danaila, I., Joly, P., Kaber, S.M. y Postel, M., An Introduction to Scientific Computing: Twelve Computational Projects Solved with MATLAB, Springer, 2006.
  • Kiusalaas, J., Numerical Methods in Engineering with Python, Cambridge University Press, 2013.
  • Press, W.H., Teukolsky, S.A., Vetterling, W.T. y Flannery, B.P., Numerical Recipes: The Art of Scientific Computing, Cambridge University Press, 2007.

Enlaces recomendados

Metodología docente

  • MD01. Lección Magistral (Clases Teóricas-Expositivas) 
  • MD02. Actividades Prácticas (Resolución de Problemas, Resolución de Casos Prácticos, Desarrollo de Proyectos, Prácticas en Laboratorio, Taller de Programación, Aula de Informática, Prácticas de Campo). 
  • MD03.  Seminarios (Debates, Demos, Exposición de Trabajos Tutelados, Conferencias, Visitas Guiadas, Monografías). 
  • MD04. Actividades no presenciales Individuales. 
  • MD05. Actividades no presenciales Grupales. 
  • MD06. Tutorías Académicas. 

Evaluación (instrumentos de evaluación, criterios de evaluación y porcentaje sobre la calificación final)

Evaluación ordinaria

  • Para la parte teórica se realizará una examen teórico-práctico. La ponderación de este bloque será de un 50%.
  • Para la parte práctica se realizarán prácticas de laboratorio, resolución de problemas y desarrollo de proyectos individuales. Así mismo, se valorarán las entregas de los informes/memorias realizados por los estudiantes, o en su caso, las entrevistas personales con los estudiantes y las sesiones de evaluación. La ponderación de este bloque será de un 40%.
  • La parte de trabajo autónomo y los seminarios se evaluarán teniendo en cuenta la asistencia a los seminarios, los problemas propuestos que hayan sido resueltos y entregados por los estudiantes y las entrevistas efectuadas durante el curso y la presentación oral de los trabajos desarrollados. La ponderación de estos será de un 10%.
  • La calificación global corresponderá por tanto a la puntuación ponderada de los diferentes aspectos y actividades que integran el sistema de evaluación. Por tanto, el resultado de la evaluación será una calificación numérica obtenida mediante la suma ponderada de las calificaciones correspondientes a una parte teórica, una parte práctica y, en su caso, una parte relacionada con el trabajo autónomo de los estudiantes, los seminarios impartidos y el aprendizaje basado en proyectos.
Porcentajes de evaluación
Actividades Formativas Ponderación
Parte teórica 50%
Parte práctica 40%
Otros (seminarios, participación, etc) 10%

Evaluación extraordinaria

  • Se realizará un examen teórico-práctico que corresponderá al 100% de la calificación.
  • Cada estudiante podrá guardar la nota obtenida en la convocatoria ordinaria en los bloques de "Parte Práctica" y “Otros” y en ese caso la calificación final del examen teórico-práctico será de 5 puntos.

Evaluación única final

  • Esta modalidad de evaluación se realizará en un acto académico en la fecha establecida por el Centro.
  • El contenido se evaluará mediante un examen escrito (evaluado de 0 a 10) que incluirá preguntas y problemas de tipo teórico-práctico.

Información adicional

Definición de grupo grande y grupo pequeño:

  • Los grupos grandes son grupos de 45 a 60 estudiantes.
  • Los grupos pequeños son grupos de 15 a 20 estudiantes.

Información de interés para estudiantado con discapacidad y/o Necesidades Específicas de Apoyo Educativo (NEAE): Gestión de servicios y apoyos (https://ve.ugr.es/servicios/atencion-social/estudiantes-con-discapacidad).