¿Cómo empiezo en CS teórico?

35

Soy un estudiante de primer año que estudia ciencias de la computación y ya sé que quiero ingresar a la academia con un enfoque de comp. Ya leí algunos de los documentos a los que se hace referencia en esta pregunta y esta pregunta me convenció aún más.

¿Qué debo hacer ahora , como estudiante universitario, para involucrarme en el campo? ¿Qué puedo hacer para prepararme para la investigación en el campo?

Buena persona
fuente
77
Esto no es lo suficientemente significativo como para publicarlo como respuesta, pero considere recoger también una copia de la "Introducción a la teoría de la computación" de Michael Sipser. Incluso si no tiene tiempo para autoaprendizaje con ese libro, es una gran referencia si hay algo que necesita buscar que no se explica claramente en Wikipedia.
Philip White
2
No sé cómo funciona el procedimiento, pero me encantaría ver esto como wiki comunitario.
chazisop
3
Marque la pregunta para la atención del moderador y nos ocuparemos de ella.
Suresh Venkat
2
@Buena persona: OP no puede hacer una pregunta CW, solo los moderadores pueden hacerlo .
Kaveh
2
@Buena persona: como menciona Kaveh, los carteles originales ya no pueden hacer publicaciones CW (y tampoco nadie con privilegios de edición). Solo los mods pueden hacer esto. no se pretendía ofender.
Suresh Venkat

Respuestas:

29

Déjame darte una respuesta desde el otro lado. He tenido algunos investigadores universitarios que trabajan conmigo. La experiencia ha sido mixta: con algunos, he publicado artículos y tengo trabajo en progreso, y con otros, nunca hemos tenido ningún tipo de comienzo.

Es genial que sepas lo que quieres hacer. Como estudiante universitario, esto es en lo que debería centrarse:

  • Desarrollar los "músculos" matemáticos que lo ayudarán cuando comience a trabajar en problemas en serio
  • Explorar diferentes aspectos de la CS teórica para tener una idea del área y descubrir qué tipo de problemas / áreas te parecen interesantes
  • (dependiendo del área) resolviendo algunos acertijos, tal vez resolviendo algunos ejercicios y avanzando hacia una pregunta de investigación.

¡Encuentre un profesor que lo guíe y PONGA EN EL TIEMPO! Lo más difícil que enfrentarás es crear el tiempo abierto para pensar en problemas en medio del trabajo de clase, tareas y exámenes. Pero debe reservar bloques de tiempo para su estudio e investigación independientes; de lo contrario, será muy difícil hacer algún tipo de progreso. La forma de hacerlo depende de usted: tal vez pueda encontrar un profesor que se reúna con usted una vez por semana y establecer metas intermedias para usted, o tal vez pueda establecer una meta a largo plazo (trabajar con ejercicios X a partir de un texto) y trabajar de manera constante en ese.

Suresh Venkat
fuente
44
¡Buena respuesta! "necesitas reservar bloques de tiempo para tu estudio independiente": esto me recuerda mi propia experiencia. Solía ​​ser un estudiante de matemáticas perezoso, luego en master descubrí un buen problema de TCS (centrado alrededor de la función de castor ocupado). Comencé a trabajar en mi tiempo libre con la guía de uno de mis profesores. Nunca encontré algo interesante sobre el problema, pero 12 años después, escribí más de 15 documentos con él (pero él nunca fue mi asesor de doctorado / maestro, solo un mentor "externo").
Sylvain Peyronnet
1
¡La respuesta de Suresh es genial! Para el OP: ¡Crear "músculos" matemáticos significa acostumbrarse al lenguaje y las herramientas de las matemáticas (combinatoria, teoría de grafos, análisis, etc.) y también acostumbrarse a probar teoremas! (¡Y esta es la parte realmente emocionante! :-)
Jay
19

Actualmente soy estudiante de doctorado y no profesor, por lo que mi sugerencia proviene de mi experiencia personal (limitada) como estudiante graduado.

Cuando era estudiante universitario, siempre trabajé como asistente de investigación en verano con diferentes profesores en mi departamento. Personalmente, creo que la única forma de averiguar si TCS es realmente para usted o no es trabajar en problemas concretos y ver qué puede disfrutar más. Me llevó bastante tiempo encontrar un profesor y un tema que me gustara. También hay un aspecto "social" en la investigación, y diferentes profesionales tienen diferentes hábitos de trabajo y supervisión, y por lo tanto, estos trabajos de investigación de verano le darán una mejor idea de la calidad que más desea de un supervisor en el futuro.

Hay muchos campos interesantes en informática, y TCS es solo uno de ellos. Por lo tanto, siempre es mejor mantener abiertas las opciones y hablar con diferentes profesionales. Es muy importante especializarse cuando estás haciendo un doctorado, pero como estudiante universitario, creo que el consejo de Mark Braverman es extremadamente relevante:

"Trata de aprender tanto como puedas. [...] ¡Es más difícil más adelante!"

[Mark intentó inscribirse en muchos cursos (muy por encima del límite) y explorar diferentes áreas de Matemáticas e Informática cuando era estudiante universitario.] Intente asistir a conferencias y seminarios sobre diferentes temas en su departamento. Cuando esté en sus años superiores, también debe solicitar permiso para auditar cursos de posgrado relacionados con su interés.

