Técnicas de Programación
(Curso Académico 2020 - 2021)
Mostrar Todo


Nota informativa: Atendiendo a la normativa de Protección de Datos y propiedad intelectual en la que se limita la publicación de imágenes de terceras personas sin su consentimiento, aquellos que difundan grabaciones de las sesiones de clase sin previo consentimiento de las personas implicadas, serán responsables ante la ley del uso prohibido de las citadas grabaciones.



1. Datos descriptivos de la asignatura
  • Código: 275462135
  • Centro: Escuela de Doctorado y Estudios de Postgrado
  • Lugar de impartición: Facultad de Ciencias. Sección de Física
  • Titulación: Máster Universitario en Astrofísica
  • Plan de Estudios: 2013 (publicado en 11-02-2014)
  • Rama de conocimiento: Ciencias
  • Itinerario/Intensificación:
  • Departamento/s:
  • Área/s de conocimiento:
    • Astronomía y Astrofísica
  • Curso: 2
  • Carácter: Optativo
  • Duración: Primer cuatrimestre
  • Créditos ECTS: 3,0
  • Modalidad de impartición: Presencial
  • Horario: Ver horario
  • Dirección web de la asignatura: Ver web de la asignatura
  • Idioma: Castellano e inglés
2. Requisitos para cursar la asignatura
3. Profesorado que imparte la asignatura

Profesor/a Coordinador/a: ANDRII SUKHORUKOV

General:
Nombre:
ANDRII
Apellido:
SUKHORUKOV
Departamento:
Astrofísica
Área de conocimiento:
Astronomía y Astrofísica
Grupo:
G1 (único)
Contacto:
Teléfono 1:
Teléfono 2:
Correo electrónico:
andrii@iac.es
Correo alternativo:
Tutorías primer cuatrimestre:
DesdeHastaDíaHora incialHora finalLocalizaciónPlantaDespacho
Todo el cuatrimestre Lunes 15:00 17:00 Edificio de Física y Matemáticas - AN.2B 120
Todo el cuatrimestre Miércoles 15:00 17:00 Edificio de Física y Matemáticas - AN.2B 120
Todo el cuatrimestre Viernes 15:00 17:00 Instituto de Astrofísica de Canarias - EX.1A IAC Pasillo 4 3506
Observaciones: Las clases se impartirán en el Centro de Cálculo de Alumnos.
Tutorías segundo cuatrimestre:
DesdeHastaDíaHora incialHora finalLocalizaciónPlantaDespacho
Observaciones:
4. Contextualización de la asignatura en el plan de estudio
  • Bloque formativo al que pertenece la asignatura: Especialidad en Teoría y Computación
  • Perfil profesional:
5. Competencias

Competencia Específicas

  • CE8 - Saber programar, al menos, en un lenguaje relevante para el cálculo científico en Astrofísica
  • CE11 - Saber utilizar la instrumentación astrofísica actual (tanto en observatorios terrestres como espaciales) especialmente aquélla que usa la tecnología más innovadora y conocer los fundamentos de la tecnología utilizada

Competencias Generales

  • CG1 - Conocer las técnicas matemáticas y numéricas avanzadas que permitan la aplicación de la Física y de la Astrofísica a la solución de problemas complejos mediante modelos sencillos

Competencias Básicas

  • CB6 - Poseer y comprender conocimientos que aporten una base u oportunidad de ser originales en el desarrollo y/o aplicación de ideas, a menudo en un contexto de investigación
  • CB7 - Que los estudiantes sepan aplicar los conocimientos adquiridos y su capacidad de resolución de problemas en entornos nuevos o poco conocidos dentro de contextos más amplios
  • CB8 - Que los estudiantes sean capaces de integrar conocimientos y enfrentarse a la complejidad de formular juicios a partir de una información que, siendo incompleta o limitada, incluya reflexiones sobre las responsabilidades sociales y éticas vinculadas a la aplicación de sus conocimientos y juicios
  • CB10 - Que los estudiantes posean las habilidades de aprendizaje que les permitan continuar estudiando de un modo que habrá de ser en gran medida autodirigido o autónomo

Exclusiva de la Especialidad de Teoría y Computación

  • CX2 - Aplicar los conocimientos de informática, Física, Astrofísica y computación para construir simulaciones numéricas de fenómenos o escenarios astrofísicos
6. Contenidos de la asignatura

Contenidos teóricos y prácticos de la asignatura

Profesor: Andrii Sukhorukov
Temas (epígrafes):
- Conceptos básicos de Fortran90.
- Depuradores de código (debuggers).
- Programación paralela: conceptos básicos. El estándar MPI.
- Procedimientos, recursividad.
- Punteros y memoria dinámica.
- Rendimiento y optimización de programas serie y paralelo.
- Aplicación de la programación en paralelo a un problema astrofísico.

Actividades a desarrollar en otro idioma

Impartición de temas, los materiales educativos, los ejercicios de ejemplos y prácticas, y los exámenes serán en inglés.
7. Metodología y volumen de trabajo del estudiante

Descripción

El objetivo de esta asignatura es que el alumno aprenda, ayudado de ejemplos y prácticas con el ordenador, ciertas técnicas avanzadas de programación necesarias para la implementación de multitud de algoritmos habituales en aplicaciones astrofísicas, así como los conceptos básicos de la programación paralela. Se persigue que el alumno sea capaz de implementar en Fortran 90 algoritmos complejos que requieran estructuras de datos dinámicas, que adquiera conocimientos básicos de programación paralela, y que sepa evaluar de manera teórica y práctica la mejora en el rendimiento que la programación paralela puede introducir en un código.
Las clases se dividirán entre clases teóricas (aprox. 1/2) y clases prácticas (aprox. 1/2) donde el alumno pondrá en práctica los conocimientos aprendidos. Asimismo, el alumno tendrá que realizar dos prácticas obligatorias.

Actividades formativas en créditos ECTS, su metodología de enseñanza-aprendizaje y su relación con las competencias que debe adquirir el estudiante

Actividades formativas Horas presenciales Horas de trabajo autónomo Total horas Relación con competencias
Clases teóricas 15,00 0,00 15,0 [CB8], [CB10], [CG1], [CE8], [CE11]
Clases prácticas (aula / sala de demostraciones / prácticas laboratorio) 15,00 0,00 15,0 [CB6], [CB7], [CG1], [CE8], [CX2]
Estudio/preparación de clases teóricas 0,00 20,00 20,0 [CG1], [CE11]
Estudio/preparación de clases prácticas 0,00 25,00 25,0 [CB6], [CG1], [CE8], [CX2]
Total horas
Total ECTS
8. Bibliografía / Recursos

Bibliografía básica

M. Metcalf, J. Reid, M. Cohen, "Modern Fortran Explained" (2nd ed., NY: Oxford University Press, 2018).  If the last edition of this book is not available, it can be substituted by previous editions from the same authors: "Modern Fortran Explained" (1st ed., 2011), "Fortran 95/2003 Explained" (2004), or "Fortran 90/95 Explained (1996, 1999)".

P.S. Pacheco, "Parallel Programming with MPI" (San Francisco, CA: Morgan Kaufmann, 1997).

W. Gropp, E. Lusk, A. Skjellum "Using MPI: Portable Parallel Programming with the Message-Passing Interface" (3rd ed., Cambridge, MA: The MIT Press, 2014).

Bibliografía complementaria

Otros recursos

9. Sistema de evaluación y calificación

Descripción

La evaluación se realizará de la siguiente forma:
- Examen teórico al final del curso: 1/3 de la nota
- Entregable práctico n.1 sobre recursividad, punteros, etc.: 1/3 de la nota
- Entregable práctico n. 2 sobre programación en paralelo: 1/3 de la nota

Para aprobar la asignatura se requiere tener aprobado el examen teórico, así como cada una de las prácticas.

En caso de no aprobar o no presentarse al examen, las notas de las prácticas se guardarán para todas las convocatorias del curso.

Estrategia Evaluativa

Tipo de prueba Competencias Criterios Ponderación
Pruebas objetivas [CB7], [CB8], [CG1], [CE11] Corrección y precisión en las respuestas en el exámen teórico al final del curso. 33,33 %
Trabajos y proyectos [CB6], [CB10], [CE8], [CX2] Demostración de las capacidades de aplicar los conocimientos adquiridos para resolver problémas en dos entregables prácticos. 66,67 %
10. Resultados de Aprendizaje
Esta asignatura proporciona conocimientos avanzados de programación en Fortran 90. Se pretende desarrollar conceptos tales como punteros, recursividad y paralelización de códigos de aplicación directa en problemas de la Astrofísica (modelización, análisis, cálculo masivo).
 
11. Cronograma / calendario de la asignatura

Descripción

Las clases de teoría y práctica se imparten mixtas. En caso de docencia presencial adaptada, las clases se impartirán en el Centro de Cálculo de Alumnos. En caso de suspensión de la presencialidad, se impartirán en línea (aula virtual). El orden de los temas puede cambiar según necesidades y el progreso del grupo.  

En un periodo de 8 semanas se tratarán los siguientes temas:
Tema 1: Introducción a conceptos básicos de Fortran 90.
Tema 2: Herramientas de desarollo de código, depuración, análisis de rendimiento.
Tema 3: Introducción al problema de los N-cuerpos, algoritmo Barnes-Hut.
Tema 4: Procedimientos y recursividad en Fortran 90.
Tema 5: Punteros y tipos derivados en Fortran 90.
Tema 6: Algoritmo Barnes-Hut en serie en Fortran 90.
Tema 7: Introducción a la programación en paralelo.
Tema 8: Operaciones colectivas en MPI.
Tema 9: Algoritmo Barnes-Hut en paralelo (dos variantes). Rendimiento teórico de las dos soluciones.

