¿Cuáles han sido tus clases de CS favoritas en Caltech?

Creo que es interesante que soy la única respuesta hasta ahora que no son solo las clases centrales de CS.

Mis dos clases de CS favoritas de todos los tiempos en Caltech. Me gustaron tanto que los tateé (y el requisito previo para el primero también):

CS 151 (Teoría de la complejidad) : impartida por el profesor Chris Umans (página de inicio de Chris Umans), esta clase es una especie de continuación de su CS21 (Decidability and Tractability). Esta clase cubre aproximadamente un “recurso” por semana (como aleatoriedad, no determinismo, no uniformidad, consejos, interacción y conteo, etc.) Es probablemente la clase de CS más difícil en toda la escuela (me sentaría a trabajar el martes por la tarde , pasa la mayor parte del día pensando y trabajando con un amigo (usuario de Quora), ve al horario de oficina el miércoles por la tarde para preguntar sobre el par de problemas que me quedarían y pasa el miércoles por la noche escribiendo los sets: fácilmente habría 15-20 horas en cada conjunto semanal) pero también fue probablemente el más interesante. También te sientes como un verdadero rudo cuando estás usando el conocimiento de la clase para probar partes de documentos de hace seis meses (creo que es en este documento http://www.stanford.edu/~rrwill/… que demostró que [math] NEXP \ not \ subseteq ACC [/ math]. Probamos en un conjunto que [math] E ^ {NP} \ not \ subseteq ACC [/ math].)
Sitio web del curso: CS 151

ME / CS 132 (Robótica avanzada: navegación y visión): impartido por instructores del Laboratorio de propulsión a chorro (JPL). En el transcurso del término, la clase cubre: óptica básica, detección de características y coincidencia (la tarea hace que los estudiantes implementen detectores de esquina Harris y luego una simple suma de coincidencia de diferencia al cuadrado, pero luego usan características SIFT), el algoritmo de ocho puntos, algunas cosas de descenso de gradiente, inferencia probabilística (incluida la propagación de creencias bayesianas), filtros de Kalman y filtros de partículas. Los laboratorios implican el uso de robots Pioneer equipados con un escáner láser y la implementación de muchos de los conceptos que aprendimos, como el uso de métodos probabilísticos para mapear el laboratorio a partir de los datos del escáner láser. Probablemente fue en esta clase en la que me sentí más rudo: los instructores hicieron un muy buen trabajo al elegir tareas que tienen buenas visualizaciones (ver cómo funciona su filtro de partículas por primera vez es muy divertido), y hacer que su código funcione correctamente Los robots son geniales. Tomar esta clase es lo que realmente me convenció de que quiero hacer el lado de la IA de la investigación de vehículos autónomos en el futuro cuando tenga la oportunidad.
Sitio web del curso: ME / CS 132a, invierno 2013

Matemáticas discretas (Ma / CS 6) fue muy divertido. Wilson fue obviamente brillante, y fue el primer profesor que tuve en Caltech que golpeó todos los estereotipos de los profesores. Las tareas eran realmente difíciles, pero siempre se podían resolver con suficiente esfuerzo.

Sin embargo, mi favorito era Algorithms (CS 138b), que era básicamente geometría computacional. Fue enseñado maravillosamente, y me encontré muy emocionado cada semana cuando salía la tarea porque siempre eran muy divertidos.

Realmente disfruté CS 24: Introducción a los Sistemas de Computación (COMPUTER_SCIENCE) enseñado por Donnie Pinkston. Llegué a formar parte de EE, por lo que el curso fue un paso lógico hacia la comprensión de las capas en la parte superior del hardware y el software de interfaz de hardware cubierto en EE 5x (EE / CS 51).

Cubrimos el almacenamiento en caché, la memoria virtual, la recolección básica de basura, el subprocesamiento múltiple, etc. Las tareas fueron perspicaces y han sido muy útiles para comprender los fundamentos de la programación. (nota: tener una idea de cómo mejorar su código para la eficiencia de la memoria caché puede generar ganancias de alto rendimiento cuando se trabaja con big data)

CS 2 (Introducción a los métodos de programación): Esta clase me convenció para especializarme en informática. Realmente me gustó CS 2 porque pudimos crear programas geniales, pero la mayoría del código ya había sido escrito para nosotros, por lo que solo tuvimos que completar la lógica central. Esta fue una manera encantadora de abstraer conceptos de CS a partir de detalles de la implementación.

CS 4 (Fundamentos de programación de computadoras): Esta clase se enseñó en Scheme. Pensé que era muy esclarecedor, no demasiado difícil, y nos expuso a muchas ideas geniales.

CS 38 (Algoritmos): Me gustó esta clase debido a los interesantes conjuntos de problemas. Por eso también odiaba la clase. Pero al final me gustó sobre todo.

CS 11 (Java): Java podría ser mi nuevo idioma favorito. Creamos un visualizador fractal y un rastreador web, que fueron sorprendentemente fáciles dado el poco fondo que teníamos en Java. Además, Donnie Pinkston escribe buenos conjuntos de problemas.

Mis clases de CS favoritas fueron:

  • CS 156: Sistemas de aprendizaje : Introducción sólida al aprendizaje automático con una combinación adecuada de teoría y práctica. (Aprendiendo de los datos – Curso en línea (MOOC))
  • CS 21: Decidability y Tractability : Fundamentos de CS teórico. Disfruté sobre todo los argumentos de reducción.
  • Ma / CS 6c : un tratamiento introductorio agradable y completo de la lógica matemática.

Clases de CS en línea : El programa CS Foundation tiene una duración de ocho meses y puede ser seguido por 10 + 2 pases o estudiantes equivalentes de arte, ciencia o comercio (excluyendo bellas artes).

Este programa es el primer nivel de estudio de tres niveles; Programa de Fundación, Programa Ejecutivo y Programa Profesional, en camino de convertirse en Secretario de la Compañía. Por lo tanto, a este nivel, los estudiantes necesitan construir una buena base de conocimiento y comprensión de todos los documentos.

El curso de la Fundación CS cubre los temas tales como leyes relacionadas con contratos, asociaciones, HUF, instrumentos negociables y otros. Además, los aspectos contables se centran en empresas y negocios, principios básicos de gestión, ética y técnicas de comunicación, conceptos y teorías de la economía, estadísticas elementales y matemáticas.

Clases en línea de CS Executive : Takshila Learning ofrece clases en línea para los exámenes ejecutivos de CS (Secretario de la empresa). El contenido incluye contenido de video totalmente actualizado y libros / notas para el examen CS Executive según el último programa de estudios ICSI. Nuestro contenido es grabado por facultades experimentadas y bien calificadas.

Compre este curso para obtener una excelente puntuación en los próximos exámenes.

Voy a seguir adelante y estar de acuerdo con Ilya y decir que CS 151 fue mi clase favorita de CS en caltech. Ma / CS 116 o 117 o el que sea, también fue bueno. Estas clases son del lado más teórico, por lo que definitivamente no son para todos, y probablemente solo debería tomarlas si disfrutó CS 21 (Introducción a la complejidad y la capacidad de decisión). Sin embargo, si está considerando ir más allá en la informática teórica, estos son los cursos que realmente desea tomar.

En CS 151 vamos más allá de lo que se enseñó en CS 21 y aprendemos técnicas de reducción más avanzadas (como reducciones aleatorias) y material en general, como aprender sobre L , la clase de espacio de registro y #P , la clase de conteo polinómico. Hay un mayor enfoque en los desarrollos recientes en la informática teórica, como discutir y probar parcialmente el gran avance de Ryan Williams que separa dos clases de complejidad ACC0 y NEXP .

Ma / CS 116 ofrece el lado más matemático de la informática teórica y discute más sobre la computabilidad que la complejidad. Discutimos las funciones recursivas, la lógica formal, los teoremas de incompletitud y cosas por el estilo. Muchos de los detalles desordenados que se pasan por alto en CS 21 (como las máquinas de codificación como enteros) se tratan explícitamente en 116.

También disfruté mucho de CS 153, la clase de temas, pero por supuesto eso variará de año en año. Cuando lo tomé, el tema era Pruebas probabilísticamente comprobables y dureza de aproximación, y después de aprender sobre esto, realmente ha dado forma a mi carrera de posgrado. Hoy en día esto es exactamente lo que pienso para mis estudios de posgrado, y estar expuesto a él en la licenciatura me hizo mucho más fácil de comprender cuando lo aprendí nuevamente más tarde.

No puedo garantizar que estas clases se sigan impartiendo:
CS 141 (sistemas distribuidos): Fue impartido por el profesor Mani Chandi cuando estuve allí, quien fue uno de los mejores maestros en el departamento de CS en mi opinión y el curso fue una mezcla razonable de trabajo teórico y práctico.

CS 136 (compiladores):
Solo participé en una, pero realmente disfruté la teoría y la práctica en el material, pero el profesor Jason Hickey fue el profesor del que me pareció ridículamente difícil tomar cursos. Ojalá alguien más estuviera enseñando este curso cuando lo tomé, habría continuado.

CS 144: Las ideas detrás de nuestro mundo en red.

La clase reúne programación, matemáticas, estudios sociales, bocadillos, café y humor para dar una imagen increíble de la web, el mundo en red y cómo nos relacionamos con él.