¿Qué conceptos matemáticos son cruciales para un informático?

Descubrí que los cursos de matemáticas que se requerían para una especialización de CS no se asignaban frívolamente. Creo que todos son importantes, en retrospectiva. Muchos estudiantes de CS dicen que no pueden pensar en una sola instancia en la que usaron cálculo, pero el beneficio de tener cálculo no es solo la posibilidad de usarlo, sino también para enseñarle más sobre lógica y funciones de orden superior, lo que terminará sirviéndote bien en la programación. Es solo cuestión de si los problemas en los que terminas trabajando exigirán ese nivel de habilidad.

Los cursos de matemáticas que tienen una aplicación más directa en lo que puede terminar haciendo son estructuras discretas, cuando se trabaja con conjuntos de datos, porque contiene la teoría de conjuntos; y álgebra lineal para gráficos por computadora. Encontré estructuras discretas muy útiles cuando intentaba entender cómo usar las bases de datos relacionales. No terminé estudiando gráficos de computadora en mi trabajo, pero cuando tomé Computer Graphics en la universidad, vi muy rápidamente cómo era importante para hacer ese trabajo.

Una razón por la que creo que el cálculo no se incluyó en la especialización de CS para la aplicación directa, pero para enseñar habilidades de pensamiento formal, es que descubrí que cuando finalmente encontré un problema en el que el cálculo sería, en concepto, útil, resultó no ser de uso para lo que estaba tratando de programar. Lo que realmente necesitaba para el problema era un curso de matemáticas que no tomé en la universidad, llamado análisis numérico. El problema que estaba tratando de resolver requería que calculara una derivada, y solo tratar de usar el cálculo para hacerlo realmente no lo resolvió. Hay una forma computacional de obtener una derivada que no utiliza los métodos que aprende en el cálculo.

El cálculo fue útil cuando, muchos años después de dejar la universidad, intenté nuevamente comprender la programación funcional. Usar los conceptos de cálculo me ayudó a entender eso conceptualmente. No fue lo único que me ayudó, porque traté de entender FP mientras tomaba Calc. II, y apenas tenía sentido para mí. Tomó tomar Data Structures y algunos otros cursos en el camino, incluido un curso de Lenguajes de programación de la división superior antes de que finalmente comenzara a comprender FP, pero pude ver, una vez que aprendí FP, y comencé a revisar algunos de mis viejos materiales de cálculo. , que algunos de los conceptos de los que habló me ayudaron a entenderlo.

El cálculo también solía ser útil para el plan de estudios de CS, porque creaba suficientes antecedentes para que cuando un par de mis cursos entraran en computación simbólica, tuviéramos algunos problemas que podríamos resolver, como encontrar una forma de llevar a cabo la diferenciación simbólica. Ese ya no es el caso, ya que la computación simbólica se ha dejado de lado en la mayoría de los currículos de CS. Sin embargo, algunas escuelas incluyen algunas instrucciones sobre programación funcional, por lo que lo que he discutido con cálculo y FP es relevante en esos casos.

Aquí están las matemáticas que uso regularmente:

  1. recursividad / inducción
  2. … Sí, eso es esencialmente todo.

Aquí están las cosas donde lo uso (desde la parte superior de mi cabeza):

  1. relaciones y álgebra relacional, en funciones particulares (y en predicados particulares)
  2. números naturales,
  3. booleanos y álgebra booleana,
  4. secuencias (finitas e infinitas)
  5. máquinas de estado (que son funciones), transiciones (que son funciones o relaciones), cálculos (que son secuencias)
  6. gráficos (que son relaciones)

Todo eso es realmente crucial para CS, y no puedo recordar a ningún científico informático que no use todas estas cosas.

Otras matemáticas que los informáticos utilizan mucho (pero no yo) son

  1. Números reales, análisis, teoría de la probabilidad.
  2. Álgebra lineal

Hay matemática utilizada en ciertos campos individuales que no es utilizada por la mayoría de los informáticos, como los fundamentos de las matemáticas (teoría de tipos, teoría de conjuntos, especialmente para personas que trabajan en mecanizaciones de matemáticas), teoría de números (que creo que juega un papel importante en criptografía), y cosas que probablemente nunca he escuchado porque nunca tomé clases en los campos que las usan.

Si no encuentra estos temas interesantes, creo que la informática no es el tema adecuado para usted.

(Las listas no son exhaustivas, así que no se sienta ofendido si olvidé un tipo de matemática que está usando que no mencioné)

¿Crucial?

  • Suma y multiplicación.
  • Lógica
  • Se asumirán las bases numéricas, aunque solo se usan raramente.
  • Álgebra básica (incluso con lógica; las Leyes de DeMorgan son particularmente útiles).
  • Ecuaciones Simultáneas

He usado cálculos simples dos veces en mi carrera, pero estoy en un sector de ingeniería. Del mismo modo, los senos y cosenos en un triángulo rectángulo aparecen con cierta frecuencia. La aproximación sucesiva puede ser útil en algunos campos, pero es el tipo de cosas que puede revisar caso por caso.

La única área que puede necesitar para tener matemáticas más avanzadas que el nivel secundario es en finanzas altas.

Realmente depende de tu trayectoria profesional.

He sido DBA durante dos décadas y nunca he necesitado nada más que habilidades matemáticas básicas.

He estado en ML durante aproximadamente 2 años y necesitaba saber estadísticas y álgebra lineal.

More Interesting

En términos simples, ¿qué es el algoritmo Z?

¿Cuál es la respuesta para (1 + 1e20) - (1e20) y 1+ (1e20-1e20)?

¿Qué problema resolvió Alan Turing y cómo eso lo llevó a ser etiquetado como el 'Padre de la Informática'?

Cómo mejorar mi forma analítica de pensar para trabajar matemáticamente para la programación de computadoras

¿Cuál es la diferencia entre NP-hard y NP-complete?

¿Qué es una explicación intuitiva de los teoremas de jerarquía y sus pruebas en la teoría de la complejidad computacional?

Criptografía: ¿Cómo describirías la diferencia entre la longitud de la contraseña y la longitud de la clave de una criptografía como AES?

¿Cuál es la interpretación de XOR de los enteros? ¿Hay alguna forma simple de calcular XOR en lugar de 'XOR-ing' todos los bits individuales?

¿Qué pasaría si probara P = NP?

¿Cuáles son algunas aplicaciones comunes para un multiplexor?

¿Cuál es la complejidad computacional de la satisfacción de resolución de restricciones sobre enteros? He leído que es polinomial para las igualdades y NP-duro para las desigualdades, pero, ¿no puedes convertir siempre una restricción de desigualdad en una igualdad agregando vars de holgura?

Teoría de la complejidad computacional: ¿Cuál es la diferencia entre las máquinas de Turing deterministas y no deterministas?

¿Qué es una variable volátil?

Siendo un estudiante de matemáticas BSc sin cursos de computación, ¿cómo puedo aprender codificación para ser competitivo?

¿Cuál es el estado actual de la computación analógica?