Hola
Bienvenidos a Python para informática.
Hoy veremos el capítulo I
Soy Charles Severance
de la Universidad de Michigan.
Soy el autor
y también su conferencista
en línea de este capítulo.
Tanto la conferencia como mis
diapositivas y el libro son libres:
contenido libre,
materiales libres.
Tienen licencia de atribución de
Creative Commons,
lo mismo que este video.
Es importante aclarar
los derechos de autor,
por eso los menciono desde el principio.
Así que... si no lo han hecho todavía,
por favor,
instalen Python.
Es necesario, y mejor hacerlo
antes de esta conferencia.
Podrían verla sin tener Python,
pero si lo instalan podrán
probar algunas cosas,
e incluso programar algo
en este capítulo.
Y así pueden seguirme
teniendo Python en otra ventana.
Está en pythonlearn.com/install.php
Tiene instrucciones fáciles y claras
para Windows y Macintosh.
Y no está en esta diapositiva,
pero cargué
instrucciones en una Raspberry Pie,
la nueva y genial computadora
de 25 dólares.
Son instrucciones muy sencillas
con imágenes de pantalla
paso a paso.
Diez a quince minutos como máximo.
Pueden detenerlas, iniciarlas,
bajarlas a su disco duro,
los acompañarán en la instalación
de Python, si es necesario,
instalar el editor de texto,
si es necesario,
y luego correr su primer
programa en Python.
Y sí tendrán que correr
un programa en Python.
Así que es un buen momento
para detenerse, hacer eso
y regresar, ¿está bien?
Bueno, regresando a la introducción:
las computadoras quieren ser útiles.
Están programadas—
De hecho este es un microprocesador.
Es sólo una pieza eléctrica.
Tiene circuitos y alambres dentro.
Y alguien dedicó mucho tiempo de
ingeniería
para crearlo
de manera que estas
patas de la parte de atrás
reciban instrucciones de nosotros,
de sistemas operativos,
del disco duro,
de la memoria.
Las instrucciones entran por aquí
y luego salen los resultados.
Es como una calculadora
muy programable
y nuestro trabajo es
meterle instrucciones.
Esta cosa, en cierto sentido,
está diseñada para
ser curiosa sobre lo que sigue;
¿Sí? Es como: "Dime qué
voy a hacer ahora.
¿Qué quieres hacer ahora?
¿Quieres hacer? Y después de
eso, ¿que quieres hacer?
Luego lo hace unas mil
millones de veces por segundo.
Eso es la pieza base,
pero también pueden pensar,
si tienen una PDA,
algo como esto,
todos estos botones
son un tipo de "¿qué sigue?"
Cada uno de ellos es algo
que mendiga mi atención.
Algún diseñador de aplicaciones
a creado una aplicación genial
que dice: "por favor, úsame,
sólo haz clic en mi.
Soy prácticamente nada sin ti
Los humanos somos quienes
causamos que
las computadoras hagan cosas.
Y esta estará ahí feliz
hasta que yo le pida hacer algo
Bien... ¡Ey!
Espero que esté bien.
Sí, parece estar bien.
xxx
Entonces, cualquiera puede
usar uno de estos, ¿no?
Dicen que incluso los animales
pueden usar un
teléfono inteligente Macintosh.
Así que no necesitas ser programador,
pero para lograr que este
haga lo que tú quieres,
necesitas aprender un nuevo lenguaje:
el lenguaje de las instrucciones
para decirle qué hacer.
Eso haremos:
aprender a hablarle a esto.
Oye.
Porque nos está haciendo
una pregunta.
Y tenemos que contestarle.
Bueno, ¿qué es un programador?
Un programador es alguien que
escribe un programa,
es decir un script
o juego de instrucciones
que le dicen a uno de estos
qué se supone que debe hacer.
Y algunas veces se corre un programa
como Moodle, un sistema libre de
gestión de aprendizaje
o Sakai otro sistema libre
de gestión de aprendizaje.
Y algunas veces incluso
te pagan por hacerlo.
Algunas veces lo haces gratis.
Otras veces te pagan.
Otras más lo haces para ti.
Pero si lo piensas, por
todas estas aplicaciones
de mi iPhone,
alguien está ganando
dinero.
Quizá no tanto para renunciar
a su empleo, pero muchos
han podido renunciar
para iniciar compañías pequeñas.
Quizá no compañías gigantes,
sino compañías pequeñas.
Entonces estas personas
que pueden poner aplicaciones
dentro de nuestras computadoras
son programadores
porque ellos entienden
la forma de hablar
a estas computadoras.
Y en parte lo que trato
de hacer es
lograr que vayan del modo de pensar
del usuario final,
que piensa que esto
es sólo algo en qué hacer clic
al modo de pensar del programador
que está en el interior
que está en el interior
tratando de salir hacia ustedes.
Eso es ir del usuario al programador,
ir de afuera hacia adentro.
Si pensamos en el mundo
de afuera decimos
¿Qué botón van a presionar?
Esta es una imagen de eso.
Por fuera somos usuarios,
presionamos botones,
hacemos clic en vínculos,
presionamos botones
en nuestros teléfonos,
etcétera, etcétera.
Pero lo que en realidad sucede,
es que hay una computadora
con un montón de software dentro.
Tiene dentro datos,
redes, otra información.
Y el software...
es lo que da sentido
a todo eso.
Así que en parte lo que
quiero que hagan
es dejar de pensar cómo usar
estas cosas desde el exterior
y empezar a convertirse
en programadores.
Somos alguien por dentro.
Estamos con la CPU,
con la memoria,
con la conexión de red.
Hacemos cosas pensando
en el usuario,
y se las presentamos.
¿Por qué ser un programador?
Bien, esta clase no es para
convertirlos en programadores,
aunque me sentiría orgulloso
si después de cinco ó diez clases
se convirtieran en
programadores profesionales.
Pero no es el propósito
de esta clase.
A veces desean hacer algo.
Tienen una hoja de
Excel en el trabajo
y los datos no están bien.
La obtuvieron de alguien más
y tiene espacios extra
donde no debería tenerlos,
o le faltan campos,
o deben hacerle algo
que Excel no puede hacer.
Están estancados y piensan:
quiero modificar estos datos
para hacer mi trabajo,
pero hacerlo es como
una espina en el zapato.
Tendría que pasarlos a
un editor de texto,
como Microsoft Word,
e ir línea por línea
para limpiar los datos.
Pueden escribir un programa
que haga eso.
Ese es el tipo de programas
que haremos.
Los programas satisfacen
nuestras necesidades.
Están dentro de la computadora
para satisfacer nuestras necesidades.
Los programadores profesionales
tienden a construir cosas
para que otras personas las usen.
Tienden a crear para
lo que todos los demás hacen.
Pero nosotros haremos
cosas para nosotros.
Bien, ¿qué es el código?
¿Qué es el software?
Usamos estas palabras
indistintamente.
Un programa
En realidad es una secuencia
de instrucciones guardadas.
Aprendemos el lenguaje
hablado por esto
luego introducimos las
instrucciones
una por una.
Toma una instrucción, nos da un resultado
y le damos la siguiente.
Entonces es una secuencia
de instrucciones guardadas.
Pero también es más que eso;
es como nuestra creatividad.
Si han usado algo de mi software,
como mi software de xxx,
dediqué algo así como
un mes a escribirlo todo.
Y es como si fuera yo.
Es mi visión de cómo
debe funcionar algo genial.
Entonces es más que lograr
que se hagan las cosas.
Implica un sentimiento de
orgullo y logro,
especialmente si hacen algo
que otros puedan usar.
En realidad creo que
es algo muy creativo.
Y es lo que me atrajo
a la programación;
podía apoyarme en las
capacidades de esto
y hacer cosas geniales
en beneficio del usuario.
Entonces...
código,
software,
un programa.
Veamos un ejemplo
no tan técnico de eso.
Les he puesto un vínculo
a YouTube para esto.
Es... la Macarena.
La Macarena es una canción
que va acompañada
de un baile muy conocido
que todos parecen saber
o que se aprende rápido.
Entonces voy a parar
para que vean la Macarena.
Luego regreso.
Bienvenidos otra vez.
Espero que lo hayan disfrutado.
En cierto sentido lo
que vimos es...
un programa.
Un programa para seres humanos.
Quizá lo aprendieron en un club
donde les dijeron qué hacer.
Bien, yo puedo enseñarles
a bailar la Macarena
escribiendo un programa sencillo.
Ahora mismo.
Aquí esta mi Macarena:
Mientras la música suena
significa que lo harán
una y otra vez con el ritmo.
Es como las computadoras:
hacen las cosas a un ritmo.
A un ritmo de 3 mil millones
de pulsos por segundo.
Entonces, haremos esto
varias veces.
Y tenemos todo este grupo
de instrucciones
que vamos a seguir, ¿sí?
Extender la mano izquierda
en alto.
Extender la mano derecha
en alto.
Voltear la mano izquierda.
Voltear la mano derecha.
Mano izquierda al hombro derecho.
Mano derecha al hombro izquierdo.
Etcétera, etcétera.
Ahora, este pequeño programa
en particular
tiene un error.
De hecho varios.
Quiero que traten de
encontrar los errores
del programa.
Bueno, estos son los
lugares donde hay error.
El error es:
«Jamón» derecho a la nuca,
y Mano izquierda «golpe»
a la derecha,
en lugar de «cadera».
Bueno, si están en un bar,
toman un jamón,
y golpean a alguien
en la parte derecha de la nuca,
no es agradable.
Bailando al ritmo de la canción.
A estos los llamamos
«errores lógicos».
Bien, un humano que lea esto
dirá: «Creo que quisieron
decir “mano”».
Pero una computadora es
mucho más literal que la gente.
Haremos un par de ejercicios donde
veremos que la gente puede
corregir pequeños errores
como este.
Pero las computadoras...
no pueden.
Entonces tenemos que corregir
estos errores.
Debemos decir: «mano derecha»
y «cadera» en lugar de golpe.
Debemos ser explícitos.
Las computadoras hacen
exactamente lo que les decimos,
no lo que queremos decir.
Entonces, limpiemos eso.
Aquí hay otro ejemplo:
veamos como sale.
Deben contar el número de veces
que la palabra «the»
aparece en esta oración.
Cuéntenla.
La palabra «the»,
¿Cuántas veces?
Bien. Es su turno.
Bueno, aquí...
Esto no es algo para lo que
los humanos seamos buenos.
Les moví la oración,
toqué una melodía,
los confundí,
les puse una tarjeta
con un payaso
en la esquina superior derecha.
Etcétera, etcétera, etcétera.
Pues resulta que...
las computadoras...
una vez que les decimos
qué hacer...
son muy buenas para concentrarse.
Fácilmente pueden ir de 30 palabras
y encontrar la más común,
a 3 millones de palabras
y encontrar la más común,
sin nunca cometer un error.
Pero antes debemos darle
un grupo de instrucciones.
Entonces, no quiero
que aprendan esto ahora mismo.
Pero esto es un programa en Python.
Digamos que quiero que
cuenten palabras en archivos.
Les digo: «¡Hey! Sé programar
en Python.
Te enviaré un correo
con un programa
Sólo mételo en Python
y contará las palabras por ti.
¿Sí? Tienes un millón de palabras
un millón de líneas en un archivo
y quieres encontrar la palabra más común.
Así que ahí va.
Te enviaré este archivo
llamado «python words.py»
al que dediqué algún tiempo,
es un regalo para ti».
Y esto es lo que escribí.
Les daré una especie de
resumen de lo que hace:
Primero abrirá y leerá un archivo.
Luego dividirá las líneas en palabras
basándose en los espacios.
Luego acumulará cifras:
esta palabra es 1, la siguiente es 2.
Eso hace esto, es un ciclo
que corre una y otra vez,