Up Next

Capítulo ‍0 Prefacio

Python para informáticos: Remezclando un libro libre

Entre los académicos, siempre se ha dicho que se debe “publicar o morir”. Por ello, es bastante habitual que siempre quieran crear algo desde cero, para que sea su propia obra original. Este libro es un experimento que no empieza desde cero, sino que “remezcla” el libro titulado Think Python: How to Think Like a Computer Scientist (Piensa en Python: Cómo pensar como un informático), escrito por Allen B. Downey, Jeff Elkner, y otros.

En diciembre de 2009, yo estaba preparándome para enseñar SI502 - Networked Programming (Programación en red) en la Universidad de Michigan por quinto semestre consecutivo y decidí que ya era hora de escribir un libro de texto sobre Python que se centrase en el manejo de datos en vez de hacerlo en explicar algoritmos y abstracciones. Mi objetivo en SI502 es enseñar a la gente habilidades para el manejo cotidiano de datos usando Python. Pocos de mis estudiantes planean dedicarse de forma profesional a la programación informática. La mayoría esperan llegar a ser bibliotecarios, administradores, abogados, biólogos, economistas, etc., aunque quieren aplicar con eficacia la tecnología en sus respectivos campos.

Como no conseguía encontrar un libro orientado a datos en Python adecuado para mi curso, me propuse escribirlo yo mismo. Por suerte, en una reunión de la facultad tres semanas antes de que empezara con el nuevo libro (que tenía planeado escribir desde cero durante las vacaciones), el Dr. Atul Prakash me mostró el libro Think Python (Piensa en Python) que él había usado para su curso de Python ese semestre. Se trata de un texto sobre ciencias de la computación bien escrito, con explicaciones breves y directas y fácil de entender.

La estructura general del libro se ha cambiado para conseguir llegar a los problemas de análisis de datos lo antes posible, y contiene, casi desde el principio, una serie de ejemplos y ejercicios con código, dedicados al análisis de datos.

Los capítulos 2–10 son similares a los del libro Think Python, pero en ellos hay cambios importantes. Los ejemplos y ejercicios dedicados a números han sido reemplazados por otros orientados a datos. Los temas se presentan en el orden adecuado para ir construyendo soluciones de análisis de datos progresivamente más sofisticadas. Algunos temas, como try y except, se han adelantado y son presentados como parte del capítulo de condicionales. Las funciones se tratan muy someramente hasta que se hacen necesarias para manejar programas complejos, en vez de introducirlas en las primeras lecciones como abstracción. Casi todas las funciones definidas por el usuario han sido eliminadas del código de los ejemplos y ejercicios, excepto en el capítulo 4. La palabra “recursión”1 no aparece en todo el libro.

En los capítulos 1 y 11–16, todo el material es nuevo, centrado en el uso con problemas del mundo real y en ejemplos sencillos en Python para el análisis de datos, incluyendo expresiones regulares de búsqueda y análisis, automatización de tareas en el PC, recepción de datos a través de la red, rastreo de páginas web en busca de datos, uso de servicios web, análisis de datos XML y JSON, y creación y uso de bases de datos mediante el lenguaje de consultas estructurado (SQL).

El objetivo final de todos estos cambios es pasar de un enfoque de ciencias de la computación a uno puramente informático, incluyendo solamente temas de tecnología básica que puedan ser útiles incluso si los alumnos al final eligen no convertirse en programadores profesionales.

Los estudiantes que encuentren este libro interesante y quieran adentrarse más en el tema deberían echar un vistazo al libro de Allen B. Downey Think Python. Gracias a que hay muchos temas comunes en ambos libros, los estudiantes adquirirán rápidamente habilidades en las áreas adicionales de la programación técnica y razonamiento algorítmico que se tratan en Think Python. Y dado que ambos libros tienen un estilo similar de escritura, deberían ser capaces de moverse rápidamente por Think Python con un mínimo de esfuerzo.

Como propietario de los derechos de Think Python, Allen me ha dado permiso para cambiar la licencia del material de su libro que aparece también en éste, desde la GNU Free Documentation License (Licencia de Documentación Libre) a la más reciente Creative Commons Attribution – Share Alike license. Esto sigue un cambio general en las licencias de documentación abierta, que están pasando del GFDL al CC-BY-SA (como, por ejemplo, Wikipedia). El uso de la licencia CC-BY-SA mantiene la tradicional fortaleza del copyleft a la vez que hace que sea más sencillo para los autores nuevos el reutilizar este material como les resulte más provechoso.

Creo que este libro sirve como ejemplo de por qué los materiales libres son tan importantes para el futuro de la educación, y quiero agradecer a Allen B. Downey y al servicio de publicaciones de la Universidad de Cambridge por su amplitud de miras al permitir que este libro esté disponible con unos derechos de reproducción abiertos. Espero que estén satisfechos con el resultado de mis esfuerzos y deseo que tú como lector también estés satisfecho con nuestros esfuerzos colectivos.

Quiero agradecer a Allen B. Downey y a Lauren Cowles su ayuda, paciencia y orientación en la gestión y resolución del tema de los derechos de autor en torno a este libro.

Charles Severance
www.dr-chuck.com
Ann Arbor, MI, USA
9 de Septiembre de 2013

Charles Severance es un profesor clínico asociado en la School of Information de la Universidad de Michigan.


1
Excepto, por supuesto, en esta línea.

Up Next