Manual Animate A Programar

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 17

Animate a

Programar

Talleres
País
Digital
TALLERES PAÍS DIGITAL | Animate a Programar

Animate a programar
INTRODUCCIÓN: REPENSAR LA PROGRAMACIÓN
Programar consiste en darle a la computadora instrucciones para que pueda com-
pletar una acción. Todo lo que hace la computadora, lo puede hacer porque alguien
2
ha preparado instrucciones que puede seguir, es decir, programas. Programar resulta
útil porque así logramos que la computadora se pueda encargar de mayor cantidad
de cosas, y de esa manera automatizarlas.
Pensá en acciones que hace veinte años se hacían manualmente y hoy en día se en-
cargan las computadoras. Acá te ponemos algunas ideas como punto de partida:

• Manejo de bases de datos


• Almacenamiento y manejo de archivos y expedientes

¿Existe alguna actividad tediosa que te gustaría que estuviese automatizada, es de-
cir, que se hiciese sola? En el siguiente espacio podés poner las que se te ocurran.
Ya pusimos tres para inspirarte.

• Pagar las cuentas y hacer transferencias (si no te gusta el débito automático)


• Borrar fotos y otros archivos para liberar espacio del celular
• Sacar turnos

La programación permite facilitar y automatizar procesos. Lamentablemente, es muy


frecuente el prejuicio de pensarla como un campo altamente sofisticado y exclusivo,
y no como una habilidad sumamente creativa y útil (y frecuentemente desafiante),
con la que cualquiera puede experimentar, siempre que cuente con acceso a una
computadora y con tiempo disponible.

Así imaginamos a los y las programadoras


TALLERES PAÍS DIGITAL | Animate a Programar

ABC DE LA PROGRAMACIÓN

¿Qué idioma hablan las computadoras? Cuando hacemos click, tipeamos algo, o de
cualquier forma insertamos información en la computadora (ya sea programando
o usando cualquier aplicación), esta se “convierte” en señales electrónicas (electri-
cidad muy controlada e intermitente). De igual forma, cuando la computadora nos
proporciona alguna información, esta se da a través de señales eléctricas que se
traducen a las distintas manifestaciones visuales a las que estamos acostumbrados
(números, letras e imágenes). Así que, en cierta forma, el lenguaje de las computa-
doras es la electricidad: el procesador (la computadora, propiamente) recibe y envía
señales eléctricas a los otros componentes. De manera muy simplificada, podemos
decir que esta traducción (de información a electricidad y viceversa), se hace me-
diante el código binario, también llamado código o lenguaje máquina, el cual es bas-
tante parecido a otros códigos como el código morse, usado por el telégrafo.
Así como en el código morse las señales de luz o de sonido se traducen como pun-
tos o rayas según su duración -y los puntos y las rayas se pueden combinar para
expresar cualquier mensaje-, en el código binario las señales eléctricas se traducen
como 0 y 1, dependiendo de si son de 0 volts o de 5 volts; de esta forma, con 0 y 1
se puede codificar casi cualquier cosa: por ejemplo, la letra A en código binario es
01000001. Aunque parezca mentira, a las primeras computadoras, para ser usadas
o programadas, se les debía ingresar lenguaje máquina, que era un proceso suma-
mente tedioso y engorroso; sin embargo, a lo largo del siglo XX se trabajó en lograr
mayores grados de abstracción. Hoy en día, la mayoría de las aplicaciones ofrecen a
la persona usuaria interfaces bastantes amables que permiten que no se entere de
TALLERES PAÍS DIGITAL | Animate a Programar

las intrincadas codificaciones que están sucediendo. Y es que, cuando se ha insta-


lado el programa en cuestión, seguramente primero se habrá descargado un archivo
de extensión “.exe”, que le habrá dado a la máquina la traducción en binario de todas
las funcionalidades y herramientas que tendrá el programa.

CODIFICACIÓN BINARIA ASCII


4

Traducción a código binario de todos los caracteres usados en el idioma inglés (esta tabla no in-
cluye ñ ni letras acentuadas)

