Metodología de inmersión en la ingeniería software para humanistas digitales

Javier García Algarra
fco.javier.garciaalgarra@telefonica.com
Telefónica I+D/UNED

Comunicación breve
Humanidades digitales – pedagogía y currículo


La investigación en ciencias sociales y humanidades se basa cada vez más en herramientas y métodos que tuvieron su origen en otras disciplinas como las matemáticas o la ingeniería. Este fenómeno resulta muy beneficioso porque va a producir un cambio cualitativo similar al que se vivió en las ciencias experimentales.

La contrapartida está en la necesidad de formar a los futuros investigadores en materias con un peso muy reducido o incluso inexistente en los planes universitarios tradicionales. Los humanistas del siglo XXI tendrán que ser capaces de manejar herramientas de visualización, análisis de datos o inteligencia artificial con un nivel de pericia equivalente al de sus homólogos en física o econometría. Pero además tienen por delante la complicada tarea de adaptar esas técnicas a sus dominios de aplicación específicos.

Existe el riesgo de incorporar estos avances de una forma desordenada o precipitada, de manera que aparezcan vicios metodológicos de costosa solución. Esta apreciación se basa en situaciones ya conocidas en campos donde la programación es una actividad imprescindible, como la física, o en otras que se encuentran en un estadio intermedio de madurez, como las ciencias biológicas [1].

Conceptos procedentes de la ingeniería software como la reproducibilidad [2][3], la colaboración o el control de versiones están siendo adoptadas por los grupos de investigación de ciencias experimentales como una metodología sólida para su trabajo diario. Debe entenderse la ingeniería software en su sentido más amplio, desde el estudio inicial del problema hasta el mantenimiento de la solución desarrollada. El fin último es organizar la producción científica de una manera casi industrial, en la que el software sea un elemento de la cadena que contribuye a aumentar la calidad y no un cuerpo extraño [4].

La solución no pasa por convertir a los jóvenes filólogos o historiadores en ingenieros software, pero es imprescindible dotarles de los conocimientos necesarios para que no queden rezagados en esta carrera en la que otros profesionales llevan años compitiendo. La formación básica puede conseguirse en periodos reducidos de tiempo si se siguen los pasos adecuados: reducir el número de tecnologías que se deben asimilar, motivar al grupo empleando ejemplos de su campo de estudio e integrar la tecnología en su trabajo diario.

Existen experiencias similares y muy exitosas en otros ámbitos. Por ejemplo, el laboratorio de ecología teórica del profesor Stefano Allesina de la Universidad de Chicago (allesinalab.uchicago.edu) tiene un programa de inmersión en la práctica del desarrollo software profesional, sin presuponer conocimientos previos de los estudiantes de doctorado, que suelen proceder del mundo de la biología. Un enfoque parecido se puede encontrar en el trabajo del economista de la misma institución Matthew Gentzkow [5].

La Software Carpentry Foundation (software-carpentry.org) es una organización sin ánimo de lucro que lleva años formando profesores voluntarios para enseñar a investigadores los fundamentos de la práctica software en sesiones presenciales de dos días. El temario incluye manejo básico de la shell de UNIX, dos lenguajes de programación (Python, R), control de versiones con github y consultas a bases de datos con SQL, más una pequeña aplicación práctica final. Los profesores son expertos en tecnología pero su principal labor es despertar el interés de los alumnos por adoptar nuevas formas de trabajar partiendo de la base que adquieren. Aunque la labor de la Software Carpentry Foundation se ha centrado en las ciencias experimentales, en el último año ha comenzado a trabajar con profesionales de las humanidades como bibliotecarios y arqueólogos.

En esta comunicación breve proponemos describir una metodología básica de inmersión en la ingeniería software para investigadores en humanidades, apoyada en casos reales.

El objetivo último de este trabajo es motivar a la comunidad de humanistas digitales hispanos para poner en marcha experiencias reales de cursos de inmersión en nuestro entorno cultural y comparar los resultados con los que arrojan los de las sociedades anglosajonas [7].

Referencias

[1] Wilson G, Aruliah DA, Brown CT, Chue Hong NP, Davis M, et al. (2014). Best Practices for Scientific Computing. PLoS Biol 12(1): e1001745. DOI: 10.1371/journal.pbio.1001745

[2] Stodden, V., Leisch, F., & Peng, R. D. (Eds.). (2014). Implementing reproducible research. CRC Press.

[3] De Chaumont, F., Dallongeville, S., Chenouard, N., Hervé, N., Pop, S., Provoost, T., & Olivo-Marin, J. C. (2012). Icy: an open bioimage informatics platform for extended reproducible research. Nature methods, 9(7), 690-696.

[4] Hambrusch, S., Hoffmann, C., Korb, J. T., Haugan, M., & Hosking, A. L. (2009). A multidisciplinary approach towards computational thinking for science majors. ACM SIGCSE Bulletin (Vol. 41, No. 1, pp. 183-187). 

[5] Matthew Gentzkow and Jesse M. Shapiro. Code and Data for the Social Sciences: A Practitioner's Guide, (2014). faculty.chicagobooth.edu/matthew.gentzkow/research/CodeAndData.pdf

[7] Jorge Aranda. Software Carpentry Assessment Report", July 2012 software-carpentry.org/bib/aranda-assessment-2012-07.pdf