RACCIS, 3(1), 12-18, 2013 Revista Antioqueña de las Ciencias Computacionales y la Ingeniería de Software ISSN: 2248-7441 www.fundacioniai.org/raccis [email protected] What is that Thing Called Computer Science? ¿Qué es esa Cosa Llamada Ciencias Computacionales? Nadya Schokosva1, Irina Buskova2 Software Engineering Institute. 1Nadya.s(AT)softute.ro; 2Irina.b(AT)softute.ro INFORMACIÓN DEL ARTÍCULO Tipo de artículo: Reflexión Historia del artículo Recibido: 10-01-2013 Correcciones: 15-04-2013 Aceptado: 20-04-2013 Categories and Subject Descriptors K.3.2 [Computers and Education]: Computer and Information Science Education – Computer science education. General Terms Computer Science, Computing, Algorithms. ABSTRACT XXI century society, called Knowledge Society, has a direct dependency of the software products, considered by many as the most important development of modern technology. This dependence generates the need of scientists and professionals who research and develop products that meet social demands. This article describes the computer science area as one of the most demanded professions in this reality, and in order to make it known to more people. RESUMEN La sociedad del siglo XXI, llamada Sociedad del Conocimiento, tiene una dependencia directa de los productos software, considerados por muchos como el desarrollo más importante de la tecnología moderna. Esa dependencia genera la necesidad de que científicos y profesionales investiguen y desarrollen productos que satisfagan las demandas sociales. En este artículo se describe el área de las Ciencias Computacionales como una de las profesiones más demandadas en esta realidad, y con el objetivo de darla a conocer a un mayor número de personas. Keywords Computer Science, Software Engineering, Computer Engineering, computational scientists. Palabras clave Ciencias Computacionales, Ingeniería de Software, Ingeniería Informática, científicos computacionales. 1. INTRODUCCIÓN En los 30, Turing y Church desarrollaron los principios matemáticos fundamentales de la computación. Los principios computacionales implementados en la década de 1940 por von Neumann, Wilkes, Eckert, Atanasoff y otros, dieron lugar al nacimiento de la computación científica y comercial en los años 50, lo mismo que de lenguajes de programación matemática como Fortran, comerciales como COBOL, y de Inteligencia Artificial como LISP. En los 60, el rápido desarrollo y la consolidación de la algoritmia, las estructuras de datos, las bases de datos y los sistemas operativos formaron el núcleo de lo que hoy se conoce como Ciencias Computacionales tradicionales, y en los 70 surgió la Ingeniería de Software, la programación estructurada y la orientada por objetos. La aparición en los 80 de la computación personal y las redes, preparó el escenario para el progreso del paralelismo, la graficación computacional y la tecnología del software. En los 90 apareció la Internet como un © 2013 IAI. All rights reserved. medio para el intercambio académico y científico, y como un vehículo para el comercio y la comunicación internacional [1]. Las Ciencias Computacionales entonces se consolidaron como el estudio de los procesos computacionales y las estructuras de la información, incluyendo sus realizaciones hardware y modelos lingüísticos, y sus aplicaciones [2]. Por otro lado, el uso rápido y generalizado de los computadores y de las tecnologías de la información ha generado una necesidad de trabajadores altamente cualificados con dominio en diversas áreas de trabajo. Estos especialistas en informática son los científicos computacionales y los analistas de sistemas. Las áreas de trabajo y los títulos ocupacionales utilizados para describirlos evolucionan rápida y continuamente, reflejando nuevas áreas de especialización o cambios en la tecnología, así como las preferencias y prácticas de los empleadores. 12 Los científicos computacionales se desempeñan como teóricos, investigadores o inventores. Su trabajo se caracteriza por un mayor nivel de conocimientos teóricos y de innovación, el cual aplican a problemas complejos y a crear o aplicar nuevas tecnologías. Las áreas de investigación de las Ciencias Computacionales (CC) van desde las teorías complejas para diseñar hardware hasta el diseño de lenguajes de programación. Algunos investigadores trabajan en proyectos multidisciplinares, como el desarrollo y el uso avanzado de la realidad virtual, extendiendo la interacción persona-computador, o el diseño de robots. Pueden trabajar en equipos de diseño con ingenieros eléctricos, ingenieros de software y otros especialistas. Además, los investigadores en Ciencias Computacionales empleados en las instituciones académicas desempeñan funciones similares en muchos aspectos a las empleadas en otras organizaciones. En general, tienen más flexibilidad para centrarse en la teoría pura, mientras que los que trabajan en otras organizaciones por lo general se centran en proyectos que tienen la posibilidad de generar patentes y beneficios. Sin embargo, algunos en entornos no académicos tienen una considerable libertad para determinar el rumbo de su investigación [3]. Con la Internet y el comercio electrónico se generan grandes volúmenes de datos, y existe una creciente necesidad de almacenarlos, gestionarlos y extraerlos de manera eficaz. Los administradores de bases de datos trabajan con software de sistemas de gestión de base de datos y determinan maneras de organizar y almacenar esos datos. Identifican las necesidades del usuario y diseñan nuevas bases de datos informáticas. En muchos casos, estos administradores deben integrar los datos de los sistemas obsoletos en un nuevo sistema; también prueban y coordinan las modificaciones en el sistema cuando sea necesario y resuelven los problemas cuando ocurren. Estos profesionales aseguran el rendimiento del sistema, comprenden la plataforma en la que se ejecuta la base de datos, y añaden nuevos usuarios al sistema. Debido a que muchas bases de datos están conectadas a Internet, también deben planificar y coordinar las medidas de seguridad con los administradores de la red. Con el creciente volumen de datos sensibles, el aumento en la interconexión de las redes de computadores, la integridad de datos y los sistemas de resguardo, la seguridad de las base de datos se han convertido cada vez más en un aspecto importante de la labor de estos administradores [3]. Los analistas de sistemas, también conocidos como arquitectos de sistemas, diseñan, prueban, evalúan e integran sistemas, como las redes de área local (LAN) y de área amplia (WAN), Internet, intranets y otros sistemas de comunicación y de tratamiento de datos. Los sistemas actuales están configurados de muchas maneras y pueden ir desde una conexión entre dos oficinas en el mismo edificio hasta redes distribuidas globalmente, correo de voz y sistemas de correo electrónico de una organización multinacional. Los arquitectos realizan el modelado, el análisis y la planificación de las redes, que a menudo requieren tanto soluciones de hardware como de software. Por ejemplo, una red puede implicar la instalación de varios componentes hardware, como routers y concentradores, adaptadores inalámbricos y cables, al mismo tiempo que la instalación y configuración del software respectivo, como los controladores de red y la integración al sistema de información de la organización. Los analistas también pueden investigar los productos y hacer recomendaciones en el hardware y el software necesarios [3]. En el resto de este artículo se presenta una descripción detallada del área de conocimiento y de trabajo de las Ciencias Computacionales. El objetivo es ofrecer la mayor información posible acerca de esta área del conocimiento, considerada como la base para el desarrollo de otras dependientes como las ya mencionadas bases de datos y arquitectura de sistemas, y de otras de gran importancia como la Ingeniería de Software. Con la información que aquí se presenta será posible que los interesados en alguna de ellas puedan comprenderlas mejor y para que los estudiantes tengan mejores bases para tomar la decisión de estudiar Ciencias Computacionales. 2. FORMACIÓN Los Científicos Computacionales deben ser creativos, inquisitivos, analíticos y orientados al detalle. Deben tener buenos conocimientos en matemáticas, incluyendo cálculo, probabilística y estadística, y de sistemas informáticos. También es necesaria la adecuada preparación en una o más de las ciencias básicas, como física, química, o biología. Es importante que posean habilidades para trabajar en equipo y para comunicarse tanto verbal como por escrito, porque el trabajo en esta área con frecuencia requiere la interacción con especialistas por fuera de la informática o la ingeniería. Para perfeccionar estas habilidades se recomienda dominar una segunda lengua, básicamente inglés, ser un buen lector y escritor, y desarrollar su capacidad como ser humano social [4]. 2.1 Ciencias Computacionales vs Ingeniería Informática vs Ciencias de la Información Muchos programas de pregrado de cuatro y cinco años en Ciencias Computacionales e Ingeniería Informática están acreditados por el Accreditation Board for Engineering and Technology (ABET), y normalmente están adscritos a las escuelas de ingeniería. En algunos casos, como por ejemplo en el MIT y en Berkeley, los títulos se ofrecen en el Departamento de Ingeniería Eléctrica y Ciencias Computacionales. Otra característica común es que existe una considerable superposición en los pregrados de Ingeniería Informática y Ciencias Computacionales. La principal diferencia entre ellos es que el primero requiere un componente de diseño para ingeniería [5]. Los pregrado en Ciencias de la Información están diseñados para preparar a los estudiantes en la aplicación de los computadores en los negocios. Por lo tanto, generalmente residen en las escuelas de negocios y no están acreditados por ABET, aunque existen algunos programas acreditados que se ofrecen en escuelas de ingeniería. Además de los cursos en programación, 13 organización y operación de computadores, redes y bases de datos, estos programas requieren cursos en negocios y administración, y una menor cantidad de cursos en matemáticas y ciencias que los necesarios en Ciencias Computacionales e Ingeniería Informática. 2.2 Cursos de Estudio En un programa típico de cuatro años y con semestres de 120 horas, los estudiantes de Ciencias Computacionales asisten a 40 horas semestrales en temas propios del área, a 30 horas en temas de matemáticas ―matemáticas discretas, cálculo diferencial e integral y probabilística y estadísticas― y de ciencia, que deben incluir trabajo de laboratorio. En esas horas recibirán formación en lógica, abstracción, algoritmia, estructuras de datos, diseño de software, conceptos de lenguajes de programación y organización y arquitectura de computadores. Además, fundamentos teóricos, análisis y resolución de problemas y diseño de soluciones. Estarán expuestos a una variedad de lenguajes y sistemas de programación ―generalmente como trabajo independiente―, y deben ser competentes en al menos un lenguaje de alto nivel y en métodos formales. Desarrollarán habilidades de comunicación verbal y escrita y recibirán formación general en humanidades y en áreas sociales y artes. 2.3 Formación continua En el campo de la computación los avances tecnológicos vienen tan rápidamente que es necesaria la formación continua, luego de la graduación, para mantener las habilidades adquiridas. Los empleadores, los proveedores de hardware y de software, las asociaciones, las universidades y las instituciones privadas ofrecen este tipo de formación. El entrenamiento adicional también puede provenir de seminarios profesionales ofrecidos por las sociedades en informática. 2.4 Programas acreditados Los interesados en carreras en Ciencias Computacionales deben considerar la revisión de los programas que están acreditados por ABET. Esta acreditación se basa en una evaluación al rendimiento de los estudiantes del programa, al mejoramiento del programa, el profesorado, los contenidos curriculares, las instalaciones, y el compromiso institucional. En cada país que ofrecen pregrados en esta área del conocimiento tienen otros estándares para acreditar los programas, pero en términos generales deben apuntar a que cada día se ofrezca mejores profesionales a la sociedad. 3. ÁREAS DE ESPECIALIDAD La mayoría de Científicos Computacionales se clasifican por sus áreas de interés. La siguiente es una lista de las áreas de especialidad dentro de las CC: Algoritmos y Teoría Inteligencia Artificial Arquitectura y Computación Paralela Bioinformática y Biología Computacional Bases de Datos y Sistemas de Información Gráficos, Visualización e Interfaces Computador Hombre- Sistemas Distribuidos y Redes Lenguajes de programación Sistemas y Métodos Formales Ingeniería de Software Computación Científica Teoría Computacional 3.1 Algoritmos y Teoría La investigación en esta área se centra en el diseño y análisis de algoritmos y estructuras de datos para los problemas que surgen en diversas áreas de las Ciencias Computacionales, incluidas la Verificación automática de software, la geometría computacional, la minería de datos y el aprendizaje automático. 3.2 Inteligencia Artificial Esta área de especialización se centra en una amplia gama de temas que incluyen la representación del conocimiento, el aprendizaje, la visión, el razonamiento, la robótica, los sistemas de información y la planificación. Las áreas de aplicación incluyen a la biología molecular, la manufactura, la teoría de control y la codificación. 3.3 Arquitectura y Computación Paralela El área de arquitectura se centra especialmente en desarrollar arquitecturas, diseñar hardware, lenguajes de programación y sus compiladores, para computadores de última generación y componentes informáticos. En computación paralela se trabaja en proyectos de diversos tamaños y se investiga los aspectos del software computacional en computadores con multi-procesadores. 3.4 Bioinformática y Biología Computacional La investigación en esta área incluye el desarrollo de algoritmos eficientes y escalables para la simulación biomolecular y la aplicación de la minería de datos, el aprendizaje estadístico automático, el procesamiento del lenguaje natural y la recuperación de información para analizar y extraer todo tipo de datos biológicos, incluyendo secuencias de ADN, secuencias y estructuras de proteínas, micro-arreglos de datos y literatura de biología, con el propósito de facilitar los descubrimientos. 3.5 Bases de Datos y Sistemas de Información Los científicos que trabajan en esta área llevan a cabo investigación de vanguardia en bases de datos, minería de datos, minería web, recuperación de información y procesamiento del lenguaje natural. Los enfoques actuales podrían incluir la integración de datos, la exploración y la integración de la "Web profunda", la seguridad, los flujos de minería de datos y los datos secuenciales y semi-estructurados, el soporte a los sistemas operativos para los sistemas de almacenamiento, recuperación de textos, bioinformática, soporte para bases de datos para la computación de alto rendimiento y el procesamiento de consultas top-k. 3.6 Gráficos, Visualización e Interfaces HombreComputador La investigación en gráficos y visualización incluye el modelado y la animación de los fenómenos naturales, la topología computacional, la utilización de hardware de 14 gráficos, renderización basada en imágenes, superficies implícitas, procesamiento y simplificación de mallas, procesos de modelado y texturización, modelado de formas, parametrización de superficies y procesamiento de la visibilidad. La investigación en interfaces hombrecomputador involucra herramientas de interfaz de usuario que apoyan mejor las primeras tareas de diseño, es decir, sistemas y ambientes que les ayudan a los usuarios a mantener el conocimiento de la información, herramientas para la creación y el diseño multimedia, interfaces que fomentan la interacción social y en general la interacción humano-computador. 3.7 Sistemas Distribuidos y Redes La investigación en el grupo de Redes y Sistemas Distribuidos incluye una amplia gama de temas, entre los que se encuentran los sistemas móviles, los protocolos inalámbricos, las redes ad-hoc, la gestión de la calidad del servicio, las redes multimedia, las redes peer-to-peer, el enrutamiento, las simulaciones de red, la gestión de cola activa y las redes de sensores. El área de los Sistemas Operativos se centra en la gestión de recursos distribuidos, la gestión de los entornos de computación ubicua, middleware reflexivo, sistemas meta-operativos middleware, diseño de sistemas operativos orientados por objetos, interfaces que les permitan a los usuarios individuales interactuar con múltiples computadores, servicios para sistemas operativos peer-to-peer, sistemas de archivos distribuidos en contextos sensitivos, gestión de energía para centros de datos, sistemas de almacenamiento de archivos, computación autonómica, sistemas de soporte para software robusto, y sistemas de soporte para bases de datos. La investigación en seguridad incluye arquitecturas de seguridad dinámica, seguridad para redes activas, privacidad, autenticación, autorización, control de acceso, confianza en entornos de computación ubicua para usuarios móviles, autenticación en redes de sensores, especificación y validación de las políticas de control de acceso de seguridad, simulación de problemas de seguridad en redes y sus soluciones incluyendo la denegación de servicio, y la próxima generación de seguridad telefónica. En Sistemas de tiempo real y Embebidos las áreas de investigación incluyen sistemas en tiempo real QoS conducidos por protocolos de programación y de comunicación, diseño integrado de controladores y planificadores en tiempo real, integración en tiempo real, protocolos de tolerancia a fallos y de seguridad y dinámica y arquitectura en tiempo real para dispositivos de red y espacios inteligentes. 3.8 Lenguajes de Programación, Sistemas y Métodos Formales Los científicos que trabajan en esta área estudian e investigan el diseño y la implementación de lenguajes de programación, con el objetivo de mejorar tanto la productividad del desarrollador como la calidad del programa. Los temas van desde las teorías abstractas de los lenguajes de programación hasta las cuestiones prácticas acerca del uso y la implementación de lenguajes de alto nivel. La investigación en Métodos Formales incluye áreas como especificación formal, lenguajes formales, matemáticas computacionales, lenguajes de especificación formal, Verificación. 3.9 Ingeniería de Software El software es el desarrollo tecnológico de mayor impacto en la actual Sociedad del Conocimiento y como tal se deben realizar procesos de investigación en Ingeniería de Software para mejorar la calidad de sus productos. Las áreas de investigación en este campo cubren temas como Ingeniería de Requisitos, pruebas del software, automatización de las pruebas, Verificación y Validación, integración de sistemas, formalización, simulación y lógica y abstracción. 3.10 Computación Científica Las personas que trabajan en esta área conducen investigaciones en desarrollo y análisis de técnicas numéricas para aproximar los modelos matemáticos de sistemas físicos y algoritmos a la resolución de las ecuaciones resultantes en los sistemas informáticos de alto rendimiento. Las aplicaciones científicas y de ingeniería específicas consideradas incluyen: dinámicas de biología molecular, ciencias de los materiales, simulación de semiconductores, astrofísica y diseño de cohetes de combustible sólido. 3.11 Teoría Computacional En las Ciencias Computacionales teóricas y las matemáticas, la teoría computacional es la rama que se ocupa de y cómo resolver problemas de manera eficiente en un modelo computacional, utilizando la algoritmia. Actualmente existen varios modelos pero el más examinado es la máquina de Turing, porque es fácil de formular, puede ser analizado y utilizado para demostrar resultados, y porque representa lo que muchos consideran el más poderoso y posible modelo "razonable" de la computación. El campo de la Teoría Computacional se divide en tres ramas principales [6]: 1) teoría de autómatas, 2) teoría de la computabilidad y 3) teoría de la complejidad computacional (Ver la Figura 1). 4. HABILIDADES Y DESTREZAS Los Científicos Computacionales deben ser capaces de pensar lógicamente y tener buenas habilidades comunicativas, además de desarrollar una capacidad lógico-interpretativa y abstractiva que les permita comprender los problemas antes de analizarlos y solucionarlos. Debido a que a menudo se enfrentan con una serie de tareas simultáneas, es importante que posean capacidad de concentración, de observación y prestar mucha atención a los detalles. Para lograrlo deben poseer conocimientos sólidos en matemáticas y ciencias básicas, ser buenos oradores y tener vocación por escribir y hablar en público, porque parte de su trabajo consiste en publicar resultados y exponerlos ante la comunidad científica internacional. Los Científicos Computacionales Teóricos proponen teorías y demuestran o desmienten hipótesis, y los resultados los comunican a las diferentes comunidades relacionadas, mientras que los Experimentales se orientan a demostrar teorías o simular las demostraciones propuestas por los primeros [4]. 15 Figura 1. Relación entre la Teoría Computacional, la Teoría de la Complejidad y la Teoría de los Lenguajes Formales [6] Por su propia naturaleza, las Ciencias Computacionales es una disciplina multifacética que se puede ver a partir de por lo menos cuatro perspectivas diferentes. Tres de ellas, la teoría, la abstracción y el diseño subrayan la idea de que los científicos computacionales en todas las áreas pueden enfocar su trabajo desde diferentes puntos de vista y objetivos intelectuales, mientras que en la cuarta, el contexto social y profesional, se reconoce que las aplicaciones de estas ciencias afectan directamente la calidad de vida de las personas, de modo que los científicos deben comprender y confrontar los problemas sociales con los que su trabajo se tropieza exclusiva y regularmente. 4.1 Teoría La Teoría de las Ciencias Computacionales se basa en los principios de las matemáticas y de los métodos formales de las ciencias físicas, biológicas y de comportamiento y de las áreas sociales. Normalmente se requiere aplicar las ideas abstractas y los métodos tomados de sub-campos de las matemáticas, como la lógica, el álgebra, el análisis y la estadística. También incluye el uso de diversas técnicas de prueba y argumentación, como la inducción y la contradicción, para establecer propiedades de los sistemas formales que justifican y explican lo que subyace a los algoritmos básicos y a las estructuras de datos utilizados en los modelos computacionales. Los ejemplos incluyen el estudio de los problemas sin solución algorítmica y el estudio de los límites superior e inferior de la complejidad de diversas clases de problemas algorítmicos. 4.2 Abstracción La abstracción en las Ciencias Computacionales incluye el uso de la investigación científica, el modelado y la experimentación para probar la validez de las hipótesis sobre los fenómenos computacionales. Todos los científicos computacionales utilizan la abstracción como una herramienta fundamental de investigación, y muchos podrían argumentar que las Ciencias Computacionales son en sí la ciencia de la construcción y el examen de los modelos computacionales abstractos de la realidad. La abstracción surge en la arquitectura de computadores, donde la máquina de Turing sirve como un modelo abstracto para los equipos reales complejos, y en los lenguajes de programación, donde se utilizan modelos semánticos simples, como el cálculo lambda, como marcos para el estudio de lenguajes complejos; también aparece en el diseño de algoritmos heurísticos y en la aproximación a problemas cuya solución óptima es intratable computacionalmente. Además, se utiliza en los gráficos y la computación visual, donde los modelos de los objetos tridimensionales se construyen matemáticamente, debido a que las propiedades de iluminación, color y textura de la superficie, se proyectan de manera realista en una pantalla bidimensional. 4.3 Diseño El diseño es un proceso mediante el cual se modela la estructura esencial de los sistemas complejos como el preludio para su aplicación práctica. También abarca el uso de métodos tradicionales de ingeniería, incluyendo al modelo de ciclo de vida clásico, para implementar sistemas computacionales eficientes y útiles en hardware y software. Incluye el uso de herramientas como el análisis costo-beneficio de las alternativas, el análisis de riesgos y la tolerancia a fallos que garantizan que las aplicaciones se implementen efectivamente. El diseño es una preocupación central de los arquitectos de sistemas y los ingenieros de software que desarrollan sistemas hardware y aplicaciones software. El diseño es una actividad muy importante en las Ciencias Computacionales, la gestión de la información, la interacción humano-computador, los sistemas operativos y la computación centrada en red. 4.4 Contexto social y profesional Este contexto incluye muchas de las preocupaciones que surgen en la interfaz humano-computador, como la responsabilidad por los errores de hardware y software, la seguridad y la privacidad de la información en bases de datos y redes, las cuestiones de propiedad intelectual y equidad y de patentes y derechos de autor. Los científicos computacionales deben considerar el contexto ético en el que se produce su trabajo y las responsabilidades especiales que lo asisten. 5. PROSPECTIVA De acuerdo con el US Department of Labor, Bureau of Labor Statistics, las Ciencias Computacionales será una de las ocupaciones de más rápido crecimiento en las próximas décadas [7]. El fuerte crecimiento del empleo combinado con la cantidad limitada de profesionales cualificados dará como resultado buenas perspectivas de 16 empleo para esta ocupación y una alta demanda de sus habilidades. Se espera que el porcentaje de ocupación de estos científicos sea de un 37% hasta 2016, mucho más rápido que el promedio para todas las ocupaciones. Debido a los desarrollos tecnológicos de este siglo las organizaciones necesitan profesionales para adoptar e integrar productos cada vez más sofisticados. El aumento del empleo será impulsado por un crecimiento rápido en el diseño de sistemas informáticos y los servicios conexos, que se prevé será una de las industrias de más rápido crecimiento en la economía mundial. La demanda por redes que faciliten el intercambio de información, la expansión de los entornos cliente-servidor, y la necesidad de especialistas en informática para utilizar sus conocimientos y habilidades como capacidad para la resolución de problemas serán los principales factores en el aumento de la demanda para los Científicos Computacionales. Las empresas seguirán buscando a quienes sean capaces de implementar las últimas tecnologías y de aplicarlas para atender sus necesidades, en la lucha por mantener una ventaja competitiva. Debido a que los computadores se utilizan cada vez más en las funciones de negocio, igualmente se necesita implementar tecnología más sofisticada y compleja en las organizaciones, lo que genera la demanda por profesionales mejor calificados. La expansión del comercio electrónico y la continua necesidad de construir y mantener bases de datos para almacenar información crítica, están impulsando la demanda por administradores de bases de datos familiarizados con las tecnologías de punta. Además, debido a la creciente dependencia de Internet entre las empresas, la seguridad de la información es una preocupación constante. La expansión de la integración de las tecnologías de Internet en las empresas ha dado lugar a una creciente necesidad de especialistas que puedan desarrollar y apoyar las aplicaciones de Internet e intranet, y el crecimiento del comercio electrónico significa que más establecimientos utilizan la Internet para llevar a cabo sus negocios en línea, lo que genera demanda por más especialistas en seguridad para proteger sus sistemas. El crecimiento explosivo en estas áreas también se espera que impulse la demanda de profesionales bien capacitados en redes de datos y en la seguridad de las comunicaciones. La tecnología de este siglo es cada vez más sofisticada y compleja, por lo que exigirán un mayor nivel de habilidades y experiencias de quienes la administran. Las personas con un grado avanzado en Ciencias Computacionales o Ingeniería Informática deberán disfrutar de perspectivas de empleo favorables. Esto se debe a que los empleadores continuarán buscando especialistas que puedan combinar fuertes habilidades técnicas con buenas habilidades de negocios, y los individuos con una combinación de experiencia dentro y fuera de la arena tendrán mejores posibilidades de trabajo. 6. ORGANIZACIONES PROFESIONALES Las organizaciones y asociaciones profesionales ofrecen una amplia gama de recursos para planificar y navegar por una carrera en Ciencias Computacionales. Estos grupos juegan un papel clave en el desarrollo del área y mantienen a los interesados al tanto de lo que está sucediendo en la industria. Las asociaciones promueven los intereses de sus miembros y proporcionan una red de contactos que ayudan a encontrar puestos de trabajo y a lograr mejor cualificación. Ellas pueden ofrecer una variedad de servicios, incluidos el de referencias de empleo, cursos de formación continua, aseguramiento, publicaciones periódicas y reuniones y oportunidades para conferencias. A continuación se describen algunas de estas asociaciones, pero una lista más amplia está disponible en www.careercornerstone.org. Association for Computing Machinery ACM (www.acm.org) Fundada en 1947, ACM es una fuerza importante para el avance en los conocimientos de los profesionales en tecnologías de la información y estudiantes de todo el mundo. Sus más de 80.000 miembros actuales y el público en general ingresan al portal de literatura, relacionada en publicaciones autorizadas y conferencias pioneras, que proporciona liderazgo y conocimiento permanente para el siglo XXI. Institute of Electrical and Electronics Engineers IEEE (www.ieee.org) Las raíces del IEEE se remontan a 1884, cuando la electricidad empezaba a convertirse en una fuerza importante en la sociedad. Es una asociación dedicada a promover la innovación y la excelencia tecnológica en beneficio de la humanidad, y es la sociedad técnica profesional más grande del mundo. Está diseñado para servir a los profesionales involucrados en todos los aspectos de los campos eléctricos, electrónicos y de computación, y áreas afines de la ciencia y la tecnología en la que se basa la civilización moderna. IEEE Computer Society (www.computer.org) Con más de 100.000 miembros, IEEE es la organización de profesionales en informática líder a nivel mundial. Fundada en 1946, es la más grande de las 39 sociedades del IEEE. 7. CONCLUSIONES Este artículo tiene como objetivo caracterizar las Ciencias Computacionales, incorporando el crecimiento explosivo de Internet y la creciente importancia de las áreas temáticas como la interacción persona-computador, la computación científica masivamente en paralelo, la tecnología de la información ubicua, y otros sub-campos que podrían no haber aparecido hace diez años. El campo de las Ciencias Computacionales ha experimentado una dramática evolución en sus cortos 70 años de vida. A medida que madura, emergen nuevas áreas de investigación y de aplicación y se unen a los descubrimientos clásicos en un ciclo continuo de la revitalización y crecimiento. En 2002, ACM celebraba su 55 aniversario. En estas cinco décadas las Ciencias Computacionales se caracterizaron por un alto crecimiento y evolución. A pesar de que es seguro reafirmar que este campo ha alcanzado cierto nivel de 17 madurez, seguramente es claro suponer que no se mantendrá sin cambios durante mucho tiempo. Porque la comunidad está pidiendo y trabaja en nuevas visiones que le permitan a la disciplina seguir su rápida evolución como respuesta a la continua demanda mundial de nuevas tecnologías e innovaciones. requiere una considerable energía y el compromiso y la inversión real por parte de instituciones y profesionales de todos campos. Los desafíos son grandes, y las soluciones no son susceptibles de ser obvias. Este trabajo está diseñado para comunicar el espíritu moderno, los logros y la dirección de las Ciencias Computacionales. Se proporcionan respuestas actuales a las preguntas computacionales planteadas por los profesionales e investigadores que trabajan en las áreas temáticas que conforman estas Ciencias. Además, se identifican las cuestiones profesionales y sociales que se encuentran en la intersección de los aspectos técnicos y de las personas cuyas vidas se ven afectadas por este tipo de tecnologías. [1] Stevenson, D.E. (1994). Science, computational science, and computer science. Communications of the ACM, 37(12), pp. 85-96. [2] Gibbs, N. & Tucker, A. (1986). A Model Curriculum for a Liberal Arts Degree in Computer Science. Communications of the ACM, 29(3), pp. 202-210. [3] Bryant, R.E. & Vardi, M.Y. (2002). 2000–2001 Taulbee Survey: Hope for More Balance in Supply and Demand. Computing Research News, 14(2), pp. 4-11. [4] http://ai.stanford.edu/users/sahami/CS2013/ [Feb. 2013]. [5] Denning, P. et al. (1989). Computing as a discipline: preliminary report of the ACM task force on the core of computer science. Communications of the ACM, 20(1), pp. 41. [6] Sipser, M. (2012). Introduction to the Theory of Computation. Wadsworth Publishing Co Inc. [7] Advisory Committee for Cyber-infrastructure. (2011). Task Force on Grand Challenges. National Science Foundation. Final Report. El futuro es muy prometedor para las próximas generaciones de científicos computacionales. Porque van a resolver los problemas que recientemente se están concibiendo, como los "grandes desafíos" sugeridos por el Advisory Committee for Cyberinfrastructure de la National Science Foundation (National Science Foundation 2011). Para hacerles frente a estos problemas de forma que se beneficie a los ciudadanos del mundo se 8. REFERENCIAS 18
© Copyright 2024