¿Qué tan matemática puede ser la informática?

Me cuesta imaginar una subdisciplina de CS que no pueda tratarse matemáticamente. Sin embargo, parece estar confundido porque equipara la programación con CS. La disciplina del desarrollo de software como tal no es CS; Los problemas prácticos que surgen en la programación suelen ser tratados de manera científica por Software Engineering, no CS. Son dos disciplinas académicas: enredadas pero distintas.

Ahora que esto se ha aclarado, también hay dos enfoques básicos para casi el problema de la informática: el enfoque de sistemas y el enfoque teórico. Los investigadores de sistemas publican sus artículos en lugares como NSDI; los teóricos publican los suyos en lugares como STOC y FOCS (y en cientos de otros). Puede buscarlos para tener una idea de cómo es una investigación de este tipo.

A menudo, los teóricos descubren por primera vez una nueva idea importante y luego la filtran en la comunidad en general, ganando aplicaciones y adaptándose a los detalles del dominio. Por ejemplo, el algoritmo de detección comprimida que ahora está ganando popularidad fue desarrollado originalmente por matemáticos. Posteriormente, los investigadores de CS más orientados teóricamente descubrieron cómo aplicar esa idea a diferentes dominios, como el reconocimiento de imágenes o la tomografía en red. Ahora los investigadores de sistemas están construyendo prototipos de sistemas reales que se basan en esta idea subyacente.

Toda la informática teórica es matemática. Algunos investigadores incluso llegan a considerar la CS teórica como una subdisciplina de las matemáticas, en lugar de una disciplina independiente.

Dices que has estado programando por un tiempo. ¿Estás estudiando CS en la universidad? Si no, puede programar para siempre, incluso tener una carrera muy exitosa con él, sin tener que enfrentarse con las matemáticas de la informática. Una vez que llegue a la universidad, puede encontrarse con cualquiera de los siguientes, cada uno de los cuales implica un razonamiento matemático muy riguroso.

Aquí hay un par de subcampos, junto con libros clásicos a los que puede acceder en línea.

  • Teoría de autómatas Los lenguajes formales y su relación con los autómatas.
  • Gramáticas La teoría de análisis, traducción y compilación.
  • Toneladas de álgebra lineal en gráficos por computadora
  • Probar la corrección del programa
  • Teoría de la complejidad
  • Concurrencia La arquitectura de los programas concurrentes.
  • Clasificación
  • Números al azar
  • Criptografía Criptografía y seguridad de datos

Para otra muestra de las matemáticas detrás de la informática, vaya a la biblioteca y compre Amazon.com de Donald Knuth: el arte de la programación informática

Tengo experiencia en informática y puedo confirmar que es matemático. Aunque no es el tipo de matemática que habrías estudiado en la escuela secundaria. Es más abstracto, lógico y se ocupa de cosas simples como lo que es verdad, ¿puede haber problemas que una computadora no pueda resolver? Es una manipulación más simbólica que las matemáticas prácticas como el cálculo o las matemáticas que estudias en Física. Básicamente, está tratando de diseñar algoritmos para resolver problemas que puedan codificarse. Esta es la matemática puesta de una manera diferente.

Además, por supuesto, si va a aventurarse en la Neurociencia Computacional, necesita saber muchas matemáticas.

Cualquier cosa que tenga que ver con criptografía, redes, programación avanzada y electrónica requerirá matemáticas. Escribir código es en realidad la parte fácil. Saber lo que sucede detrás de escena es la parte difícil.

Básicamente, las matemáticas son el padre de la informática, así que eso te dice algo.

El desarrollo de juegos generalmente puede ser matemáticamente exigente. Necesita saber álgebra lineal y transformaciones matriciales para poder hacer “3D”. Y, por supuesto, también puede desempolvar su teoría de probabilidad en Machine Learning.

Sin embargo, la computación científica, donde usa Python, o R para sacar conclusiones de conjuntos de datos, es matemática casi pura, pero resuelve cosas que requieren algoritmos en lugar de fórmulas.

¡Buena suerte!

Me gusta mucho la respuesta de Victor Eijkhout. Agregaré lo siguiente …

Computer Science nació de la búsqueda de una base rigurosa para las matemáticas en general y de la búsqueda de una respuesta al problema de Entscheidung en particular. La base de CS está llena de lógica matemática, teoría de funciones recursivas y computabilidad. Estos estudios generaron muchas de las áreas que menciona Victor, especialmente los lenguajes formales, las gramáticas, los autómatas y la complejidad.

Aprendizaje automático y procesamiento de señales.