El mapa de la ciencia de la computación, explicado zona por zona

En 2017, el divulgador británico Dominic Walliman, autor del canal de YouTube Domain of Science, dibujó un mapa de toda la ciencia de la computación en un solo póster. Es una de las mejores formas de hacerse una idea de lo grande que es este campo y de cómo encajan sus partes, desde la máquina de Turing hasta la realidad virtual.

Póster «Map of Computer Science» de Dominic Walliman, con la informática dividida en teoría, ingeniería de computadores y aplicaciones
«Map of Computer Science», de Dominic Walliman (2017). Pulsa en la imagen para verla a tamaño completo en Flickr.

El mapa divide la informática en tres grandes territorios. Arriba a la izquierda, la teoría, que estudia lo que se puede calcular y cuánto cuesta. Arriba a la derecha, la ingeniería de computadores, que se ocupa de construir máquinas y programas que funcionen. Y abajo, las aplicaciones, donde todo lo anterior se usa para resolver problemas del mundo real.

La teoría de la computación

Es la parte más cercana a las matemáticas, y la que hace de la informática una ciencia y no solo una técnica. En el centro del mapa está Alan Turing y su máquina: un modelo abstracto, una cinta infinita y un cabezal que lee y escribe símbolos, que define qué significa «calcular». Alrededor aparecen:

  • La teoría de la computabilidad, que estudia qué problemas se pueden resolver con un programa y cuáles no, por mucho tiempo que se le dé.
  • La complejidad computacional, que clasifica los problemas según lo difícil que es resolverlos. Ahí está la pregunta abierta más famosa de la informática, si P es igual a NP: si todo problema cuya solución se puede comprobar rápido también se puede resolver rápido.
  • Los algoritmos y su análisis: por qué ordenar con el método de la burbuja crece con el cuadrado del número de elementos y con el de mezcla, mucho menos.
  • La teoría de la información, la base de la compresión y de los códigos que corrigen errores, y la criptografía, con sus claves públicas y privadas.
  • La lógica, la teoría de grafos, los autómatas, la geometría computacional y la computación cuántica, cada una con sus propias preguntas.

La ingeniería de computadores

Aquí está lo que hace falta para que un ordenador real funcione. Empieza por el hardware y la arquitectura de computadores: cómo se organizan la CPU, la memoria y los dispositivos de entrada y salida. Encima están los sistemas operativos, como Linux, Windows, macOS, Android o iOS, que reparten el procesador entre los programas, y los compiladores, que traducen un lenguaje de programación a código máquina.

El mapa coloca en esta zona los lenguajes de programación, la ingeniería del software, con sus métodos formales, pruebas y control de versiones, las redes y los sistemas distribuidos, las bases de datos y la medición del rendimiento. Es, con diferencia, la parte donde trabaja la mayoría de los programadores.

Las aplicaciones

La mitad inferior del mapa es la más visible para todo el mundo. Incluye la optimización para planificar rutas o almacenes, el aprendizaje automático y la inteligencia artificial, la visión por computador y el procesamiento de imágenes, el procesamiento del lenguaje natural, la robótica, los gráficos por computador, la realidad virtual y aumentada, la interacción persona-computador, la supercomputación, la simulación y la ciencia computacional, el big data, el internet de las cosas y la seguridad informática, que el póster llama hacking.

Lo que ha cambiado desde 2017. El mapa es de antes de la explosión de los grandes modelos de lenguaje. Hoy el aprendizaje automático, el procesamiento del lenguaje natural y la representación del conocimiento, que aparecen como islas separadas, se han juntado en buena medida en un mismo tipo de sistema: los modelos como los que usan los asistentes de IA. Aun así, el mapa sigue siendo una guía muy útil: esos modelos dependen de la teoría, del hardware de la otra mitad del póster y de la ingeniería del software para llegar a producción.

El vídeo

Walliman acompaña el póster con un vídeo de unos diez minutos en el que recorre cada zona. Está en inglés, pero se pueden activar los subtítulos en español desde el menú del vídeo.

Otros mapas

Walliman ha dibujado mapas parecidos de otras ciencias. Estos dos son especialmente buenos para ver dónde encaja la informática.

Física, en la versión en español de MolaSaber:

Mapa de la física, versión en español de MolaSaber

Matemáticas:

Póster «The Map of Mathematics» de Dominic Walliman

Si quieres tener el de la ciencia de la computación en la pared, el autor vende el póster en Redbubble.

Póster y vídeo: Dominic Walliman, «Map of Computer Science», Domain of Science (2017).

Estilos

Varios fragmentos de código Java con estilos distintos: la llave de apertura en la misma línea o en la siguiente, sangría con espacios o con tabuladores, y espacios o no alrededor de los operadores en un for.
¿Que estilo prefieres?

La eterna discusión sobre el estilo del código. Todos funcionan igual, así que lo importante no es cuál eliges, sino que todo el equipo use el mismo; hoy los formateadores automáticos como google-java-format, gofmt o Black zanjan la discusión.