Quien quiera programar tiene a su disposición los llamados “lenguajes de alto nivel”,
como Python, Javascript y casi todos los que conocemos hoy en día. Estos usan
comandos de gran sofisticación en lenguaje humano (casi siempre en inglés), que
permiten en muchas menos líneas y de manera un poco más intuitiva darle coman-
dos bastante complejos a la computadora. Ella misma es la que se encargará de
decodificarlos hasta lenguaje máquina, mediante intérpretes o compiladores. Si bien
todos los lenguajes de alto nivel tienen un alto grado de abstracción, existen aque-
llos que son un poco menos abstractos que otros. Java y C, por ejemplo, son menos
abstractos que Python y Javascript.

Lógicas de la programación
¿De qué son capaces las computadoras? A pesar de que las computadoras cumplen
muchas funciones, las computadoras pueden, en esencia, hacer muy pocas cosas.
• Pueden almacenar números y palabras (valores) y grupos de valores.
• Pueden sumar, restar, multiplicar, dividir, etc. (operaciones matemáticas).
• Pueden comparar valores y determinar en qué se parecen y en qué son distintos
(operaciones lógicas).
• Pueden repetir de manera constante y regular una serie de acciones, tanto ilimita-
damente como por una cantidad determinada de veces.
TALLERES PAÍS DIGITAL | Animate a Programar

Una computadora común puede hacer todo esto a una impresionante velocidad de
100 millones de operaciones por segundo. Es justamente en la velocidad de proce-
samiento donde reside la magia de las computadoras. Al combinar de manera crea-
tiva operaciones matemáticas y lógicas como las anteriormente mencionadas a se-
mejante velocidad, se logra hacer todo aquello que hacemos con las computadoras.

Considerando todo lo visto hasta el momento, podríamos definir la programa- 5


ción como la acción de idear y ejecutar una secuencia de instrucciones para
una computadora, partiendo de operaciones que pueda realizar y en un lengua-
je que la misma pueda entender.

Aunque los lenguajes de programación se han vuelto cada vez más accesibles, aún
son lenguajes “computadoriles”, por lo que el desafío más grande para quien progra-
ma sigue siendo el de “ponerse en el lugar de la computadora”: pensar secuencias
con comandos lógicos o matemáticos (también llamados algoritmos) que la compu-
tadora pueda resolver. Por suerte, hay varios procedimientos que ya están estandari-
zados y que atraviesan todos los lenguajes de programación. Estos son:

• El uso de variables
• El uso de condicionales
• El uso de ciclos o bucles
• El uso de funciones
• El uso de listas y conjuntos de datos

Para entenderlos, partamos de un escenario.

Supongamos que queremos hacer una


nube de palabras en base a un texto,
donde el tamaño de cada palabra varie
según la frecuencia con la que aparece.
Para ello, debemos empezar por crear un
programa que pueda revisar el texto en
cuestión y contar la cantidad de veces
que aparece cada palabra.
TALLERES PAÍS DIGITAL | Animate a Programar

Para semejante proyecto se requeriría un algoritmo así:

Este ejemplo usa dos bucles: funciones y conjuntos de datos. Veremos en qué con-
siste cada uno, y cómo se traducirían al lenguaje Python.

Bucles (también llamados ciclos, interacciones o loops)


Al insertar un bucle en un programa, le estamos indicando a la computadora que
todas las funciones que se encuentran dentro de él se deben repetir. En nuestro al-
goritmo, hemos usado dos bucles combinados que le permitirán al programa revisar
cada palabra de cada línea y proceder así para todas las líneas; es decir, repetir la
misma acción para cada palabra y para cada línea. Aunque parezca complicado o
antiintuitivo segmentar tanto (en oposición a simplemente hacer que la computa-
dora revise todas las palabras del texto), la segmentación permite que el programa
sea mucho más eficiente, ya que la computadora no debe almacenar el texto entero,
sino una línea a la vez. Sorprendentemente, de esta forma correrá mucho más rápido
(casi instantáneamente). Los bucles son entonces muy útiles y los veremos en casi
todos los programas.
TALLERES PAÍS DIGITAL | Animate a Programar

Si traducimos nuestro algoritmo a Python, se verá así (hemos subrayado en amarillo


los bucles):

