Si tienes cero o nula experiencia en programación y quieres saber más acerca de la solución algorítmica de problemas, enfatizando en el análisis, el diseño, la implementación y la prueba de las soluciones, este libro será tu gran aliado. Gracias a la lectura de este manual serás capaz de analizar un problema y, una vez entendido, diseñar el algoritmo que representa una solución del problema (computational thinking). Además, desarrollarás la capacidad de programar, pues los problemas planteados son de una naturaleza tal que permiten que los algoritmos diseñados puedan ser implementados por medio de un lenguaje de programación, en este caso, Python. El libro es el resultado de muchos años de enseñanza de materias en las cuales el objetivo principal es despertar en los alumnos el gusto por resolver problemas por medio de los algoritmos. La idea de enseñar a programar debe ir más allá de enseñar un lenguaje de programación, debe desarrollar la capacidad de análisis, despertar el interés por diseñar soluciones eficaces y eficientes, promover la escritura de código agradable de leer y, por lo tanto, fácil de mantener y evolucionar, y debe convencer acerca de la fundamental importancia de probar todos los algoritmos, para garantizar que funcionan correctamente. El manual está pensado para un público muy variado, ya que no exige tener conocimientos previos de computación o de programación: empieza con conceptos muy simples e incorpora más elementos de forma gradual. Asimismo, se ajusta muy bien a materias de ciencias de la computación dedicadas a la enseñanza del desarrollo de algoritmos y su implementación usando lenguajes de programación. Específicamente puede ser un libro de texto de las primeras materias de cualquier plan de estudios que incluya esta área del saber. Sin duda, con interés y ganas de aprender, con este libro dominarás las bases del pensamiento algorítmico, la solución de problemas y su implementación.