Además, dependiendo de si se está especializando en Matemáticas o CS, también debe planificar los cursos que debe tomar para preparar una base básica sólida. Si eres estudiante de matemáticas, entonces debes tomar más cursos de CS en algoritmos y complejidad que te den una mente más "algorítmica". Si eres estudiante de CS o Ingeniería, entonces siempre es una buena idea aprender algunos cursos básicos de Matemáticas en:

  • Combinatoria
  • Probabilidades y estadísticas
  • Álgebra Lineal Avanzada
  • Álgebra abstracta
  • Análisis

Es cierto que nunca puedes aprender suficientes matemáticas, y que debes aprender a aprender nuevas matemáticas / métodos / técnicas rápidamente cuando sea necesario. Pero un fondo sólido definitivamente le dará un comienzo más fácil en TCS.

¡Te deseo la mejor de las suertes y éxitos!

Dai Le
fuente
66
+1: buena respuesta. Agregaré que tomar / auditar cursos no teóricos de CS o no CS también es algo bueno, abre tu mente para posibles problemas en los que trabajar, nunca se sabe dónde aparece una buena pregunta de teoría, así que mantén los ojos abiertos . :)
Kaveh
¿Recomendaría "Álgebra lineal avanzada" de Steve Roman para el autoestudio de posgrado?
Jacob
2
@Jacob: el libro de Roman es sin duda recomendado por muchas personas. Es realmente avanzado y cubre temas agradables como módulos, convexidad, geometría afinada, productos tensoriales, etc. ¡Pero la conclusión es que siempre debe elegir algo que sea adecuado para su gusto y fondo! Así que escanear un montón de libros en la biblioteca antes de decidir siempre es una buena idea (al menos para mí).
Dai Le
11

Como estudiante de primer año, su mejor opción es expresar este interés a sus profesores en el departamento de CS, que pueden ayudarlo (¡proporcionar esta ayuda en gran parte de su trabajo!). La mayoría de ellos estarían encantados de ayudar a un estudiante universitario que estuviera interesado en las mismas cosas que ellos. Por lo menos, pueden darle buenos consejos sobre qué clases tomar en su institución y consejos personalizados para su situación.

Peter Boothe
fuente
10

Muchas otras personas parecen estar dando varios consejos buenos. Para agregar a la sabiduría, permítanme decir esto: no hay tal cosa como saber demasiadas matemáticas (a menos que decida que quiere hacer matemáticas puras) En serio, conozca su análisis, combinatoria, álgebra, tal vez alguna teoría de repeticiones, alg top, etc. Hace que leer mucho en todas las áreas de la teoría de CS sea mucho más fácil :)

Carter Tazio Schonwald
fuente
2
Excelente consejo. También se lo digo a todos los estudiantes que vengan a hablar conmigo.
Suresh Venkat
7

¡Has hecho un gran primer paso! Me ocuparé de hablar con un profesor en su departamento. Si está interesado en la teoría, encuentre a quien esté impartiendo los cursos de teoría y hable con ellos. Pueden tener algunos problemas que no requieren demasiados antecedentes para comenzar. En mi experiencia personal, hay más problemas en la teoría de grafos y la combinatoria que son más accesibles que la teoría, pero que aún desarrollan las mismas habilidades de investigación. ¡No tengas miedo de tu departamento de matemáticas!

También puede ayudar comenzar a involucrarse en la comunidad, especialmente haciendo y respondiendo preguntas aquí. Sería útil que tu nombre de usuario sea tu propio nombre para que sepamos quién eres.

Derrick Stolee
fuente
6

Soy un estudiante casi graduado. Por lo tanto, las respuestas a su pregunta también son interesantes para mí, pero tal vez mi pequeña experiencia personal pueda ayudar.

Aquí está mi lista (en orden aleatorio) de sugerencias de lo que puede hacer:

  • En primer lugar, lea tantos documentos / libros / notas de conferencias como pueda encontrar. ¡Pero también es importante aplicar su conocimiento a los ejercicios y luego a los problemas abiertos! Algunos de mis tutores siempre dicen: no solo tus músculos necesitan entrenamiento continuo :)
  • Leer / preguntar / responder preguntas en este sitio (o en algún otro sitio SE relacionado) es una buena manera de aprender a trabajar con temas de investigación en TCS o matemáticas.
  • Trato de leer muchos blogs de TCS de conocidos investigadores. Los temas cubren resultados actuales e históricos.
Marc Bury
fuente
¿Tendrías algún enlace a esos blogs?
SH7890
2

Creo que lo más importante es explorar lo más ampliamente posible para aprender qué aspectos de TCS realmente te entusiasman. En el curso de esta exploración, es posible que los problemas que más le intrigan sean las intersecciones de TCS con otros campos (egeconomics) o aplicaciones de TCS (por ejemplo, a redes de computadoras) o temas de TCS que también son parte de otras áreas en CS como la teoría de aprendizaje computacional o estadística. Diablos, incluso es posible que cambies tu especialidad a matemáticas o física o algo relacionado si tus intereses te llevan en esa dirección.

Mi punto es que, como estudiante de primer año, realmente tiene la oportunidad de explorar ampliamente con menos presión de la que tendría como estudiante graduado o profesor. Y para no alarmarse si no termina en los temas de TCS "sospechoso habitual".

Por supuesto, sería ideal si profundiza en alguna área, aprende técnicas sólidas y publica excelentes resultados.

Y si termina convirtiéndose en un experto en un nuevo campo antes de que se convierta en la corriente principal, probablemente será excelente para su carrera.

Mugizi Rwebangira
fuente