Hay muchos, pero el enfoque podría ser un poco al revés aquí. Es más fácil verlo comenzando por aprender algo de matemática y aplicarlo a cualquier problema que le interese porque algunos campos, como el análisis numérico, se aplican de manera muy amplia en muchas disciplinas importantes en CS.
Al ejecutar el ejemplo de análisis numérico, descubrirá que es una parte importante del diseño de algoritmos. Algunas aplicaciones específicas incluyen inventar métodos estables, precisos y rápidos para resolver PDEs (que tiene una aplicabilidad extremadamente amplia para problemas de ciencia e ingeniería del mundo real, vea esta publicación) y resolver problemas de optimización continua o discreta para muchos problemas en investigación de operaciones, diseño de circuitos , econometría e IA general (de hecho, es probable que haya una lista igualmente gigantesca para aplicaciones de optimización como para PDE en el enlace anterior). Debajo de estos dos problemas genéricos está el verdadero caballo de trabajo, el álgebra lineal numérica. Agregue la computación paralela a la mezcla y terminará con algunos problemas extremadamente triviales que tienen que ver con la ubicación de los datos en la memoria, la comunicación entre nodos y el papel de los coprocesadores (en general, llamados computación heterogénea).
Como menciona el profesor Hyttel, las partes teóricas de CS también son bastante interesantes, pero tienen un sabor diferente al de los algoritmos numéricos. En estos campos, uno tiene dificultades para comprender qué significa fundamentalmente la computación, su poder, sus límites, y tal vez si tiene una mentalidad aplicada, sus implicaciones en las implementaciones prácticas de algoritmos. A veces te encuentras con recursos que crees que podrían ser útiles, como la aleatoriedad. Había alguna esperanza de que los algoritmos aleatorios y probabilísticos pudieran proporcionar más potencia computacional e incluso potencialmente resolver problemas NP-completos (léase: difíciles) de manera eficiente. Después de muchos años, esta idea se redujo a declaraciones precisas sobre qué tipo de problemas se pueden resolver y qué tan eficientes pueden ser. Hoy en día existen grandes preguntas en torno al uso de la superposición cuántica como recurso para aumentar potencialmente nuestras capacidades computacionales. Hay mucha teoría hermosa que también se conecta con la física teórica, y hay un buen intercambio de ideas en ciertas áreas de CS con la física (como ejemplo básico, piense en cualquier algoritmo de Monte Carlo).
- ¿Cuál es la diferencia entre los informáticos y los ingenieros informáticos / de software?
- ¿Los ingenieros de hardware se benefician de los marcos de código abierto y los componentes reutilizables de la misma manera que los ingenieros de software?
- ¿Qué hay de malo en ir a la universidad para la ingeniería informática?
- ¿Qué busca el comité de admisiones de ECE en UT Austin en los posibles candidatos?
- ¿Por qué los trabajos en ingeniería informática no están saturados?
Hay más que decir, tal vez sobre las matemáticas discretas que se aplican a los problemas en algoritmos, redes, etc. o sobre el aprendizaje automático estadístico, que es esencialmente toda la matemática y la programación numérica aplicada a problemas de IA realmente interesantes, pero probablemente pueda descubrir sobre los detalles de eso desde otros lugares.