¿Cuál es el mejor libro para aprender el pensamiento algorítmico?

Estructura de datos y pensamiento algorítmico con Python: libro de Narasimha Karumanchi

  • Tabla de contenido: http://goo.gl/VLEUca
  • Capítulo de muestra: http://goo.gl/8AEcYk
  • Código fuente: carreramonk / DataStructureAndAlgorithmicThinkingWithPython El capítulo de muestra debería darle un … Google Books

[ PDF] pensamiento computacional y algorítmico: AustralianMathematics Trust

  • http://www.amtt.com.au/documents…

[PDF] Libro Python y pensamiento algorítmico para el principiante completo – Wasabi Web

  • http: //magento-demo.wasabiweb.se…

Use bases de datos de problemas a través del sitio, http://uva.onlinejudge.org/index…, que tiene cientos de problemas relacionados con algoritmos generales. Y no necesita ser un programador experto para resolver ninguno de ellos. Lo que necesitas es una buena habilidad con la lógica y las matemáticas. Allí, puede encontrar problemas desde los más simples hasta los más desafiantes. La mayoría de ellos provienen de maratones de programación.

¿Qué es el pensamiento algorítmico?

  • Estructura de clase
  • Pseudocódigo
  • El problema del mundo pequeño
  • Gráficos y representación
  • Caminos y distancias
  • Fuerza bruta
  • ¿Qué es la eficiencia del algoritmo?
  • Medición de eficiencia
  • Eficiencia de la fuerza bruta distancia
  • Número de pasos de distancia de fuerza bruta

Primero definamos los términos, para que no se vaya en un mundo de sueños que no se parece en nada al real.

“Un algoritmo” es “un método de hacer” algo. El algoritmo para cortar el césped comienza con ir al garaje (o donde sea que guarde su cortadora de césped).

¿La mejor manera de aprender procedimientos paso a paso para resolver un problema? Eso es innato, no algo aprendido. Algunas personas simplemente atacan todo el problema, no llegan a ningún lado y luego piden ayuda al vecino que parece saber cómo hacerlo todo. Tenga en cuenta, sin embargo, que primero mira la situación, la estudia y luego parece “saber qué hacer”. No lo hace, desarrolló un algoritmo para ello.

Solía ​​llamarse “cerebro izquierdo / cerebro derecho”: si tienes el cerebro izquierdo, analizas el problema, luego descubres cómo resolverlo, si tienes el cerebro derecho, abordas todo el problema. Los programadores son cerebros izquierdos, artistas, escultores, músicos son cerebros derechos. Y puede cambiar la forma en que su cerebro está conectado tan fácilmente como puede cambiar su especie.

Entonces … si ve los problemas como pasos a resolver uno por uno, ya está “pensando algorítmicamente”. Si ve los problemas como “un problema a resolver”, no puede pensar de esa manera. Simplemente no puede, más de lo que puede “aprender” o “querer” para ser un león.

Pero probablemente sería un gran músico o artista. (Y créanme, la programación no es “divertida”, es un trabajo duro. Y no es el camino hacia la riqueza incalculable: por cada Bill Gates, hay miles de trabajadores de cubículos, que ganan $ 30k. “Convertirse en programador” no es la puerta mágica a la felicidad: hacer lo que eres realmente bueno y que te paguen por hacerlo, solo pregúntale a personas como Mick Jagger: todo lo que escribió fue música, no software).

Cualquier libro sobre introducción a la programación debería estar bien para el “pensamiento algorítmico”. Si desea estudiar algoritmos, mencionar “Introducción a los algoritmos” es bastante bueno. Mi edición usaba pseudocódigo, y es una desventaja para un autoestudio, ya que no puede compilar / ejecutar algoritmos fácilmente o insertar la “instrumentación” necesaria para ver el funcionamiento interno de los algoritmos. Tengo “Algorithms 4e” de Sedgewick frente a mí y es una muy buena referencia. También puede marcar “Programación de perlas”. Algunos capítulos son bastante difíciles, pero otros no lo son (“Cálculos del reverso de la envolvente”) y le mostrarán de qué se tratan los algoritmos. Las “Perlas de programación” son una colección de ensayos de comunicaciones de ACM, y la mayoría de los artículos de Bentley están disponibles en línea, legalmente, de forma gratuita, en formato PDF.

Estos libros son muy buenos:
CLRS – Cormen, Leiserson, Rivest y Stein, Introducción a los algoritmos (3a edición)

DPV – Dasgupta, Papadimitriou y Vazirani, Algoritmos

KT – Kleinberg y Tardos, Diseño de algoritmo

SW – Sedgewick and Wayne, Algorithms (4th edition)

Introducción al algoritmo de Cormen