top of page

Computing As A Discipline: Definiendo las Áreas de la Informática

Actualizado: 31 ago

A raíz de un e-mail de un estudiante me acordé de las 9 áreas de la Informática (Computing). Los invito a conocerlas.

ree

Fuente: imagen creada con la IA Gemini PRO usando el Prompt: "Se necesita crear una imagen que represente el contenido del paper. El estilo debe ser el de ciencia ficción de los años cincuenta".


Corría el año 1990 del siglo pasado y yo estaba terminando mi carrera de Pre Grado, Ingeniería de Ejecución en Informática en la Universidad Católica de Valparaíso (en esos tiempos UCV y ahora PUCV).


En ese contexto el Profesor Enrique Pérez Santi nos compartió el paper "Computing as a Discipline" escrito por varios "monstruos" de la Informática:

Peter J. Denning (Chairman): Pionero en el campo de la memoria virtual, donde inventó el modelo de "conjunto de trabajo" (working set) para optimizar el rendimiento de los sistemas operativos.

Douglas E. Comer: Es una autoridad mundial en redes de computadores, reconocido por su serie de libros Internetworking with TCP/IP, que se convirtieron en un estándar para la enseñanza del tema.

David Gries: Influenció a generaciones de estudiantes con sus libros sobre construcción de compiladores y la aplicación del rigor matemático y la lógica a la programación.

Michael C. Mulder: Destacó por su liderazgo en la educación en computación y su rol como decano fundador, impulsando la creación de nuevos institutos de tecnología.

Allen B. Tucker: Co-lideró el desarrollo de currículos de computación de gran influencia, como Computing Curricula 1991, y es autor de textos clave sobre lenguajes de programación.

A. Joe Turner: Jugó un papel fundamental en la acreditación de programas de computación a nivel internacional, presidiendo organismos como el CSAB y el Seoul Accord.

Paul R. Young: Contribuyó significativamente a la teoría de la computación, investigando la complejidad algorítmica y la relación entre la “computabilidad” y la lógica.

 

Resultados del estudio: 

El informe final del Grupo de Trabajo sobre el Núcleo de la Ciencia de la Computación, presentó un nuevo marco intelectual para la disciplina de la computación y una base renovada para los planes de estudio. Este documento fue respaldado y aprobado para su publicación por la Junta de Educación de la ACM.

 

El equipo de trabajo abordó un debate persistente sobre la verdadera naturaleza de la ciencia de la computación, cuestionando si era una ciencia, una disciplina de ingeniería o simplemente una tecnología.

 

Cuestiones y motivaciones para el informe:

- Se observó que la disciplina proyectaba una imagen excesivamente orientada a la tecnología, con fundamentos en matemáticas e ingeniería, donde los algoritmos eran considerados los objetos más básicos y la programación y el diseño de hardware las actividades principales.

- La visión de que "la ciencia de la computación es igual a la programación" era especialmente predominante en la mayoría de los planes de estudio existentes. Esta perspectiva, según los autores, obstaculizaba el progreso curricular, desmotivaba a los estudiantes talentosos que buscaban mayores desafíos y negaba un enfoque coherente para integrar armoniosamente la ciencia experimental y teórica de la computación.

- Los autores señalaron que la ciencia de la computación abarca mucho más que la programación, incluyendo el diseño de hardware, la arquitectura de sistemas, el diseño de capas de sistemas operativos, la estructuración de bases de datos para aplicaciones específicas y la validación de modelos, actividades que no son meramente programación. La excesiva dependencia de los lenguajes de programación como vehículo principal para acceder al campo limitaba la capacidad de la disciplina para comunicar su amplitud y riqueza.

- El informe surgió de discusiones iniciadas en 1984 entre los directores de los departamentos de ciencia e ingeniería de la computación que otorgan doctorados, lo que llevó a la ACM y la IEEE Computer Society a formar grupos de trabajo para desarrollar un nuevo enfoque.

 

Definición y marco intelectual de la disciplina:

Los autores establecieron una definición concisa de la disciplina de la computación:

- La disciplina de la computación se describió como "el estudio sistemático de procesos algorítmicos que describen y transforman información: su teoría, análisis, diseño, eficiencia, implementación y aplicación".

- La pregunta fundamental subyacente a toda la computación se planteó como: "¿Qué puede ser (eficientemente) automatizado?".

- Esta disciplina, según el informe, nació a principios de la década de 1940 con la unión de la teoría de algoritmos, la lógica matemática y la invención de la computadora electrónica de programa almacenado.

 

Paradigmas fundamentales de la disciplina:

Los autores identificaron tres paradigmas o estilos culturales principales que guían el trabajo en la disciplina de la computación, destacando su naturaleza intrínsecamente entrelazada y su igual importancia fundamental:

- Teoría: Enraizada en las matemáticas, se enfoca en caracterizar objetos de estudio, formular hipótesis sobre sus relaciones, determinar la veracidad de esas relaciones y, finalmente, interpretar los resultados.