En Python, para insertar un bucle, se recurre a las palabras claves for o while. En el
ejemplo que hemos desarrollado, usamos dos bucles for, respetando la sintaxis de
Python, que indica que las funciones dentro de un bucle (es decir, lo que venga des-
pués de los dos puntos), deben tener más sangría.

Funciones (también llamadas métodos, procedimientos y, en oca-


siones, primitivas)
Las funciones son los comandos puntuales que empleamos en nuestro programa.
Estas pueden o bien ya ser parte del lenguaje de programación, o bien las podemos
crear. Python ha tenido un gran desarrollo de funciones destinadas al análisis de
textos y datos, por lo que todas las acciones que habíamos pensado en nuestro
algoritmo tienen su función correspondiente: por ejemplo, para abrir el documento,
podemos sencillamente usar la función open(), y para dividir las líneas en palabras,
podemos usar el método split(). Todo esto, como se mencionó anteriormente, respe-
tando la sintaxis de Python.
TALLERES PAÍS DIGITAL | Animate a Programar

Conjuntos de datos: listas y diccionarios


Para entender lo que son las listas y los diccionarios, necesitamos primero entender
qué son las variables. Como vimos anteriormente, la computadora es capaz de alma-
cenar valores numéricos o alfabéticos. Para que pueda hacer esto, se le debe poner
un nombre a dicho valor: este es la variable.
8

Si pensaste 500, estás en lo correcto. La computadora almacenó ese valor bajo el


nombre de x, la variable. Aunque nunca hayas escuchado hablar de variables, si algu-
na vez usaste una computadora, esta lógica no te va a resultar ajena: en las compu-
tadoras, guardar algo (un archivo, una foto, etc.), siempre implica nombrar ese algo.
En los programas, frecuentemente sucederá que el valor de la variable cambiará, por
eso justamente se la llama variable. Digamos, por ejemplo, que queremos progra-
mar un videojuego donde se vayan obteniendo puntos y que al llegar a 10 se gane:
la variable puntaje que almacenará los puntos del jugador primero valdrá 0, pero se
irá modificando a lo largo del juego. Cuando el puntaje llegue a 10, será un indicador
para finalizar el juego.
Ahora, ¿qué sucede si no necesito almacenar un valor, sino un conjunto de valores?
Por ejemplo en el caso de nuestro proyecto, donde nos interesa que el programa
vaya de alguna forma almacenando todas las palabras que haya en el texto y la
frecuencia en la que estas aparecen. Casi todos los lenguajes de programación per-
miten la creación de dichos conjuntos, y en cada lenguaje se los llama de distintas
maneras; en Python, se llaman listas y diccionarios. Para crearlos, debés asignarles
un nombre y usar la función list() o dict(), tal como hicimos en la tercera línea de
nuestro programa.

Las listas y los diccionarios actúan de manera similar a las variables, en el sentido
de que así como en el ejemplo anterior al invocar X obteníamos 500 (el valor que
designaba), si invocamos el nombre del diccionario (en este caso “frecuencias”), ob-
tendremos todos los elementos que están en su interior. Lo que resulta un poco más
complicado es sumar elementos o consultar por algún elemento individual.
TALLERES PAÍS DIGITAL | Animate a Programar

Manipular diccionarios
Un diccionario tiene la siguiente estructura:
notasdealumnos={Luisa: 5, Inti: 10, Carolina: 6, Nahuel: 8}
Es decir, consiste en una sucesión de pares de valores. Es como si la computado-
ra hubiese almacenado muchas variables y sus respectivos valores. Para nuestro 9
proyecto, semejante estructura es altamente conveniente, ya que nos permitirá al-
macenar las palabras del texto asociadas a la frecuencia con la que aparecen. Para
sumar un ítem a un diccionario, se usa el siguiente formato: nombredeldicciona-
rio[item]=valorquecorresponderalitem. Vemos esa operación en la penúltima línea
de nuestro programa:

Nuestro programa buscará si ese ítem ya existe en el diccionario y qué valor tiene,
mediante la función get(). De modo que si el ítem ya existía, simplemente se le suma
una unidad al valor.

Condicionales
Este proyecto no usa condicionales, pero es algo que veremos con frecuencia en los
programas. Al insertar un condicional, le estamos indicando a la computadora que
para llevar adelante determinada acción, primero debe asegurarse que se esté cum-
pliendo un requisito o condición.
TALLERES PAÍS DIGITAL | Animate a Programar

