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
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,