Hablando para las clases de MIT, creo que no existe un “orden correcto” coherente más allá de una cierta comprensión básica de los algoritmos esenciales necesarios para profundizar en temas especializados.
En general, los estudiantes comienzan a aprender técnicas matemáticas formales utilizadas en la informática teórica en 6.042: Matemáticas para la informática. La mayoría de los estudiantes toman 6.042 al principio de su plan de estudios MIT para construir esta base de comprensión de pruebas y técnicas de redacción de pruebas. En este curso se dan conceptos introductorios como la noción de gráficos.
El seguimiento se convierte en 6.006: Introducción a los algoritmos. En 6.006, los estudiantes amplían su conocimiento desde 6.042 para aprender enfoques algorítmicos generales más pertinentes y conocidos en informática, como el algoritmo de ruta más corta y la programación dinámica. También se enseñan estructuras de datos cruciales, como montones y árboles binarios equilibrados, y muchas abstracciones teóricas de la informática se basan en estos conceptos fundamentales. El curso prueba tanto la capacidad algorítmica de resolución de problemas como la capacidad de implementación real.
- ¿Por qué las máquinas de Turing son un equivalente teórico tan prolífico de lo que puede hacer una computadora real?
- ¿Cuál es la relación del valor ap y la medida estadística de prueba?
- ¿Cuáles son algunas aplicaciones del mundo real de punteros en la programación con ejemplos?
- Cómo desarrollar un juego y cuánto conocimiento matemático se necesita para desarrollar los gráficos en el juego.
- ¿Qué subcategorías de informática teórica te entusiasman más en términos de potencial de investigación y por qué?
Finalmente, 6.046: Diseño y análisis de algoritmos es una clase que proporciona la introducción más rigurosa a muchos componentes de la informática teórica. Esta clase prueba la capacidad de abstracción pura y resolución de problemas, y se escriben cero líneas de código a lo largo del curso. Los estudiantes amplían las ideas introducidas en 6.006 a los principales campos de investigación en informática teórica, como la teoría básica de la complejidad, algoritmos informáticos distribuidos, algoritmos en línea y más. También se enseñan técnicas más avanzadas basadas en gráficos, como el flujo máximo y los problemas de coincidencia máxima. La clase se enfoca en tocar la mayor cantidad posible de temas teóricos de ciencias de la computación sin profundizar en ninguna área, por lo que muchos consideran que es la última clase en tomar el “orden correcto” antes de abordar cursos de posgrado. Tenga en cuenta que 6.046 se considera una clase de encabezado de pregrado, y también se considera uno de los requisitos más difíciles para un título universitario de ciencias de la computación en el MIT.
De aquí en adelante, los estudiantes pueden elegir libremente un área de enfoque. Por ejemplo, 6.851: Estructuras de datos avanzadas se enfoca principalmente en estructuras de datos, expandiéndose sobre uno de los componentes cubiertos en 6.046, y por lo tanto no requerirá haber tomado otra clase similar de nivel de posgrado, como 6.854: Algoritmos avanzados, que se expanden más en Algoritmos en línea más difíciles y problemas de algoritmos de aproximación que podrían haberse prescrito en 6.046. Del mismo modo, 6.856: Algoritmos aleatorios solo se enfoca en la construcción de conocimiento sobre algoritmos aleatorios, otro pilar introducido en 6.046. La mayoría de las clases graduadas mencionadas en la descripción son similares en el sentido de que no necesariamente tienen un “orden correcto”.
Puede haber algún conocimiento matemático en algunas clases secundarias que no se mencionan y que podría ser necesario para las clases de nivel de posgrado debido a la intersección de las matemáticas en ciencias de la computación. Por ejemplo, comprender el cálculo (18.01) es un requisito previo establecido de 6.042, y la teoría a menudo también involucra el cálculo. Del mismo modo, 18.06: Álgebra lineal podría proporcionar una intuición más matemática sobre cómo funcionan los algoritmos como la programación lineal y min-max en 6.046, y 18.600: Probabilidad y variables aleatorias también ayuda a comprender algoritmos aleatorios.
Supongo que el plan de estudios de Stanford también sigue un flujo similar, donde después de cierta línea de base, no es necesario tomar clases en un cierto orden, especialmente especializándose en el nivel de posgrado.
¡Espero que esto sea informativo!