EJECUTAR LOS PROGRAMAS


Técnicamente, un programa puede ser escrito en cualquier editor de texto, como un
bloc de notas, por ejemplo. Sin embargo, existen editores de texto específicos para
lenguajes de programación, que podrán ayudarte a identificar si estás cometiendo
cualquier error de sintaxis. Algunos de los más usados son: Atom, Sublime y Visual
Studio Code; todos son gratuitos y deben ser descargados. Si bien en ellos podrás
10
escribir en cualquier lenguaje de programación, es importante que al abrir el editor
guardes tu archivo con la extensión del lenguaje que vas a usar, ya que de lo con-
trario el editor no sabrá qué corregir. Como el programa que hemos desarrollado lo
tenemos escrito en Python, podemos guardar el archivo como “frecuencias.py”. Es
necesario que este archivo esté guardado en la misma carpeta donde se encuentre
el documento que debe abrir el programa (en nuestro caso, “muestra.txt”).

Nuestro programa en el editor Atom. Como el archivo es un archivo py, el editor es capaz de señalar
funciones y palabras claves.

Trabajar en un editor de texto sólo nos permitirá tener un script, es decir, un documen-
to donde esté escrito el programa, pero no nos permitirá ejecutarlo. Cada lenguaje de
programación tiene sus requisitos para ser ejecutado. Python, por ejemplo, requiere
que se descargue el paquete de Python desde la página web; una vez hecho esto, po-
demos ejecutar cualquier programa de Python desde la terminal de control de nues-
tra computadora, también llamada “Símbolo del sistema” o “Command Prompt”. En
la barra de búsqueda, simplemente tipeamos “Símbolo del sistema” y lo abrimos.
TALLERES PAÍS DIGITAL | Animate a Programar

11

“Símbolo del sistema” en el menú

Vista del “Símbolo del sistema”


TALLERES PAÍS DIGITAL | Animate a Programar

Al abrir la terminal, lo primero que debemos hacer es llegar a la carpeta donde tene-
mos los documentos del proyecto. En nuestro caso, nuestro script y el documento
con el texto están en una carpeta llamada “frecuencias”, dentro de la carpeta Desk-
top (Escritorio en las máquinas en español). Entonces, primero abrimos la carpeta
“Desktop”, tipeando cd Desktop. Si todo está en orden, obtendremos una nueva línea,
como se ve en la imagen.
12

Ahora abrimos la carpeta frecuencias, tipeando “cd frecuencias”. Si todo está en or-
den, nuevamente obtendremos una nueva línea así:
TALLERES PAÍS DIGITAL | Animate a Programar

Ahora que ya estamos dentro de la carpeta con todos nuestros documentos, esta-
mos listos para la magia. Debemos tipear “python frecuencias.py”: con ese comando
le estamos indicando que se debe usar Python para ejecutar el script en cuestión. Si
todo está en orden, obtendremos un diccionario con todas las palabras del texto y su
respectiva frecuencia, que se verá así:

13

Para mejorar este programa, se podría hacer que las palabras aparecieran por orden
de frecuencia. También podríamos hacer que Python armara un documento aparte
con las frecuencias. Todo esto sería una segunda parte del proyecto.

¿Querés probar? Acá te dejamos un link a una carpeta donde conseguirás el


script (frecuencias.py) y el texto (muestra.txt) que usamos. Recordá:

• Descargá Python de la página web.


• Descargá el script y el texto, y guardalos en una misma carpeta.
• Entrá al “Símbolo del sistema”, ingresá a la carpeta donde tengas los documen-
tos usando el comando “cd”, y ejecutá el script usando el comando “python”.

Otros lenguajes de programación tienen otros requerimientos para ejecutar. Javas-


cript, por ejemplo, trabaja estrechamente con html.
TALLERES PAÍS DIGITAL | Animate a Programar

TODO PUEDE FALLAR


Puede suceder que al ejecutar el programa obtengas un mensaje de error. Lo primero
que vas a pensar es que hay algo terriblemente mal con tu programa, pero la gran
mayoría de las veces será un simple error de sintaxis, como no haber dejado sangría
después de una declaración de bucle o condicional en el caso de Python. General-
mente, Python te dará alguna información de en qué línea sucedió el error y de qué
14
tipo es. En la terminal verás algo como esto:

