¿Cuáles son algunos buenos documentos que todo graduado de CS debería leer y que esté interesado en algoritmos?

Aquí hay una pista: si colgó en sus libros de texto de su curso “Estructuras de datos y algoritmos” (lo hice), a menudo tendrán referencias a documentos que profundizarán en los temas que cubren los libros de texto. Uno de los míos tiene una bibliografía completa al final, mientras que otro tiene una sección de “Referencias y lecturas seleccionadas” al final de cada capítulo. Esto lo ayudará a “profundizar” en áreas que merecen más estudio.

Tampoco descuides los brazos de investigación de las principales empresas, como Google y Microsoft, para algunos de los últimos trabajos.

Dicho esto, aquí hay algunos clásicos con los que querrás estar familiarizado:

“Sobre números computables, con una aplicación al problema Entscheidungs”, Alan Turing. La base de la informática en sí, incluida la definición de la máquina de Turing.

“Una teoría matemática de la comunicación”, Claude Shannon. Los fundamentos de la teoría de la información, una base importante para la compresión de datos y la criptografía.

“Lo que todo informático debe saber sobre la aritmética de coma flotante”, David Goldberg. Todo lo que siempre quiso saber sobre coma flotante, pero tuvo miedo de preguntar. Crítico para comprender las limitaciones de las representaciones de punto flotante, o por qué a veces necesita cosas como las clases BigInteger y BigDecimal de Java.

“Reducibilidad entre problemas combinatorios”, Richard Karp. La lista original de problemas NP-completos.

“Reflexiones sobre la confianza en la confianza”, Ken Thompson. No está estrictamente relacionado con el algoritmo, pero proporciona una idea de la seguridad que todos debemos tener en cuenta.

“Funciones recursivas de expresiones simbólicas y su cálculo por máquina, parte I”, John McCarthy. El documento fundamental sobre LISP, que fue el primer lenguaje de programación funcional importante.

“Un método para obtener firmas digitales y criptosistemas de clave pública”, Rivest, Shamir y Adleman. La descripción del algoritmo de clave pública RSA, aún importante en seguridad.

A veces, trabajar con un código te llevará a una referencia interesante. Fue un código en una biblioteca de asignación de montón que me señaló los “árboles rojo-negros inclinados a la izquierda” de Robert Sedgwick (enlace PDF). Esto describe la implementación de una estructura de datos útil que se encuentra en muchos lugares.

Y, si desea implementar alguno de los algoritmos descritos en estos documentos, lea Cómo implementar un algoritmo de un artículo científico. Esto tiene consejos prácticos para convertir todas esas ideas en código.

Referencia: ¿Qué documentos deberían leer todos?

Punta de sombrero: Michael Hayter para el A2A.

CLRS? aka Introducción a los algoritmos. Es mathy pero si te das cuenta. Maldita sea. Estarás listo.

More Interesting

¿Cuál es una buena estrategia para comprar una GPU para un modelo de aprendizaje automático en casa?

¿Cómo funciona la búsqueda inversa de video?

¿Qué debo aprender, AWS o machine learning?

¿Por qué fue difícil romper la máquina Enigma? ¿Fue su diseño muy inteligente y genio?

¿Cuáles son algunos de los mejores recursos introductorios (libros, cursos en línea, etc.) en el campo de la IA?

¿Qué me estoy perdiendo si estoy usando Windows 7 en lugar de Linux / Ubuntu?

Si pudieras retroceder en el tiempo con una unidad flash moderna, ¿cómo conseguirías que una computadora la lea?

¿Es IOStream de C ++ un mal diseño?

¿Cómo se estudia una asignatura como Física / Matemática / Informática (que es tan abstracta) y se desconecta del mundo y, sin embargo, se aplica para resolver (con éxito) problemas del mundo real? (Como Elon Musk, por ejemplo)

Cómo desarrollar suficiente conocimiento de aprendizaje automático para comprender a fondo los trabajos de investigación que se publican en DeepMind

¿Qué pueden hacer los profesionales y los dueños de negocios ahora para prepararse para los avances tecnológicos disruptivos de la inteligencia artificial?

¿La velocidad de ejecución de un algoritmo que, al ejecutarse, hace que el sistema físico en ejecución tenga experiencia subjetiva, hace alguna diferencia en la naturaleza de esta experiencia subjetiva?

¿Cuáles son los conceptos que todo ingeniero profesional de aprendizaje automático debe conocer?

¿Qué temas de estadística y probabilidad se deben conocer antes de comenzar el aprendizaje automático?

¿Cuánta potencia informática tiene Amazon Web Services?