- Abstracción (Modelado): Con raíces en el método científico experimental, implica formular una hipótesis, construir un modelo y hacer una predicción, diseñar un experimento para recolectar datos y analizar los resultados. El término "abstracción" fue elegido por su uso común en la disciplina, aunque "modelado" y "experimentación" también eran considerados apropiados.

- Diseño: Basado en la ingeniería, este paradigma consiste en establecer requisitos y especificaciones, diseñar e implementar sistemas para resolver problemas, y probarlos para asegurar que satisfagan las necesidades iniciales.

 

Los autores enfatizaron que estos tres procesos están tan interconectados en la computación que no se puede afirmar que uno sea más fundamental que los otros.

 

Subáreas de la disciplina:

El informe dividió la disciplina en nueve subáreas principales, cada una con una unidad subyacente de la materia, un componente teórico sustancial, abstracciones significativas e importantes cuestiones de diseño e implementación:

1. Algoritmos y estructuras de datos.

2. Lenguajes de programación.

3. Arquitectura.

4. Computación numérica y simbólica.

5. Sistemas operativos.

6. Metodología e ingeniería de software.

7. Sistemas de bases de datos y recuperación de información.

8. Inteligencia artificial y robótica.

9. Comunicación humano-computadora.

 

Se señaló que la computación paralela y distribuida, la seguridad, la fiabilidad y la evaluación del rendimiento no se identificaron como subáreas separadas, ya que son preocupaciones transversales que permean todas las subáreas y sus componentes (teoría, abstracción y diseño).

 

Modelo curricular y secuencia introductoria:

Los autores propusieron un modelo educativo centrado en el desarrollo de la competencia, definida como la capacidad de acción efectiva en un dominio. Distinguieron entre dos áreas de competencia: pensamiento orientado a la disciplina (la habilidad de inventar nuevas distinciones) y el uso de herramientas (la habilidad de aplicar herramientas existentes). Se sugirió que el pensamiento orientado a la disciplina debería ser el objetivo primordial para los estudiantes de computación.

 

Para la secuencia introductoria, los autores recomendaron un enfoque que:

- Consistiera en clases magistrales regulares y un laboratorio semanal estrechamente coordinado. Las clases magistrales debían enfatizar los fundamentos, mientras que los laboratorios se centrarían en la tecnología y el conocimiento práctico.

- Introdujera no solo programación, algoritmos y estructuras de datos, sino también material de todas las otras subdisciplinas.

- Integrara las matemáticas y otras teorías en las clases en puntos apropiados.

- Fuera una rigurosa y desafiante exploración de toda la disciplina, similar al modelo de la física, ejemplificado por las “Feynman Lectures in Physics” (se refiere a los temas desarrollados por el Premio Nobel de Física (1965) Richard Feynman).

- Reconociera la necesidad de rediseñar todo el plan de estudios de pregrado, ya que una modificación aislada de la secuencia introductoria sería un error grave.

- Asumiera que los estudiantes poseían una preparación básica en programación y herramientas informáticas, pero recomendó ofrecer un curso introductorio en programación y herramientas como requisito previo o simultáneo, dada la rareza de una preparación adecuada en la escuela secundaria.

- Se organizará de forma modular para resaltar la unidad subyacente del campo y transitar pedagógicamente de un tema a otro, en lugar de secuenciar simplemente las nueve subáreas.

 

El papel de los laboratorios:

El informe detalló que los laboratorios, coordinados con las clases magistrales, servirían para tres propósitos principales:

- Demostrar la aplicación de principios: Mostrar cómo los principios cubiertos en las clases se aplican al diseño, implementación y prueba de software y hardware prácticos.

- Fomentar el conocimiento práctico: Enfatizar los procesos que conducen a un buen saber hacer en computación, incluyendo la programación (no solo los programas), las técnicas de laboratorio, la comprensión de las capacidades del hardware y el uso adecuado de herramientas de software y documentación.

- Introducir métodos experimentales: Enseñar el diseño y uso de experimentos, el monitoreo de hardware y software, el análisis estadístico de resultados y la presentación adecuada de hallazgos.

 

Se enfatizó la necesidad de que los laboratorios contaran con equipos y lenguajes actualizados, evitando sistemas obsoletos en los cursos básicos. Además, las asignaciones de laboratorio debían ser autodidactas, fomentar el descubrimiento y requerir la documentación adecuada en un cuaderno de laboratorio.

 

Finalmente, los autores reconocieron que implementar estas recomendaciones sería desafiante y requeriría un trabajo sustancial, incluyendo la necesidad de rediseñar los planes de estudio por parte de las facultades, la falta de libros de texto basados en el nuevo marco, laboratorios inadecuados y la limitada familiaridad de los docentes con la nueva perspectiva. Sin embargo, se mostraron convencidos de que las mejoras en la educación en computación justificarían el esfuerzo.


PD: si quieren leer el paper original lo pueden descargar de aquí: https://dl.acm.org/doi/pdf/10.1145/63238.63239

 

ree

Saludos cordiales.

Profesor Gerardo Cerda Neumann, Editor del Blog.


Comentarios


bottom of page