Nos indica que el problema estuvo en la line 1, y que el problema es que name mues-
tra is not defined, esto es una manera sofisticada de decir que no tiene ni idea de qué
es muestra.txt. Esto se debe a que en ese intento cometimos un error de sintaxis:
nos olvidamos de poner muestra.txt entre comillas, que es lo que corresponde en
Python cuando mencionamos documentos.
TALLERES PAÍS DIGITAL | Animate a Programar

RECURSOS PARA APRENDER


Todo lo que vimos en el día de hoy podés encontrarlo en el curso de acceso gratuito
“python para todos” de Charles Severance. Actualmente, en español sólo se encuentra
en formato pdf. Este material es bastante accesible, está muy bien explicado y permite
tener un sólido entendimiento del funcionamiento de Python para poder experimentar
más libremente o avanzar hacia campos de aplicación específicos que puedan ser
15
de nuestro interés. En caso de que te interesen otros lenguajes de programación, no
es una mala idea empezar por Python, ya que conocer en profundidad un lenguaje de
programación después facilita muchísimo el camino para aprender otros.

RECURSOS PARA EXPERIMENTAR


Librerías
Con todos los lenguajes de programación tendremos además diferentes librerías.
Las mismas son paquetes de extra funciones para fines específicos. Generalmente,
las librerías tienen wikis o páginas web donde se explica con bastante detalle qué
funciones trae y cómo se usan. Muchas librerías también ofrecen ejemplos. Aunque
es recomendable entender el funcionamiento del lenguaje primero, se puede probar
con estos ejemplos, copiándolos y pegándolos.

Algunas librerías de python

pandas y numpy: para análisis de datos.

cxxt: para operar en billeteras de criptomonedas.

pygames: para la creación de videojuegos.

beautifulsoup: para emprolijar textos.

talib: análisis técnico para trading financiero.

GPIO: Para manipular un microcontrolador Raspberry pi. En otras palabras, para


proyectos de robótica.

tensorflow: inteligencia artificial.

opencv: visión artificial.

En Python, para sumar nuevas librerías, debemos ir nuevamente al “Símbolo del


sistema” y usar el comando “pip install”; luego, el nombre de la librería que quere-
mos instalar.
TALLERES PAÍS DIGITAL | Animate a Programar

Repositorios
El repositorio de programación más difundido es Github. Muchísimos programado-
res y programadoras comparten ahí sus proyectos. Muchas librerías también eligen
subir a Github toda su documentación. Casi todos los repositorios de Github tiene
una sección llamada README.md, donde encontrarás información general del repo-
sitorio y cómo usarlo.
16

Sección README.md del repositorio de Github de la librería ccxt.

Foros
Es común que los programas no salgan como esperamos y que haya que intentarlo
varias veces. Le sucede tanto a profesionales como a quienes lo hacen por pasa-
tiempo. Existen foros como “StackOverflow”, donde la gente postea el código con el
problema que está teniendo y la comunidad le da sugerencias. También existen cada
vez más grupos de discord y otras comunidades. Una vez que empieces a probar
cosas programando y tengas algún inconveniente, basta con googlear las alertas de
error y te va a sorprender cuántos tuvieron el mismo problema que vos, y lo útil que
te pueden resultar las devoluciones que hay.

APIs
Debido al auge de la programación, más y más plataformas y servicios online ofre-
cen APIS (en español, interfaz de programación de aplicaciones). Una API permite
que un programa acceda a la plataforma en cuestión, y opere o extraiga datos de ella.
Gracias a la API que ofrece Telegram podemos, por ejemplo, crear un programa que
envíe mensajes de Telegram. O gracias a la que ofrecen algunas billeteras virtuales
de criptomonedas, podemos crear un programa que compre y venda criptomonedas
de manera automática, y así sucesivamente. Con las APIs se amplían muchísimo
las posibilidades. Cada plataforma generalmente tendrá documentación de su API,
donde se darán detalles de cómo usarla. También se podrán buscar ejemplos de
programas que ya la hayan usado.
Talleres
País
Digital

También podría gustarte