Herramientas programables de cómputo científico

Este es el sitio web del curso impartido por la Dra. Elisa Schaeffer en el Posgrado en Ingeniería de Sistemas (PISIS) de la Facultad de Ingeniería Mecánica y Eléctrica (FIME) de la Universidad Autónoma de Nuevo León (UANL) en el semestre de primavera (enero-junio) del 2012.

Hay una clase semanal, los martes 12:50-14:30 (V2&3) en el salón 5309 del edificio de posgrado.

Mecánica del curso

El curso consiste en 14 sesiones prácticas de 100 minutos cada una, agrupados en siete pares, más una sesión extra optativa.

En la primera sesión de cada par, se realizan pequeños demos y prácticas con una nueva herramienta, mientras en la segunda sesión de cada par, los participantes demuestran aplicación de dicha herramienta en su propio trabajo de investigación.

Cada demostración vale un máximo de 15 puntos: máx. cinco por la claridad de la presentación presencial en clase, máx. cinco por la documentación de la aplicación en el blog personal del participante (una entrada por tema; se recomienda incrustar las diapositivas de la presentación junto con videos de captura de pantalla de demos en vivo) y máx. cinco por la eficiente y sofisticado que es el uso técnico de la herramienta en cuestión. Calificaciones superiores a cien serán obviamente cortadas a cien exacto. Calificaciones menores a 80 son reprobatorias en el posgrado.

Es importante notar que los buenos trabajos siempre utilizan una combinación de dos o más herramientas. Una vez que hemos aprendido una herramienta, esperamos incorporarlo a los trabajos de los temas que siguen siempre y cuando es aplicable y útil. De la misma forma se recomienda usar cualesquieras herramientas adicionales que conozcan o descubran para siempre realizar actividades de la mayor precisión y aportación científica posible.

Es importante que los participantes traigan su laptop con las herramientas necesarias para la sesión preinstaladas, ya que no se puede garantizar la conectividad durante la sesión.

Temario

Son siete temas, dos sesiones por tema, más una sesión extra optativa. La primera es para practicar conjuntamente, mientras la segunda sesión es para las presentaciones de los participantes.

  1. bash (24 y 31 de enero)
  2. (g)awk (7 y 14 de febrero)
  3. sed (21 y 29 de febrero)
    Algunos ejemplos simples
  4. gnuplot (6 y 13 de marzo)
    Algunos ejemplos simples
  5. Python (20 y 27 de marzo)
    Ejemplo en Tk
  6. R (17 y 24 de abril)
  7. Octave (8 y 22 de mayo)
  8. Sesión extra: CUDA para cómputo paralelo GPU (29 de mayo; no hay tarea obligatoria, sino opcional con entrega 100% en línea)
    Ejemplo de ordenamiento por mezcla con hilos en Python

Instalación de herramientas

En Linux, acuden a las herramientas de instalación de su distribución. En distribuciones tipo debian, intenten primero en el terminal con la nombre de la herramienta; si no sale nada, intenten con sudo apt-get install y nombre de herramienta. Si no sale nada, intenten en el Software Center o algo parecido que tenga su distribución.

En OS X, primero intentan en el terminal con el nombre. Si no sale, instalan port o fink. Googlean por instrucciones.

En Windows, pues, búsquenle si se puede, si les gusta batallar.

Bibliografía

Se indica un documento electrónico por tema. Es recomendable contar con una copia local en su laptop de los documentos de la sesión actual y de las anteriores para poder realizar las actividades aún si no se puede conectar a internet en clase.

Es muy recomendable buscar o crear e imprimir tarjetas de referencia sobre los lenguajes utilizados. Busquen también por tutoriales y ejemplos en línea antes de la clase e incluyan ligas a todo lo bueno que encuentran en sus entradas de blog.

No habrá diapositivas ni notas de clase. Lo que se hace en la sesión son demos en vivo, de los cuales se saca captura de pantalla en video a solicitud de los participantes.

  1. Mendel Cooper: Advanced Bash-Scripting Guide - An in-depth exploration of the art of shell scripting
  2. The GNU Awk User's Guide
  3. sed
  4. Gnuplot official documentation, version 4.4
  5. The Python Tutorial
  6. Full R Reference Manual
  7. GNU Octave - A high-level interactive language for numerical computations
  8. NVIDIA CUDA C Programming Guide, Version 4.0

Blogs de los participantes

El nombre del participante es liga a su blog; los puntos por tema se capturan en la tabla.

Participante T1T2T3T4 T5T6T7TE Total
Ana Laura 14151315 141514- 100
Ángeles 14131415 141514- 99
Dagoberto 14151414 151415- 100+1
Diana 13131413 141513- 95
Jorge 13141012 141214- 89
Mónica 13141415 1514142 100+1


Actualizado el 7 de junio del 2012.
URL: http://elisa.dyndns-web.com/~elisa/teaching/prog/tools/