PDF de programación - Como Pensar como un Científico de la Computación con Python

Imágen de pdf Como Pensar como un Científico de la Computación con Python

Como Pensar como un Científico de la Computación con Pythongráfica de visualizaciones

Actualizado el 24 de Octubre del 2020 (Publicado el 5 de Mayo del 2018)
5.209 visualizaciones desde el 5 de Mayo del 2018
1,2 MB
336 paginas
Creado hace 15a (23/01/2009)
Como Pensar como un Cient´ıfico de la
Computaci´on con Python

Como Pensar como un Cient´ıfico de la
Computaci´on con Python

Allen Downey
Jeffrey Elkner
Chris Meyers

Traducido y adaptado por
Andr´es Becerra Sandoval

Pontificia Universidad Javeriana

Santiago de Cali, Colombia

Copyright c° 2002 Allen Downey, Jeffrey Elkner, y Chris Meyers.

Pontificia Universidad Javeriana
Calle 18 No. 118-250
A.A. No. 26239
Cali, Colombia

Se concede permiso para copiar, distrubuir, y/o modificar este documento bajo
los terminos de la GNU Free Documentation License, Versi´on 1.1 o cualquier
versi´on posterior publicada por la Free Software Foundation; con los Secciones
Invariantes siendo “Pr´ologo,” “Prefacio,” y “Lista de Contribuidores,” sin texto
de cubierta, y sin texto de contracubierta. Una copia de la licencia est´a incluida
en el ap´endice titulado “GNU Free Documentation License.”

La GNU Free Documentation License est´a disponible a trav´es de www.gnu.org
o escribiendo a la Free Software Foundation, Inc., 59 Temple Place, Suite 330,
Boston, MA 02111-1307, USA.

La forma original de este libro es c´odigo fuente LATEX y compilarlo tiene el efecto
de generar un libro de texto en una repesentacion independiente del dispositivo
que puede ser convertida a otros formatos e imprimirse.

El c´odigo fuente LATEX para este libro y mas informaci´on sobre este proyecto se
encuentra en:

http://www.thinkpython.com

Este libro ha sido preparado utilizando LATEX y las figuras se han realizado con
xfig. Todos estos son programas de c´odigo abierto, gratuito.

Historia de la impresi´on:

Pr´ologo

Por David Beazley

Como un educador, investigador, y autor de libro, estoy encantado de ver la
terminaci´on de este texto. Python es un lenguaje de programaci´on divertido y
extremadamente f´acil de usar que ha ganado renombre constantemente en los
a˜nos recientes. Desarrollado hace diez a˜nos por Guido van Rossum, la sintaxis
simple de Python y su “sabor” se derivan en gran parte del ABC, un lenguaje
de programaci´on para ense˜nanza que se desarroll´o en los 1980s. Sin embargo,
Python tambi´en fue creado para resolver problemas reales y tiene una amplia
gama de caracter´ısticas que se encuentran en lenguajes de programaci´on como
C++, Java, Modula-3, y Scheme. Debido a esto, uno de las caracter´ısticas no-
tables de Python es la atracci´on que ejerce sobre programadores profesionales,
cient´ıficos, investigadores, artistas, y educadores.

A pesar de ´esta atracci´on en muchas comunidades diversas, usted puede todav´ıa
preguntarse “¿porque Python?” o “¿porque ense˜nar programaci´on con Python?”
Responder ´estas preguntas no es una tarea f´acil— especialmente cuando la opi-
ni´on popular est´a del lado masoquista de usar alternativas como C++ y Java.
Sin embargo, pienso que la respuesta mas directa es que la programaci´on en
Python es simplemente mas divertida y mas productiva.

Cuando ense˜no cursos de inform´atica yo quiero cubrir conceptos importantes,
hacer el material interesante y enganchar a los estudiantes. Desafortunadamente,
hay una tendencia en la que los cursos de programaci´on introductorios dedican
demasiada atenci´on en la abstracci´on matem´atica y a hacer que los estudiantes
se frustren con problemas molestos relacionados con la sintaxis, la compilaci´on
y la presencia de reglas arcanas en los lenguajes. Aunque la abstracci´on y el
formalismo son importantes para los ingenieros de software y para los estudian-
tes de ciencias de la computaci´on usar este enfoque hace a la inform´atica muy
aburrida. Cuando ense˜no un curso no quiero tener un grupo de estudiantes sin
inspiraci´on. Quisiera verlos intentando resolver problemas interesantes explo-
rando ideas diferentes, intentando enfoques no convencionales, rompiendo las

vi

Pr´ologo

reglas, y aprendiendo de sus errores. En el proceso no quiero perder la mitad
del semestre tratando de resolver problemas sint´acticos oscuros, interpretando
mensajes de error del compilador incomprensibles, o descifrando cual de las mu-
chas maneras en que una programa puede generar un error de memoria grave
se est´a presentando.

Una de las razones porque las que me gusta Python es que proporciona un
equilibrio muy bueno entre lo pr´actico y lo conceptual. Puesto que se interpre-
ta Python, los principiantes pueden empezar a hacer cosas interesantes casi de
inmediato sin perderse en problemas de compilaci´on y enlace. Adem´as, Python
viene con un biblioteca grande de m´odulos que pueden ser usados en dominios
que van desde programaci´on en la web hasta gr´aficos. Tener un foco pr´actico
es una gran manera de enganchar a los estudiantes y permite que emprendan
proyectos significativos. Sin embargo, Python tambi´en puede servir como una
excelente base para introducir conceptos importantes de la inform´atica. Pues-
to que Python soporta completamente procedimientos y clases, los estudiantes
pueden ser introducidos gradualmente a temas como la abstracci´on procedimen-
tal, las estructuras de datos, y la programaci´on orientada a objetos—lo que se
puede aplicar despu´es a cursos posteriores en Java ´o C++. Python proporcio-
na incluso varias caracter´ısticas de los lenguajes de programaci´on funcionales y
puede usarse para introducir conceptos que se pueden explorar con mas detalle
en cursos con Scheme y Lisp.