Primer cuatrimestre

Semana Temas Actividades de enseñanza aprendizaje Horas de trabajo presencial Horas de trabajo autónomo Total
Semana 1: 1 y 2 Introducción a conceptos básicos de Fortran 90. Ejercicios básicos con Fortran 90. Herramientas de ayuda al desarollo: depuradores, profilers, etc. 4.00 6.00 10.00
Semana 2: 3 Introducción al problema de los N-cuerpos, algorithmo Barnes-Hut. Necesidad de conceptos más complejos para resolver el problema con el algoritmo Barnes-Hut. 2.00 3.00 5.00
Semana 3: 4 Teoría de procedimientos y recursiviad. Ejercicios sobre recursividad. 4.00 6.00 10.00
Semana 4: 5 Teoría de punteros y tipos derivados. Ejercicios sobre punteros y tipos derivados. 4.00 6.00 10.00
Semana 5: 6 Solución al problema de los N-cuerpos con el algorithmo Barnes-Hut en serie. Práctica 1 disponible. Tiempo para realizarla: 3 semanas. 4.00 6.00 10.00
Semana 6: 7 Introducción a la teoría de programación en paralelo. La Interfaz de Paso de Mensajes (MPI). Operaciones punto a punto con MPI. Ejercicios básicos con MPI. Práctica 2 disponible.  Tiempo para realizarla: 3 semanas. 4.00 6.00 10.00
Semana 7: 8 Operaciónes colectivas y avanzadas con MPI. Ejercicios avanzados con MPI. 4.00 6.00 10.00
Semana 8: 9 Solución al problema de los N-cuerpos con algoritmo Barnes-Hut en paralelo. Estudio y comparación de dos posibles soluciones y sus diferentes rendimientos. 4.00 6.00 10.00
Total 30.00 45.00 75.00
Fecha de última modificación: 24-07-2020
Fecha de aprobación: 24-07-2020

1. Datos descriptivos de la asignatura
  • Código: 275462135
  • Titulación: Máster Universitario en Astrofísica
  • Curso: 2
  • Duración: Primer cuatrimestre
3. Tutorías no presenciales
ANDRII SUKHORUKOV
General:
Nombre:
ANDRII
Apellido:
SUKHORUKOV
Departamento:
Astrofísica
Área de conocimiento:
Astronomía y Astrofísica
Contacto:
Teléfono 1:
Teléfono 2:
Correo electrónico:
andrii@iac.es
Correo alternativo:
Tutorías primer cuatrimestre:
DesdeHastaDíaHora inicialHora finalTipo de tutoríaMedio o canal de comunicación
Todo el cuatrimestre Lunes 15:00 17:00 no presencial Correo electrónico, Google Meet, Aula Virtual
Todo el cuatrimestre Miércoles 15:00 17:00 no presencial Correo electrónico, Google Meet, Aula Virtual
Todo el cuatrimestre Viernes 15:00 17:00 no presencial Correo electrónico, Google Meet, Aula Virtual
Observaciones: Estoy disponible en cualquier otro momento de todos los días de la semana por correo electrónico. Se pueden enviar e-mails en cualquier momento para preguntar dudas. Se pueden acordar otros momentos para tutorias por videoconferencia si es necesario.
Tutorías segundo cuatrimestre:
DesdeHastaDíaHora inicialHora finalTipo de tutoríaMedio o canal de comunicación
Observaciones:


7. Metodología no presencial

La asignatura se desarrolla a través del Campus Virtual de la ULL, haciendo uso de las diversas herramientas que posibilita dicho medio, combinando actividades formativas sincrónicas (conexión en tiempo real profesor-estudiante) y de carácter interactivo con otras asíncronas.

Las actividades formativas que se desarrollan son las siguientes:

Actividades formativas no presenciales

Actividades formativas
Sesiones virtuales/clases en línea del profesor/a (Equivalencia con GD: Clases teóricas)
Vídeos explicativos grabados por el/la docente (Equivalencia con GD: Clases teóricas)
Inclusión de documentación sobre cada tema (Equivalencia con GD: Estudio autónomo, preparación clases teóricas/prácticas, etc.)
Resolución de ejercicios y problemas (Equivalencia con GD: Clases prácticas. Preparación de trabajos)
Realización de pruebas evaluativas en línea (Equivalencia con GD: Exámenes, test, etc.)

Comentarios adicionales

9. Sistema de evaluación y calificación no presencial

Las pruebas evaluativas a realizar y su ponderación en la calificación es la siguiente:

Estrategia Evaluativa

Tipo de prueba Ponderación
Pruebas objetivas 33,33 %
Informes/Memorias/Trabajos/Proyectos individuales o grupales 66,67 %
Total 100,0 %

Comentarios adicionales

Fecha de última modificación: 24-07-2020
Fecha de aprobación: 24-07-2020