¿Qué consejo le daría a un estudiante de segundo año en la universidad que no ha tomado una clase de matemáticas desde su primer año pero está realmente interesado en la informática y quiere especializarse en CS? ¿Qué pasos recomendarías?

Has planteado una buena pregunta y varias personas han publicado muy buenas respuestas. Aquí están mis pensamientos sobre el asunto.
Como estudiante universitario comencé como estudiante de Matemáticas. Casi había completado todos los cursos de matemáticas para graduarme con un BS en Matemáticas. Una clase de introducción en CS era un requisito para graduarse. De lo contrario, NUNCA hubiera tomado la clase. Mi vida cambió en el transcurso de ese semestre único. En esa introducción a la informática, vi una manera en que podía aplicar todas las matemáticas que había aprendido. Cambié mi especialidad a informática y el resto es, como dicen, historia. Había planeado ir a la escuela de posgrado, por lo que no me preocupaba cambiar mi especialización después de completar todos los requisitos del curso de matemáticas. En ese momento, los requisitos de matemáticas para obtener un BS en Informática eran los siguientes:
Cálculo I, II y III
Ecuaciones diferenciales
Matemáticas discretas
Estadística
Álgebra lineal (gráficos por computadora)

En Quora, la mayoría de las publicaciones indican que las matemáticas no son necesarias en la programación. De hecho, he leído varias publicaciones que indican que los cursos de matemáticas requeridos para obtener un título en CS son una completa pérdida de tiempo y dinero.
Ninguna opinión ha sido mi experiencia. Todo lo contrario. He utilizado las matemáticas con frecuencia a lo largo de mi carrera. Desde 1998 he trabajado en el espacio de Big Data / Data Warehousing, con un enfoque en servicios financieros. Las matemáticas financieras pueden ser muy útiles para escribir programas que involucren instrumentos financieros complejos, como los derivados. El cálculo es útil para resolver algunos de estos problemas. Tanto el cálculo como las ecuaciones diferenciales parciales pueden ser muy útiles para resolver problemas relacionados con el análisis cuantitativo financiero. Podría señalar otros ejemplos en los que las matemáticas son valiosas, si no se requieren, pero creo que ya lo he señalado.
Le sugiero que considere tomar los cursos de matemáticas necesarios para satisfacer los requisitos del grado CS. Al tomar cualquier curso de matemáticas, le recomiendo que dedique tiempo cada día para practicar las habilidades matemáticas que está aprendiendo. Personalmente, descubrí que este es el método más seguro para aprender y reforzar nuevas habilidades.
Si bien varias personas han ofrecido su opinión con respecto a su pregunta, en última instancia, tendrá que decidir por sí mismo la mejor manera de proceder. Le deseo todo lo mejor para tomar esa decisión y tomar las medidas para cumplir con su decisión.

¡Buena suerte!

Sumérgete en CS y selecciona los cálculos a lo largo del camino. Recomiendo seguir con un BS porque generalmente es más riguroso y, como trabajas duro, no deberías tener ningún problema. Si te interesas mucho por las matemáticas, te recomiendo que estudies las matemáticas discretas, la teoría de los números y algunas estadísticas. No me preocuparía por el cálculo para CS ya que no se usa tanto como otras disciplinas matemáticas. Pero tenga en cuenta que un poco de matemáticas (especialmente sabiendo algunas reducciones de suma básicas) puede llevarlo muy lejos en CS. Por lo tanto, es importante que sepas una buena cantidad de matemáticas básicas, pero eso es todo.

En primer lugar, haz lo que amas.

Dependiendo de la ruta / campo de CS que desee seguir, algunos necesitan más comprensión de las matemáticas que otros.

De cualquier manera, debería poder tomar cursos de CS a lo largo de los cursos de matemáticas requeridos sin mayor problema.

Es difícil recomendar una licenciatura frente a una licenciatura sin saber mucho acerca de las diferencias en los dos programas en su universidad.

Si recuerdo correctamente, todos los programas de pregrado acreditados ahora requieren lo que informalmente se llama un curso de matemáticas discreto, a veces camuflado con algún nombre en la línea de “Fundamentos de Ciencias de la Computación”.

Nuevamente, si la memoria sirve, cubre los tipos de conteo que la mayoría de la programación asume que sabrá. Más allá de eso, creo que un curso de pre-cálculo sería directamente útil. Comprender la continuidad, los límites y el comportamiento asintótico es bastante importante para muchos de los resultados analíticos.

