RACCIS, 3(2), 43-46, 2013 Revista Antioqueña de las Ciencias Computacionales y la Ingeniería de Software ISSN: 2248-7441 www.fundacioniai.org/raccis [email protected] Computer Sciences is SCIENCE Las Ciencias Computacionales como CIENCIA Alexei Ivan Software Engineering Institute, Romania. Alexei.i(AT)softute.ro INFORMACIÓN DEL ARTÍCULO Tipo de artículo: Reflexión Historia del artículo Recibido: 18-08-2013 Correcciones: 25-10-2013 Aceptado: 07-11-2013 Categories and Subject Descriptors K.3.2 [Computers and Education]: Computer and Information Science Education – Computer science education. General Terms Computer Science, Computing. Keywords Computer Science, Computational Scientists. Science, Palabras clave Ciencias Computacionales, Ciencia, Científicos Computacionales. ABSTRACT In many ways and traditional fields, to Computer Science are seen as a tool, but for most it is a discipline that enriches many other disciplines, and this is one of the most interesting and important things about it. But that's also what makes it so difficult to classify and quantify, though of course it does not have to fit perfectly anywhere. The issue will be classified as something as something that may be a little easier for other scientists, and provide to computationals begin to understand what is and what should be your goal. This article is a thoughtful analysis and presents a vision of these sciences as SCIENCE. RESUMEN En muchos aspectos y campos tradicionales, a las Ciencias Computacionales se les observa como una herramienta, pero para la mayoría es una disciplina que enriquece muchas otras disciplinas, y esta es una de las cosas más interesantes y más importantes al respecto. Pero eso es también lo que hace que sea tan difícil de clasificar y de cuantificar, aunque por supuesto no tiene que encajar perfectamente en cualquier parte. El asunto de clasificarla como algo puede que sea un poco más fácil para otros científicos, y les facilitaría a los computacionales comenzar a entender lo que es y cuál debería ser su objetivo. En este artículo se hace un análisis reflexivo y se presenta una visión de estas ciencias como CIENCIA. 1. INTRODUCCIÓN Existe una vieja frase que mantiene su vigencia desde hace tiempo en ciertos círculos: una disciplina no es ciencia sólo por el hecho de tener la palabra CIENCIA en su nombre. ¿Hay algo de verdad en esta afirmación? Cuando en esos círculos las personas empiezan a pensar y a analizar esta pregunta, tienen la falsa creencia de que la respuesta se estructura fácilmente, pero cuanto más piensan en ella, más se dan cuenta de lo compleja que es esta cuestión. Y es que este asunto ha sido motivo de debate por siglos, porque desde que la sociedad comenzó a superar la era industrial, se generó una especie de incertidumbre científico-académica, es decir, al pasar de necesitar operarios, técnicos y tecnicistas en todas las actividades de desarrollo, ya no sabían cuál era el nivel que se requería. Entonces se optó, en muchas comunidades, por agregarle la palabra ciencia a los nombres de sus disciplinas, como Ciencias Jurídicas, Ciencias Sociales, Ciencias Políticas, Ciencias Humanas, y así sucesivamente. Se creó una especie de el último apaga y cierra, porque todos pescaban en río revuelto y ninguna disciplina se quería quedar por fuera del juego. Así nació la mayoría de las que hoy se consideran ciencias, y al © 2013 IAI. All rights reserved. parecer nadie se ha preocupado por decir lo contrario; y siempre que no se refieran a su área disciplinar, todas pueden ser CIENCIAS. Por ejemplo, un científico computacional se asocia en el campus con otros científicos de otras áreas, y hasta cierto punto esa asociación funciona bien, porque comparten experiencias y tienen intereses comunes de investigación, aunque existen cuestiones fundamentales en las que difieren, como la necesidad que tienen los físicos de un laboratorio tradicional, y es por esto que algunos colegas piensan que las Ciencias Computacionales no se deben considerar una ciencia, porque no pasa esta prueba de fuego. Pero remplace Ciencias Computacionales, por ejemplo por Arte, Ingeniería o cualquier otro campo o disciplina del conocimiento, y se podría llegar a argumentos similares. En muchos aspectos, a las Ciencias Computacionales se les observa como una herramienta, pero es una disciplina que enriquece muchas otras disciplinas, y esta es una de las cosas más interesantes y más importantes al respecto. Pero eso es también lo que hace que sea tan difícil de 43 clasificar y de cuantificar, aunque por supuesto no tiene que encajar perfectamente en cualquier parte [1]. El asunto de clasificarla como algo puede que sea un poco más fácil para otros científicos, y les facilitaría a los computacionales comenzar a entender lo que es y cuál debería ser su objetivo. Lograr este fuerte sentido de sí mismo, de la identidad como campo, es crucial para su supervivencia como área científica. En este artículo se hace un análisis al caso de las Ciencias Computacionales, un área más reciente que muchas de las nombradas anteriormente. Como campo, estas ciencias ofrecen algunas de las preguntas y áreas de exploración más interesantes, desafiantes y fundamentales para la era actual. Junto a la tecnología en general, han transformado sustancialmente a la sociedad, la cultura, la ciencia y el arte, y la humanidad sólo han empezado a conocer la superficie de lo que se puede realizar con ellas. Sólo para resaltar este punto, ¿qué actividad humana no tiene relación con un computador, un programa software o un microchip? Sin embargo, el asunto es que un científico computacional no encaja fácilmente en ninguno de los grupos de las disciplinas tradicionales, porque trabaja con otros científicos, pero también con ingenieros, humanistas, artistas, sociólogos, bibliotecarios, y la mayor parte, por no decir la totalidad, de su labor, no se percibe en lo físico, porque es lo que la misma ciencia considera soft. 2. ¿QUÉ ES CIENCIA? Para la mayoría de personas parece suficiente el hecho de aplicar cierta prueba de fuego para determinar si algo es una ciencia, y llegan a la conclusión de que ese algo será ciencia sí: 1. Utiliza el método científico; es decir, investigación empírica y observación, y 2. Implica el estudio de los principios fundamentales del mundo natural o físico. Para el caso de las Ciencias Computacionales el primer punto es más fácil de abordar, porque estos científicos utilizan el método científico todo el tiempo: formulan hipótesis acerca de cómo se debe comportar un sistema o algoritmo concreto, desarrollan experimentos para probar la hipótesis, recogen datos, analizan,… Lo que pasa es que las Ciencias Computacionales se basan en un profundo sentido de empirismo, donde el método científico desempeña un papel esencial en el proceso de hacer ciencia, y las entidades o sistemas que estudian no se acoplan al mundo natural sin la intervención del hombre, porque son sistemas complejos que todavía no se comprenden ampliamente, debido a se originan en procesos tecnológicos y sociales complejos [2]. Ahora bien, qué pasa con el segundo punto. Responder si las Ciencias Computacionales implican suficientemente el estudio de los principios fundamentales del mundo natural o físico es mucho más complicado. Es evidente que algunas partes de ellas estudian el mundo natural y físico, como la computación científica, por ejemplo, pero en este contexto, la tecnología computacional se utiliza para responder a una cuestión científica específica, o a un conjunto de cuestiones, y necesariamente no implica la generación efectiva de la hipótesis, porque se supone que se debe haber conformada primero, y entonces la tecnología se aplica como una herramienta de prueba. Pero, ¿implican las Ciencias Computacionales, en sí mismas, suficientemente el estudio de los principios fundamentales de algo? Una forma de responder es ligándolas a las matemáticas, porque en contraste con casi todas las otras disciplinas el fenómeno central que estudia está casi enteramente definido e investigado a través de la abstracción. Además, están tan estrechamente entrelazadas con sus aplicaciones tecnológicas que es difícil hacer distinciones entre éstas y su contenido puramente científico. Pero este contenido, sin duda, está presente; por ejemplo, si existen algoritmos eficientes para los problemas NP-difíciles es una cuestión científica objetiva, que todavía no se ha resuelto. Por otro lado, la ciencia es algo más que probar hipótesis, porque en ocasiones las respuestas no son claras. Si así fuera, sería como un matemático elaborando especificaciones de diseño, o un ingeniero construyendo aspectos para diseño, y entonces el argumento parece reducirse a si las matemáticas son una ciencia. Debido a que parte de las Ciencias Computacionales estudian los sistemas, ¿podrían entonces esos sistemas ser considerados ciencia? [3]. Estudiar los grandes sistemas es de gran valor, porque los seres humanos han comenzado a construir sistemas muy complejos, que actualmente sólo se comprenden superficialmente. Esto suele ser una sorpresa para los científicos nocomputacionales y las personas no-tecnológicas, porque poseer la capacidad para construirlos no implica que se comprendan totalmente. Hace un tiempo Bertrand Russell dijo que la ciencia trata acerca de la descripción, no de la lógica o de la causalidad, o de cualquiera otra noción ingenua que tengamos acerca de una necesidad. Los científicos describen cosas, y en este contexto las Ciencias Computacionales son en muchos sentidos el último esfuerzo científico, o al menos uno fundamental, porque son las ciencias de la descripción. Estos científicos aprenden cómo describir algo y cómo procesarlo mejor, más precisa y más útilmente. Además, las descripciones de procesos, cuyo comportamiento se puede observar, son más útiles que las descripciones estáticas de los limitados poderes interpretativos de la mente humana. El estudio de cómo escribir descripciones ―programas― les ha enseñado más acerca del lenguaje y la expresividad y complejidad de lo que las matemáticas nunca podrían enseñarles. Y esto sólo empezando a rasgar la superficie. Por todo lo anterior se debe asumir que las Ciencias Computacionales son CIENCIA, aunque de hecho no cumplan a cabalidad con ambos puntos. Pero también hay que reconocer que el segundo es un asunto difícil, porque requiere aceptar que las entidades sintéticas generadas por el hombre constituyen un mundo, en el que se puede y necesita descubrir principios fundamentales. Aunque 44 algunos podrían argumentar que, de hecho, el estudio de lo sintético es ingeniería y no necesariamente ciencia. 3. ¿QUÉ HACEN LOS CIENTÍFICO COMPUTACIONALES? Antes de analizar más profundamente si las Ciencias Computacionales son o no ciencia, es conveniente realizar una presentación, para los lectores científicos no computacionales, acerca de lo que hacen realmente los científicos computacionales. La mayor parte de su tiempo se encuentran trabajando en proyectos, o escribiendo una conferencia o artículo científico; los problemas de investigación que abordan son difíciles, y requieren un proceso de pensar-planificar-analizar; y todo el tiempo esbozan en papel o en tablero los diseños de sistemas, diagramas, esquemas de codificación, o algoritmos. En muchas ocasiones trabajan con ecuaciones para modelar matemáticamente algún aspecto del sistema que investigan, y cuando los modelos son complicados, utilizan herramientas para encontrar patrones, lo que requiere la mayoría de su atención y energía cerebral. Parte de su tiempo lo dedican a atender a los estudiantes, generalmente a través de asesorías y consultas; también se reúnen con otros colegas, iguales o de otras disciplinas, para discutir los procesos en los cuales pueden colaborar de alguna manera, o simplemente para charlar. Luego regresan a depurar el código, o a configurar y ejecutar experimentos para recopilar o analizar datos, a la vez que redactan los informes de resultados y para estructurar scripts para divulgar su trabajo [4]. 4. LAS CIENCIAS COMPUTACIONALES COMO CIENCIA Esta área del conocimiento tuvo sus inicios en la década de 1950, y durante los siguientes 40 años acumuló una serie de principios que se extendían más allá de sus fundamentos matemáticos originales, que incluyeron a la ciencia computacional, los sistemas, la ingeniería y el diseño. En 1989 se opinó que la disciplina computacional era el estudio sistemático de los procesos algorítmicos, que describen y transforman información: teoría, análisis, diseño, eficiencia, implementación y aplicación [5]. En este campo científico se combinan, de forma única y potencializada, la ciencia, la ingeniería y las matemáticas, y algunas de sus actividades principalmente son ciencia, por ejemplo, los algoritmos experimentales, la informática experimental, y la ciencia computacional; algunas son principalmente ingeniería, como el diseño, el desarrollo, la Ingeniería de Software y la ingeniería informática; algunas son principalmente matemáticas: complejidad computacional, software matemático, y análisis numérico; pero la mayoría son combinaciones de estos conjuntos, aunque estas actividades se basan en los mismos principios fundamentales [6]. En 1989, se utilizó el término computación en lugar de Ciencias Computacionales, matemáticas o ingeniería, pero actualmente, la informática, la ingeniería, las matemáticas, el arte y todas sus combinaciones, se agrupan bajo un mismo nombre: Ciencias Computacionales. El paradigma científico, que se remonta a Bacon, es el proceso de formar hipótesis y ponerlas a prueba a través de experimentos, y entonces las hipótesis exitosas se convierten en modelos que explican y predicen los fenómenos en el mundo. Las Ciencias Computacionales siguen este paradigma en el estudio de los procesos de información [7]. El sinónimo europeo para Informática claramente sugiere que el campo trata acerca de los procesos de la información, no de los computadores. Los lexicógrafos ofrecen dos distinciones adicionales: 1) entre ciencia pura y aplicada; la primera se centra en el conocimiento per se, y la segunda en la utilidad demostrable del mismo, 2) entre ciencia inexacta (cualitativa) y exacta (cuantitativa); la primera se refiere a la predicción y verificación mediante la observación, la medición y la experimentación. La investigación Informática está plagada de ejemplos del paradigma científico, y los investigadores cognitivos están convencidos de que gran parte del comportamiento inteligente es el resultado del procesamiento de información en el cerebro y el sistema nervioso, y para demostrarlo construyen sistemas en los que implementan procesos de información hipotéticos para compararlos con la realidad. En estos estudios los computadores son herramientas para probar la hipótesis, y los sistemas exitosos se pueden implementar inmediatamente. Los investigadores en Ingeniería de Software diseñan modelos de programación para determinar cómo surgen los defectos, y a través de las pruebas tratan de comprender cuáles modelos funcionan bien y la forma de utilizarlos para crear mejores programas con menos defectos. Los investigadores en algoritmia experimental estudian el rendimiento de los algoritmos reales en conjuntos de datos reales, y formulan modelos para predecir su tiempo y requisitos de almacenamiento; además, algún día podrán producir una teoría más precisa de Big-O-Cálculo e incluir una teoría de localidad. El naciente campo de Interacción Humano-Computador está examinando las formas en que los procesos humanos de información interactúan con los procesos automatizados. Estos argumentos permiten calificar a las Ciencias Computacionales como como ciencias exactas, porque estudian los procesos de información que se producen de manera natural en el mundo físico; los científicos computacionales trabajan con un cuerpo de conocimiento aceptado y sistematizado, en el que aplican mucha ciencia computacional, que utilizan para predecir y verificar. La objeción de que estas ciencias no son ciencia porque estudian objetos artificiales (tecnologías), es una cuestión sin fundamento, porque estudian los procesos de la información tanto artificial como natural, y ayudan a que otros campos de estudio también lo hagan. Los físicos explican el comportamiento de las partículas con los procesos de la información cuántica, algunos de los cuales son bastante extraños, y comprueban sus teorías con experimentos de simulación por computador; los bioinformáticos explican el ADN como información biológica codificada, y estudian cómo las enzimas de transcripción leen y actúan en él; los modelos computacionales de estos procesos les ayudan a personalizar las terapias para cada paciente, y la farmacéutica y los laboratorios crean moléculas artificiales, a través de simulaciones por 45 computador de los procesos de información de las composiciones químicas subyacentes. 5. CONCLUSIONES Acerca de este tema todavía queda mucho de qué hablar. Pero muchos científicos han permitido que el bombo de los departamentos de publicidad en las organizaciones infiltre sus laboratorios. En una muestra de 400 documentos relacionados con las Ciencias Computacionales y publicados antes de 1995, Tichy encontró que aproximadamente el 50% de los modelos o hipótesis que proponen no se han probado [8], mientras que en otros campos científicos esa misma fracción era de un 10%. Entonces, Tichy concluyó que esta incapacidad para probar muchas ideas erróneas se trata de una práctica que reduce la credibilidad de este campo como ciencia. Pero también es cierto que es un campo relativamente joven, apenas 60 años de edad, por lo que es posible explicar la baja tasa de pruebas. Otras ciencias, establecidas primero que las Computacionales, necesitaron hasta tres generaciones para establecer la solidez de sus principios. Otra cuestión es que este campo parece ser una cuestión generacional. Los miembros de mayor edad tienden a identificarse con una de las tres raíces del campo: ciencia, ingeniería o matemáticas, aunque el primer paradigma sea en gran medida invisible en los otros dos. Por su parte, la generación más joven, más familiarizada y mucho menos impresionada con las nuevas tecnologías, es más abierta al pensamiento crítico. Las Ciencias Computacionales siempre han sido parte de su mundo, por lo que no cuestionan su validez como CIENCIA, y en sus investigaciones involucran cada vez más el paradigma de la ciencia, lo que hace que en la literatura reciente se muestre un marcado incremento hacia las pruebas que todavía no se han hecho. El paradigma científico no hacía parte de la corriente principal de las Ciencia Computacionales, pero gracias al trabajo de los científicos jóvenes pronto lo será. 6. REFERENCIAS [1] Schokosva, N. & Buskova, I. (2013). What is that Thing Called Computer Science? Rev. Antioqueña Ciencias Comput. Ing. Softw. RACCIS, 3(1), pp. 12-18. [2] Graham, P. (2004). Hackers and Painters: Big Ideas from the Computer Age. O’Reilly and Associates. [3] Cerrosen, J. & Pong, J. (2012). Science in Computational Sciences. Rev. Antioqueña Ciencias Comput. Ing. Softw. RACCIS, 2(2), pp. 12-20. [4] Horgan, J. (2004). The end of science revisited. IEEE Computer, 37(1), pp. 37-43. [5] Denning, P. et al. (1989). Computing as a discipline. Communications of ACM, 32(1), pp. 9-23 [6] Denning, P. (2003). Great principles of computing. Communications of ACM, 46(10), pp. 15-20. [7] National Research Council. (2004). Computer Science: Reflections on the Field, Reflections from the Field. National Academy Press. [8] Tichy, W. (1988). Should computer scientists experiment more. IEEE Computer, 31(5), pp. 32-40. 46