¿Cómo es tomar CS 121 (Introducción a la teoría de la computación) en Harvard?

¿Es una clase interesante? Me encantó CS121. Pensé que era extremadamente divertido e interesante probar teoremas matemáticos relacionados con los límites y las posibilidades de la computación.

¿Es una clase útil? Esto depende de lo que quieras hacer. No me ha resultado particularmente útil en mi día a día trabajar como científico de datos, pero aún así disfruté el material y volvería a tomar la clase. Tommy MacWilliam tiene una opinión diferente sobre su utilidad aquí. Él hace un gran punto sobre cómo esta clase realmente te ayuda a entender la complejidad.

¿Qué requisitos previos necesito? El “prereq” es técnicamente CS20, que no tomé. CS20 era una clase bastante nueva cuando estaba en Harvard, así que desafortunadamente no puedo hablarle mucho. Si ha tomado matemáticas al nivel de Math 23+, no debe preocuparse por la madurez matemática y debe estar totalmente preparado. Le ayudará conocer algunas matemáticas discretas, pero no es necesario. Si no ha tomado ningún curso de matemática basado en pruebas y debe tomar CS121 este semestre, tendrá que trabajar muy duro al comienzo del semestre. Sin embargo, hay muchos recursos excelentes (horario de oficina, TF, Piazza, Sipser) para ponerte al día. Es factible.

Cualquier protips? Sipser es un libro de texto increíble que explica todos los temas. Léelo!

Ayuda a tener una sólida formación matemática y experiencia en la escritura de pruebas. CS20 (Matemática discreta) es el requisito oficial, aunque muchas personas toman 121 sin 20 y lo hacen bien. También hay un programa de sesión de invierno que es básicamente un curso intensivo para CS20 si no puede tomar el curso completo.

Consejos para hacerlo bien:

1. Lee el libro de texto. Sipser explica muy bien los conceptos y presenta buenos ejemplos. Creo que ver el material dos veces (en clase y en el libro) ayuda a comprenderlo mejor.
2. Realice todos los conjuntos (aunque se le permita soltar uno). La práctica de hacer todos ellos ayudará en el medio término y final. Y dejar su puntaje más bajo solo ayudará a su calificación final.
3. Aproveche los recursos, como el horario de oficina, y la política de colaboración (consulte el programa de estudios para obtener información específica sobre eso: Syllabus | Harry R. Lewis) si necesita ayuda en los conjuntos.

El prerrequisito establecido para CS 121 no es CS 20, sino “experiencia en matemáticas formales a nivel de Ciencias de la Computación 20”. En consecuencia, en realidad no necesita conocer todo el material cubierto en CS 20; gráficos, fórmulas booleanas, tasas de crecimiento de funciones y similares pueden aparecer en algunas conferencias o problemas de tarea, pero no tanto como para que no pueda recogerlos a medida que avanza.

Lo importante es que tenga cierta “madurez matemática”. La mayoría de los problemas en los conjuntos de problemas le piden que escriba pruebas matemáticas formales, y hay muchas pruebas por inducción. También damos definiciones formales de diferentes objetos (autómatas de estado finito, gramáticas libres de contexto, máquinas de Turing y similares); debe poder pasar de la definición formal a una comprensión intuitiva para poder resolver problemas que impliquen la manipulación de esos objetos de alguna manera. Si no está familiarizado con las matemáticas formales de esta manera, es posible que desee tomar CS 20, o puede esperar dedicar algo de tiempo extra (particularmente al comienzo del curso).

En lo que respecta al buen desempeño, se aplica el mismo consejo que para cualquier otro curso: intente comprender el material a medida que avanza y aproveche las horas de oficina del profesor y de los compañeros de enseñanza, sus compañeros en la clase, el curso Piazza, el libro de texto y otros recursos. El curso se vuelve un poco más difícil a medida que avanza el semestre, por lo que si tiene dificultades antes de la fecha límite de agregar y soltar (o si no está seguro de si tomar el curso en primer lugar), considere decirle al profesor o TFs sobre sus antecedentes específicos y podrán brindarle un asesoramiento más personalizado.

Esto fue hace mucho tiempo, pero lo tomé solo con CS 50 como fondo (CS 20 aún no existía), y recuerdo el nivel de dificultad como desafiante pero no abrumador.

Honestamente, no estaría demasiado intimidado por el descriptor de “madurez matemática”. Si es como cuando lo tomé, realmente solo tienes que estar dispuesto a desarrollar cierta madurez matemática haciendo un esfuerzo en los conjuntos de problemas. Tenía cero experiencia escribiendo pruebas antes de tomar 121 y resultó ser una de mis clases favoritas de pregrado.