Pero de lo contrario, no te matará aprender las matemáticas que necesitas a medida que avanzas. Si puede aprender a programar, puede aprender qué significa la integración, si alguna vez la necesita. Las ecuaciones diferenciales pueden sentirse por encima de la cabeza de muchas personas, pero las probabilidades de encontrar un trabajo en el que deba resolverlas, y mucho menos ser contratadas sin que aparezca en la entrevista, son extremadamente pequeñas.

Entonces, si te interesa, ve con eso y deja de preocuparte.

Creo que las matemáticas son importantes para CS. Mucho de lo que utilicé tanto dentro de CS, y una vez que salí al mundo, se clasificaría como álgebra. Así que tal vez tienes eso cubierto. Lo que es realmente importante, más allá de los estudios de casos específicos que presentan los cursos de matemáticas, es el pensamiento matemático. Esto es algo donde no necesariamente tiene que obtener la simbología que los matemáticos usan para expresar sus ideas, pero es importante entender cómo a) razonar a través de su código yb) (esta es mi preferencia, como he visto los beneficios de esto) ser capaz de juzgar su código desde un punto de vista de diseño, y las matemáticas están involucradas aquí.

También contribuye a su capacidad para aprender tecnologías informáticas que son nuevas para usted. Recuerdo cuando salí al mundo laboral que nunca había tratado con una base de datos relacional. Luché contra eso por un tiempo, pero lo que realmente me ayudó fue un curso de matemáticas que tomé en CS varios años antes, llamado “Estructuras Discretas”. Se enfoca mucho en la teoría de conjuntos. Su intención era permitirnos probar que los programas son correctos matemáticamente, pero la comprensión me ayudó mucho a comprender cómo funcionan las bases de datos relacionales, lo cual era esencial para mi capacidad de encontrar trabajo y ser bueno en mi trabajo.

Realmente me gustó el libro de Jerry King, “El arte de las matemáticas” por su descripción de cómo los matemáticos ven las matemáticas. Él no se involucra mucho en matemáticas, así que es bueno así. Lo que realmente intenta transmitir es algunos indicios sobre qué es realmente la matemática, que dice que los profesores de matemática de primaria y secundaria la comunican terriblemente, y los matemáticos de las universidades, al menos hasta la escuela de posgrado.

Él tiene otro libro en el que me he metido un poco llamado “Matemáticas en 10 lecciones”. He aprendido algunas cosas de eso, lo suficiente como para decir que lo recomendaría. Parece que trata de transmitir las lecciones esenciales que cualquier estudiante de matemáticas necesita saber. Sin embargo, esto puede no ser tan importante en su búsqueda de CS.

Como dijo Alan Kay, en 1997,

Las computadoras forman un nuevo tipo de matemáticas. Realmente no encajan bien en la matemática clásica. … Era una especie de matemática práctica. El equilibrio fue entre hacer estructuras que se suponía que eran consistentes de un tipo mucho más grande que las matemáticas clásicas que habían llegado a soñar con intentar, y tener que lidiar con los mismos problemas que las matemáticas clásicas de cualquier tamaño tienen que enfrentar. , que es poder ser convincente por haber cubierto todos los casos.

Hay un matemático con el nombre de Euler [pronunciado “Oiler”] cuyas especulaciones sobre lo que podría ser cierto formaron 20 libros grandes, y la mayoría de ellos eran verdaderos. La mayoría de ellos tenían razón. Casi todas sus pruebas estaban equivocadas. Y muchos doctores en matemáticas en el último y este siglo han sido formados por matemáticos que acudieron a los libros de Euler, encontrando una de sus pruebas, demostrando que era una mala prueba, y luego adivinando que su percepción era probablemente correcta y encontrando una prueba mucho más convincente. . Y así, la depuración en realidad también continúa en las matemáticas.

No parece que hayas decidido lo que realmente quieres preguntar. Parte de su pregunta parece que está listo para arremangarse y aprender matemáticas (está dispuesto a trabajar duro y está preguntando cuál es la mejor manera de aprender matemáticas). Otras partes del trabajo suenan como si estuviera tratando de evitar las matemáticas (tal vez hay áreas especiales que requieren menos matemáticas, o tal vez debería obtener un título diferente).

