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é.
- ¿Cuál es la necesidad de la computación paralela?
- ¿Qué es un buen proyecto de aprendizaje automático que involucra interfaces cerebro-computadora?
- ¿Para qué se usaban las primeras computadoras?
- ¿Qué debe hacer cuando su computadora hace un volcado de memoria?
- ¿Podré obtener CSC o ECE en VIT con un rango de 54k en la categoría B?
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…