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

Curso 2022/2023
Fecha de aprobación: 14/06/2022

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

Eugenio Aguirre Molina Grupo: 1

Tutorías

Miguel García Silvente

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

Eugenio Aguirre Molina

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

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 Máster)

  • 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.
    • Variables.
    • Funciones.
    • Ficheros
  • Tema 2. Computación numérica en Python.
    • Vectores.
    • Matrices.
  • Tema 3. Combinación de Python con otros lenguajes.
    • Envolviendo código.
    • Usando herramientas.
  • Tema 4. Introducción a la programación de interfaces de usuario en Python.
    • Elementos básicos.
    • Elementos más complejos.
  • Tema 5. Programación avanzada en Python.
    • Argumentos en línea de órdenes.
    • Expresiones regulares.
    • Manejo de ficheros.
  • Tema 6. Manejo y visualización de datos científicos.
    • Manipulación de datos multidimensionales.
    • Indexación de datos.
    • Visualización de datos.
  • Tema 7. Herramientas y Aplicaciones.
    • Herramientas para representar funciones.
    • Aplicaciones científicas.

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 (2ªed), O'Really, 2006
  • 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, 2010.
  • 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). 

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 constituirá el 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 será de 4 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.