Hay una amplia gama de trabajos relacionados con la computadora disponibles. La cantidad de matemáticas requerida varía enormemente. Para muchos trabajos de programación, hay poco o nada de matemática involucrada, pero la matemática es una habilidad que puede ser útil inesperadamente. Uno de los mejores desarrolladores que conozco no era muy bueno en matemáticas y buscaba ayuda con problemas de matemáticas intensivos. Algunos trabajos serán pesados ​​en matemática (si vas a tratar de diseñar un motor gráfico sin usar mucha matemática, debes irte a casa). Otros trabajos que tienen el mismo título tienen diferentes requisitos. Si está escribiendo un software para ayudar a los médicos a registrar y facturar a sus pacientes, es probable que requiera muy poca matemática.

La matemática que más necesitas normalmente es el álgebra. No la parte donde resuelves las ecuaciones, sino la parte donde mueves las cosas. Dado que conozco estos valores, ¿cómo resuelvo ese valor? Eso es algo que diría que la mayoría de los programadores usan mucho. Utilizo trig ocasionalmente, pero no muy a menudo. Calcule nunca, a menos que cuente los límites (a medida que la cantidad de valores se hace realmente grande, ¿qué sucede?).

No dices qué nivel de matemáticas tienes. No estoy seguro de no tomar matemáticas ya que el primer año significa álgebra, calc, u otra cosa. Claramente, si va a seguir con CS como su especialidad, debe tomar las matemáticas requeridas. (Y creo que deberías: no dejes que las matemáticas te asusten).

Algebra: aprendelo No puedes evitar el álgebra: es la base para la mayoría de las clases de matemáticas que viene después. Si no sabes álgebra, chocarás contra una pared de ladrillos en trigonometría, cálculo, matemática discreta, álgebra lineal y casi todo lo demás. Aprenda a manipular y resolver ecuaciones, aprenda la fórmula de distancia (teorema de Pitágoras).

Trig: aprender lo básico. Encuentre un amigo que sea bueno en matemáticas y pídales que le muestren qué son el pecado, el cos y el bronceado. Practica usando triángulos rectos donde conoces algunos valores para encontrar otros. Aprende qué son csc, sec y cuna en términos de pecado, cos y bronceado. Usa el teorema de Pitágoras para obtener sin ^ 2 + cos ^ 2 = 1. Probablemente puede hacer esto bastante cómodamente en una semana en lugar de un semestre.

Calc: no dejes que te asuste. No es tan difícil, siempre y cuando no te pierdas. Es algo fácil, creado de una manera extraña que es difícil de entender al principio.

Después de eso, toma las clases de matemáticas que sean necesarias. Considérelo como una oportunidad para aprender a aprender, que es una habilidad enormemente útil de tener en la programación (mucho más que las matemáticas en sí).

Las matemáticas son requeridas en diversos grados en los trabajos de CS del mundo real. Diría que más de la mitad de los trabajos de CS requieren habilidades matemáticas por debajo del cálculo (álgebra, trigonometría, registros, exos, etc.).

Concéntrese en CS, aprenda la POO a un nivel muy competente, algunos lenguajes de alto nivel (Java, c ++) y estará bien.

Las matemáticas tradicionales son importantes para algunos de los fundamentos teóricos de la ciencia de la computación, pero en realidad no son una especialización en matemáticas. Los ingenieros y estadísticos lo tienen más difícil.

Yo diría que las habilidades de lenguaje fuertes son probablemente más importantes. Pasas mucho más tiempo pensando en nombres y gramática que en integrales y derivados.

El cálculo y el álgebra juegan un papel muy importante en la comprensión de la informática. Le sugiero que comience con el curso de primer año y trabaje para obtener un BS en CS con un menor en cualquier curso de humanidades / artes que le interese o viceversa.

Sólo sumérgete en el CS. Toma cualquier clase de matemáticas que se requieran al mismo tiempo.

Tenía una base débil en matemáticas cuando comencé a estudiar CS, pero eso no me impidió obtener mi título. Básicamente tomé las clases de matemáticas requeridas, y traté de aprender lo más que pude. También revisé algunas matemáticas antiguas que había olvidado o que no entendía realmente en primer lugar. Entonces, creo que deberías sumergirte en CS y tomar las clases, como algunos ya te han aconsejado. Asegúrate de entender el por qué de las cosas, no solo el cómo, y creo que la mejor manera de entender esto es probando las cosas. Escribir pruebas matemáticas realmente te dará una idea de por qué algo funciona, así que creo que es realmente importante practicar eso. Puede consultar los Materiales del curso en línea gratis para ver qué clases de matemáticas se estudian en un grado de CS. Puede ser útil hacer una revisión rápida de las matemáticas de la escuela secundaria si estás increíblemente oxidado. Buena suerte.