Leyendo, el prefacio de Jeffrey, estoy sorprendido por sus comentarios de que
Python le permita ver un “m´as alto nivel de ´exito y un nivel bajo de frus-
traci´on” y que puede “avanzar mas r´apido con mejores resultados.” Aunque
estos comentarios se refieren a sus cursos introductorios, a veces uso Python
por ´estas mismas razones en los cursos de inform´atica avanzada en la Universi-
dad de Chicago. En estos cursos enfrento constantemente la tarea desalentadora
de cubrir un mont´on de material dif´ıcil en un curso de nueve semanas. Aunque
es totalente posible para mi infligir mucho dolor y sufrimiento usando un len-
guaje como C++, he encontrado a menudo que este enfoque es improductivo—
especialmente cuando el curso se trata de un asunto sin relaci´on directa con la
“programaci´on.” He encontrado que usar Python me permite enfocar el tema
del curso y dejar a los estudiantes desarrollar proyectos substanciales.

Aunque Python siga siendo un lenguaje joven y en desarrollo, creo que tiene
un futuro brillante en la educaci´on. Este libro es un paso importante en esa
direcci´on.

David Beazley
Universidad de Chicago
Autor del Python Essential Reference

Prefacio

Por Jeff Elkner

Este libro debe su existencia a la colaboraci´on hecha posible por Internet y
el movimiento de software libre. Sus tres autores—un profesor de colegio, un
profesor de secundaria, y un programador profesional—tienen todav´ıa que verse
cara a cara, pero han podido trabajar juntos y han sido ayudado por maravillosas
personas quienes han donado su tiempo y energ´ıa para ayudar a hacer ver mejor
este libro.

Nosotros pensamos que este libro es un testamento a los beneficios y futuras
posibilidades de ´esta clase de colaboraci´on, el marco que se ha puesto en marcha
por Richard Stallman y el movimiento de software libre.

C´omo y porqu´e vine a utilizar Python

En 1999, el examen del College Board’s Advanced Placement (AP) de Inform´ati-
ca se hizo en C++ por primera vez. Como en muchas escuelas de Estados Uni-
dos, la decisi´on para cambiar el lenguaje ten´ıa un impacto directo en el plan
de estudios de inform´atica en la escuela secundaria de Yorktown en Arlington,
Virginia, donde yo ense˜no. Hasta este punto, Pascal era el lenguaje de instruc-
ci´on en nuestros cursos del primer a˜no y del AP. Conservando la pr´actica usual
de dar a los estudiantes dos a˜nos de exposici´on al mismo lenguaje, tomamos
la decisi´on de cambiar a C++ en el curso del primer a˜no en el periodo escolar
1997-98 de modo que sigui´eramos el cambio del College Board’s para el curso
del AP el a˜no siguiente.

Dos a˜nos despu´es, estoy convencido de que C++ no era una buena opci´on para
introducir la inform´atica a los estudiantes . Aunque es un lenguaje de pro-
gramaci´on de gran alcance, es tambi´en un lenguaje extremadamente dif´ıcil de
aprender y de ense˜nar. Me encontr´e constantemente peleando con la sintaxis
dif´ıcil de C++ y sus m´ultiples maneras de hacer las cosas, y estaba perdiendo

viii

Prefacio

muchos estudiantes innecesariamente como resultado. Convencido de que ten´ıa
que haber una mejor opci´on para nuestras clases de primer a˜no, fui en busca de
un alternativa a C++.

Necesitaba un lenguaje que pudiera correr en las m´aquinas en nuestro laborato-
rio Linux, tambi´en en las plataformas de Windows y Macintosh que muchos de
los estudiantes tienen en casa. Quer´ıa que fuese un lenguaje de c´odigo abierto,
para que los estudiantes lo pudieran usar en casa sin pagar por una licencia.
Quer´ıa un lenguaje usado por programadores profesionales, y que tuviera una
comunidad activa alrededor de ´el. Ten´ıa que soportar la programaci´on procedu-
ral y orientada a objetos. Y mas importante, ten´ıa que ser f´acil de aprender y
de ense˜nar. Cuando investigu´e las opciones con ´estas metas en mente, Python
salt´o como el mejor candidato para la tarea.

Ped´ı a uno de los estudiantes mas talentosos de Yorktown, Matt Ahrens, que le
diera a Python una oportunidad. En dos meses el no solamente aprendi´o el len-
guaje sino que escribi´o una aplicaci´on llamada pyTicket que permiti´o a nuestro
personal atender peticiones de soporte tecnol´ogico v´ıa web. Sabia que Matt no
podr´ıa terminar una aplicaci´on de esa escala en tan poco tiempo con C++, y
esta observaci´on, combinada con el gravamen positivo de Matt sobre Python,
sugiri´o que este lenguaje era la soluci´on que buscaba.

Encontrando un Libro de Texto

Al decidir utilizar Python en mis dos clases de inform´atica introductoria para
el a˜no siguiente, el problema mas acuciante era la carencia de un libro.

El contenido libre vino al rescate. A principios del a˜no, Richard Stallman me
present´o a Allen Dow
  • Links de descarga
http://lwp-l.com/pdf10841

Comentarios de: Como Pensar como un Científico de la Computación con Python (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad