¿Cuál es el uso de las matemáticas en el mundo real en informática?

La tarea ideal de los graduados de CS es formar parte de un equipo científico / de ingeniería que resuelve un problema del mundo real al modelarlo y realizar un cálculo de acuerdo con el modelo (por ejemplo, el problema es predecir algún evento en un sistema dinámico complejo) .

  1. Los científicos junto con los expertos de dominio en el área objetivo crean un modelo del problema (en nuestro caso, un modelo del sistema).
  2. Para resolver el problema, primero se debe adaptar el modelo para la evaluación numérica, aquí los científicos trabajan junto con los chicos de CS. Digamos, un sistema se comporta de manera no lineal, pero los científicos tienen una idea de cómo aproximar el comportamiento del sistema, los expertos en el dominio pueden ayudarlos a hacer la aproximación apropiada descartando los factores realmente sin importancia, y los chicos de CS aseguran que La solución aproximada es comprensible y puede implementarse en software.
  3. Los chicos de CS ahora están a cargo de implementar el prototipo del modelo en software y finalizar la especificación del algoritmo de solución. Luego se lo entregan a los desarrolladores. En caso de que encuentren algún problema al crear un prototipo, lo escalarán a los científicos.
  4. Una vez que un prototipo funciona, comienza el desarrollo. Si alguien del equipo de desarrollo tiene un problema de alto nivel con la forma en que funciona la solución computacional, la escalan a los chicos de CS, quienes a su vez lo escalan a los expertos de dominio o los científicos.
  5. Finalmente tenemos un producto de software que puede producir una solución computacional a nuestro problema.

Pero ese es un caso ideal.

En un mundo real, un graduado de CS puede ser la única persona que presente un modelo del problema, lo prototee y luego implemente una solución en software.

También hay algunas tareas en un SDLC empresarial normal donde se puede necesitar una persona con algunas habilidades de CS. Desde mi experiencia en software empresarial:

  • Recuerdo haber resuelto problemas de rendimiento localizando e identificando el evento de causa raíz a través de la correlación entre varias métricas de rendimiento reunidas en diferentes partes de un gran sistema distribuido (no matemática avanzada, obviamente, sino estadísticas básicas aplicadas).
  • También conocí algunos casos en los que se tenía que implementar y mantener un analizador / lexer personalizado (¡la teoría del compilador es un área central de CS!)
  • Varios casos en los que la implementación de la criptografía tuvo que hacerse y validarse (no es un área 100% CS, pero muy cercana).

Hay muchas matemáticas discretas en informática, como álgebra booleana, máquinas de estado y teoría de colas, y eso suele ser más relevante. CRC, corrección de errores, cifrado y similares son todas las aplicaciones de matemática discreta. No podrías navegar por la web sin eso.

Una gran cantidad de informática / programación diaria no utiliza nada más avanzado que las matemáticas de la escuela secundaria y un montón de matemáticas discretas.

Sin embargo, hay muchas aplicaciones que hacen uso de las matemáticas “adecuadas”:

Juegos en 3D, incluido el modelado de la física en los juegos: muchos cálculos allí

La codificación / decodificación JPEG o MPEG o, en general, cualquier esquema de compresión con pérdidas, no podría hacerse sin transformaciones de Fourier (o DCT, o similares). No hay videos / fotos comprimidos sin ellos.

FFT para procesamiento de señal (que necesita para WiFi / DSL y similares)

manipulación de color / imagen

modelado y simulaciones

La optimización del código y el reconocimiento de voz son aplicaciones de estadísticas

Cualquiera de los que consideraría una aplicación asesina, y no podrían haberse hecho sin algún programador que tenga una buena base en matemáticas.

Las reglas de Quora exigen que responda directamente a esta pregunta, pero tengo que superarme para hacerlo, porque siento que es fundamentalmente incorrecto pensar en las matemáticas o cualquier disciplina académica de esta manera.

La matemática es un arte, y como cualquier arte, su “uso en el mundo real” no es lo importante. Las artes existen porque nos parecen significativas, porque nos parecen inspiradoras y nos ayudan a ampliar nuestra comprensión. Sin las artes, ¿qué quedaría de nosotros?

Estudiar ciencias de la computación sin preocuparse por las matemáticas es como estudiar biología sin preocuparse por la química, o economía sin preocuparse por la política. Supongo que puede hacerlo, pero muestra una terrible falta de curiosidad por el panorama general.

Bien, ahora iré al grano de mala gana. Suponga que su jefe le dice que escriba un programa en C que calcule la suma de todos los números enteros del 600 al 1600. Puede escribir un ciclo para resolver ese problema. Pero (sin ánimo de ofender) si lo haces, ¡eres un maldito imbécil! Una persona que tiene cierta dignidad resuelve la expresión de forma cerrada por el valor de esta suma y simplemente la guarda en su programa.

Hay dos tipos de formas en que las matemáticas son relevantes en informática. Primero, usamos las matemáticas para analizar el rendimiento de los algoritmos. Es posible que no desee analizar los algoritmos usted mismo, pero estoy seguro de que al menos está interesado en los resultados de dicho análisis, porque los necesitará si desea poder hacer conjeturas informadas sobre cuál es el mejor algoritmo para tu problema.

En segundo lugar, las matemáticas son a menudo una parte fundamental de los algoritmos en sí, como en el ejemplo que di anteriormente, pero también en cosas como la compresión, las técnicas de optimización, la visión por computadora, el procesamiento de señales, etc.

Pero realmente, por favor, deja de pensar en términos de “útil” y comienza a pensar en términos de “interesante”.

Graduado en Ciencias de la Computación y en desarrollo de software desde hace 3 años. Confía en mí, nunca usé ninguno de esos conceptos matemáticos en muchas de las aplicaciones web que había creado. Si yo fuera un desarrollador de juegos, esas matemáticas ciertamente entran en escena. Más que el uso en el mundo real, es prácticamente entrenar nuestro cerebro para manejar lógicas más complejas. Mejoran indirectamente las capacidades lógicas de nuestro cerebro.

More Interesting

¿Qué vale la pena aprender antes de ir a la carrera de ciencias de la computación para tener éxito allí?

¿Qué significa T (n) en relación con O (n)?

¿Una representación no discreta de información coexiste con nuestro uso discreto de BITS?

¿Cuáles son algunos problemas abiertos importantes o interesantes en la teoría de la codificación?

¿Cómo se puede encontrar el logaritmo de base 10 de un número de hasta 5 decimales con solo usar las cuatro operaciones básicas (+, -, *, /) con la ayuda de una calculadora?

¿Cuáles son las posibles aplicaciones de la inteligencia de enjambre en las finanzas?

¿Cuál es el alcance de la probabilidad y las matemáticas discretas en ciencias de la computación?

Cómo escribir un programa en C para verificar si para cualquier triplete entero (x, y, z) y otro entero n, [matemática] n ^ x + n ^ y = n ^ z [/ matemática] ocurre para (a, b) siendo la entrada donde [matemáticas] a \ leq n \ leq b [/ matemáticas]

¿Cuál es el problema más interesante que ha encontrado y que utiliza la recursividad?

¿La teoría de números todavía parece ser central o el área más importante de las matemáticas?

Cómo ser un programador perfecto paso a paso

¿Se utiliza la teoría de grupos en la IA?

¿Hay alguna prueba matemática de que los lenguajes de computadora modernos pueden representar cualquier algoritmo finito usando una cantidad finita de código?

¿Cuáles son las áreas más activas de investigación en matemática computacional?

Cómo implementar un programa en C para un polinomio como un tipo de datos abstractos (ADT)