¿Cómo se ve el nuevo plan de estudios CS introductorio en CMU?

Permítanme decir primero que no he tomado ninguno de los nuevos currículos del curso CS, por lo que la mayor parte de esto se basa en los sitios web del curso y la experiencia de TA.

Cuando entra un estudiante de primer año, si él o ella tiene experiencia en programación, su primera clase de CS será 15-122. Los estudiantes sin experiencia en programación deben tomar 15-112.

También hay otras dos clases que forman parte del plan de estudios, 15-210 y 15-150, que también abordaré.

15-112
15-112 enseña un gran subconjunto de pitón [1].

La primera mitad del curso se enfoca en enseñar programación básica en python:

  • estructura del programa (bucles, condicionales, funciones)
  • estructuras de datos básicos (matrices, secuencias, diccionarios)
  • depuración (excepciones, afirmaciones, rastreo de código)
  • resolución de problemas
  • archivo de E / S

También hay dos semanas en temas más avanzados. Este semestre, pasan una semana en gráficos y una semana en “iteración avanzada” que cubre
enumerar comprensiones, generadores, expresiones generadoras e iteradores combinatorios.

La segunda mitad del curso trata sobre varios paradigmas de programación . Pasan una semana cada uno en los siguientes sabores de programación:

  • basado en eventos
  • funcional
  • web
  • orientado a objetos

Las últimas dos semanas son presentaciones cortas sobre temas más avanzados, la mayoría de los cuales son impartidos por estudiantes en la clase.

15-122
La mayoría de 15-122 se enseña en un lenguaje interno llamado C0. C0 es un subconjunto de C (con contratos, ver más abajo) que se supone que sirve como una introducción suave al lenguaje C. La última parte del curso se enseña en C, y las dos últimas tareas de programación están en C.

Lo bueno de C0 es que tiene una forma explícita de mostrar condiciones previas, condiciones posteriores e invariantes de bucle (llamados colectivamente contratos) integrados en el lenguaje. Entonces, si un estudiante tiene buenos contratos, él o ella pueden probar la exactitud de su código. Esto ayuda en la depuración porque si sus contratos son correctos, pero su implementación es incorrecta, el programa se cerrará tan pronto como no se cumpla el contrato.

El curso también sirve como introducción a las estructuras de datos y estudian lo siguiente:

  • búsqueda binaria y árboles AVL
  • intentos
  • gráficos
  • pilas y colas
  • montones y colas de prioridad

Otros temas cubiertos incluyen administración de memoria, análisis de tiempo de ejecución y programación dinámica.

15-150
Este curso es una introducción a la programación funcional, impartida en SML. Los estudiantes suelen tomar esto en su segundo semestre en CMU. Parece ser una nueva numeración de 15-212 , que formaba parte del antiguo plan de estudios de CS.

EDITAR: Gracias a Quora User por informarme que 15-150 no es una nueva numeración de 15-212. Aunque cubren material similar, 15-150 enfoca más tiempo en el análisis big-O y menos tiempo en la teoría del lenguaje de programación.

15-210
Este curso cubre algoritmos y estructuras de datos de manera más rigurosa y se enfoca en algoritmos y análisis paralelos. Se enseña en SML, pero parece cubrir el mismo material del antiguo curso 15-211 (que se enseñó anteriormente en Java).

[1] https://www.cs.cmu.edu/afs/cs/ac…

More Interesting

¿Qué es la planificación del discurso?

¿Cuáles son los libros recomendados para los exámenes de acceso lateral en IIIT Hyderabad para ece?

Las matemáticas de aprendizaje automático utilizan números reales, pero las computadoras son digitales. ¿Por qué es esto? ¿Podría ser diferente?

¿Cuál es la derivación de esta fórmula para calcular módulos de grandes números?

¿Alguien puede sugerirme algún dominio para hacer el proyecto del último año?

Respetuosamente, ¿con qué frecuencia los expertos en aprendizaje automático en Internet son expertos reales que proporcionan una mejor comprensión?

¿Qué hace que Carnegie Mellon sea tan bueno en informática?

¿Cómo puede una máquina compartir datos con diferentes computadoras a través de una red cableada?

¿Sería posible que alguien dentro de 50 años descargue archivos de una computadora a partir de 2017 y los convierta a un formato viable para una computadora de esa época? Suponiendo que la computadora funciona correctamente y tiene una fuente de alimentación.

¿Existe alguna ventaja al usar SVM para la regresión en lugar de las ANN, cuando se intenta modelar una función compleja, no lineal, bivariante y de valor vectorial?

¿Puedo usar más mapeadores y reductores simultáneamente en un programa MapReduce usando el concepto de subprocesamiento de Java? Si es así, ¿cómo? Si no, ¿por qué?

¿Cuáles son las principales startups que utilizan el aprendizaje automático en sus productos?

¿Es necesaria la inteligencia artificial para convertirse en desarrollador de juegos?

¿Qué menor elegirías para una especialización en informática y por qué?

¿Cómo volverían a inventar los humanos las computadoras si un gran desastre golpeara la Tierra y dejara solo unos pocos sobrevivientes?