Estarás mucho mejor que la mayoría de los estudiantes de estas clases si haces el trabajo. Muchos de ellos leen el libro, pero se meten en la computadora lo menos posible mientras lo hacen. Estarás mucho mejor si te gusta escribir el código.
–
Diseño y Análisis de Algoritmos:
Consigue un buen libro de algoritmos y escribe el código. He visto la Introducción a los algoritmos recomendada varias veces, pero aún no la he leído. Hay clases más avanzadas que solo son análisis de algoritmos, pero francamente encontré que la que tomé fue en gran medida una pérdida de tiempo. El libro fue bueno, pero el curso no valió la pena: terminas con 5 o 6 notaciones diferentes, que incluyen gran O, pequeña o gran theta, pero generalmente cuando la gente habla de algoritmos, siempre dice “gran O”. (Pero normalmente quieren decir theta grande. Esa es la única cosa que supongo que salí de esta clase es una pequeña contracción cada vez que la gente habla sobre la gran notación O.)
–
Principios de los sistemas informáticos:
Subprocesos: escriba algún código donde tenga múltiples subprocesos que acceden a los mismos datos. Lea sobre esto y comprenda los mutexes / bloqueos, y escriba el código. Básicamente, cualquier cosa en la que desee descargar el trabajo de larga duración fuera del subproceso de la interfaz de usuario es un candidato principal para esto.
- ¿Qué debería aprender un estudiante de CS en su propio tiempo, que no aprenderán en la escuela?
- ¿Cómo se mantienen motivados y disciplinados los aprendices avanzados de matemáticas?
- ¿Cómo puede la tecnología digital realmente ayudar en el aprendizaje y la educación?
- ¿Es efectiva la escuela de verano de AS Neill?
- ¿Aprender con un ábaco ayuda a los niños a hacer matemáticas rápidamente?
Procesos / redes: escribe programas que quieran hablar entre ellos. Tal vez un cliente de juego y servidor. Puede escribirlo como interproceso primero, luego usar la red para permitir clientes remotos.
Almacenamiento / administración de archivos: aquí es donde es más probable que lea un poco. Echa un vistazo a los diferentes sistemas de archivos y cómo funciona la memoria virtual.
–
Organizaciones y Sistemas Informáticos:
Si conoces C o ensamblaje, eres una buena parte del camino. Si no lo hace, debería considerar aprender uno o ambos. Recomendaría aprender C si esto le interesa, y tratar el ensamblaje como más opcional. Sin embargo, entender la pila es importante incluso con C: la forma en que las cadenas se tratan normalmente en C y la forma en que funciona la pila presenta una clase fea de error de desbordamiento de búfer.
Comprender los compiladores es una actividad más única. La mayoría de la gente no hace nada con los compiladores, aunque a menudo es una clase separada. Si esto es algo que le interesa, el libro que he visto recomendado es Compiladores: Principios, técnicas y herramientas (2ª edición): Alfred V. Aho, Mónica S. Lam, Ravi Sethi, Jeffrey D. Ullman: 9780321486813 : Amazon.com: Libros. El libro que usamos en cambio fue bastante horrible.