Programar_es_solo_para_genios = FALSE

Programar_es_solo_para_genios = FALSE

"Programar es muy difícil!", "No es para cualquiera". Seguramente habrás escuchado alguna forma de esta idea alguna vez, sin embargo, es una idea que tiene poco de cierto.

Este articulo es parte del material de apoyo que escribí para el taller "Introducción a la programación - Nivel 1 Python" de Academia Dimpera.

Si entendemos programar como el ejercicio de crear algoritmos y que un algoritmo es una serie ordenada de instrucciones para lograr un objetivo entonces lo cierto es que todos y cada uno de nosotros, cada día, llevamos a cabo una multitud de algoritmos en nuestras tareas cotidianas. Es decir, ponemos en practica nuestro pensamiento computacional permitiéndonos planificar lo que vamos a hacer para luego recorrer esa planificación y así lograr nuestros objetivos. Lo hacemos con cosas tan sencillas como lavarnos los dientes, preparar el desayuno, vestirnos, etc.

Un ejemplo podría ser "calentar el cafe al microondas". Para este objetivo podríamos dise?ar el algoritmo a continuación:

1-Verter el cafe frio en la taza

2-Poner la taza dentro del microondas y presionar el botón de inicio

3-Esperar 30 segundos y sacar la taza del microondas.

Podríamos ejecutar esos pasos en otro orden y obtener el resultado deseado?

Si empezara por el paso 2, siguiera por el 3 y luego ejecutara el paso 1 y terminaría con una taza muy caliente que contiene cafe frio. Entonces queda claro que el orden es importante.

Ahora avancemos un paso mas y analicemos esto con mayor detalle:

Si nos detenemos a pensarlo, cada uno de estos pasos o sub-procesos, no es realmente una instrucción elemental, sino que son mas bien instrucciones compuestas. Es decir, instrucciones que engloban otras instrucciones de menor jerarquía o tama?o.

Al proceso de obtener instrucciones elementales a partir una instrucción compuesta lo llamamos descomposición y es un mecanismo que se emplea habitualmente para convertir problemas grandes en problemas mas peque?os volviéndolos más fácil de resolver.

Pongamos en practica este método para hallar las instrucciones elementales dentro del sub-proceso #1

Verter el cafe frio en la taza

  • Tomar una taza apropiada de la alacena
  • Depositar la taza en un lugar apropiado para luego llenarla con cafe
  • Sacar la jarra de cafe frio de la heladera
  • Verter el cafe frio en la taza
  • Guardar la jarra de cafe frio en la heladera si todavía tiene cafe y si ya no lo tiene entonces dejarla en el fregadero.

Como se darán cuenta, si bien descompusimos el proceso 1 en 5 sub-procesos, cada uno de ellos son también instrucciones compuestas, con lo cual podríamos continuar con esta técnica hasta finalmente llegar al nivel de instrucciones elementales.

? Notaste que supusimos que estamos en la cocina, que existe una jarra con cafe frio en la heladera y que no hay una taza preparada para usar sobre la mesada de la cocina? Estas "suposiciones" son el contexto de ejecución de nuestro algoritmo!

Pero alto ahi, hasta el momento nada de esto parece tener mucho que ver con lo que sabemos que hacen los programadores que es ver puros códigos en una pantalla como si estuvieran en una escena sacada de la película Matrix. O si? El motivo es que:

Hasta el momento hemos hablado sobre que es programar pero no hemos mencionado nada sobre qué es codificar.

Mientras que programar esta mas relacionado con encontrar una estrategia para resolver un problema podemos decir que Codificar es la practica de traducir un determinado mensaje de un sistema a otro diferente. Por ejemplo, cuando tenemos emociones (sistema #1) y queremos ponerlas en palabras (sistema #2). O bien, si además de ponerlas en palabras en castellano debemos traducirlas inglés (sistema #3) para comunicárselas a otra persona.

Cuando queremos darle instrucciones a un ordenador, muy similar a como sucede con este ejemplo con el ingles y el castellano, debemos hacerlo en un idioma que el ordenador comprenda. Considerando que el ordenador realmente solo entiende código binario compuesto por ceros y unos se hizo necesario inventar algún tipo de intermediario que haga de puente entre el lenguaje humano y el código maquina. La herramienta que tenemos para comunicarnos con este intermediario que nos permite enviarle instrucciones al ordenador, son los lenguajes de programación.

Por el momento llamaremos a este "intermediario" compilador o intérprete.

Estos, se encargan de recibir el código fuente de nuestro algoritmo y re-codificarlo de modo que la maquina pueda ejecutar nuestras instrucciones. Algunos lenguajes de programación emplean un compilador, otros emplean un interprete. Python es uno de estos últimos.

La codificación es probablemente el factor culpable de que exista esta idea de lo difícil que es programar ya que para el ojo no entrenado, un algoritmo codificado en algunos lenguajes de programación puede parecer algo salido de una nave espacial alienígena. Volveremos sobre esto mas adelante en un próximo articulo!

Entre los lenguajes mas parecido al lenguaje humano tenemos a Python. Veamos un ejemplo donde Python nos ayude a tomar nota de cuantas figuritas tienen entre dos amigos Pepe y Marcelo y cuantas figuritas les falta para completar un album de figuritas entre ambos si entre ellos no tienen ninguna repetida.

El problema a resolver es muy simple y el código también es muy simple!

figuritas_pepe nos permite almacenar la información de las figuritas que tiene Pepe.

figuritas_marcelo, las de Marcelo.

total_figuritas_album nos permite almacenar la información de cuántas figuritas se necesitan para completar el álbum.

Piensa en estos segmentos de texto en color celeste como si fueran "cajas" dentro de las cuales podemos guardar información. Ahora bien, en lugar de cajas llamémoslas por su nombre: "variables".

Las variables son "cajas" que almacenan información que puede ser modificada a lo largo de la ejecución de nuestro algoritmo.

Veamos qué significa esto:

Supongamos que Pepe, que inicialmente tiene 250 figuritas, decide regalarle 50 figuritas a otro amigo que las necesita justo mientras nuestro código ya se está ejecutando. Entonces:

figuritas_pepe = 250 
figuritas_pepe = figuritas_pepe - 50
figuritas_pepe = 200        

De esta manera actualizamos el valor almacenado en la variable figuritas_pepe.

Por otra parte, ?el total_de_figuritas_album es algo que pueda variar durante la ejecución del código o es siempre la misma cantidad de figuritas las que se necesitan para llenar el álbum? Acertaste, es siempre la misma.

A las "cajas" que deben almacenar información que no debe variar durante la ejecución de nuestro código las llamamos "constantes".

Python destaca por su simplicidad y legibilidad, y esto lo convierte en una excelente opción para principiantes. Sin embargo a pesar de su apariencia amigable Python también es un lenguaje poderoso y muy versátil que se utiliza en una amplia variedad de aplicaciones, desde desarrollo web hasta proyectos de inteligencia artificial.

Si te animas a probar escribir código python podes usar un interprete online sin necesidad de instalar nada en tu computadora, tal como este: https://www.programiz.com/python-programming/online-compiler/

A continuación vamos a ver algunos ejemplos que puedes copiar y pegar en el interprete online de python. Estas son algunas instrucciones que vas a encontrar en el código:

  • print: imprimer en pantalla
  • input: captura lo que ingreses por teclado
  • def: define una función
  • return: devuelve el resultado de la función

Si alguno de estos algoritmos parece muy complicado, sigue leyendo y vas a encontrar el mismo algoritmo en su versión pseudocódigo en espa?ol mas abajo en este mismo articulo!

# Algoritmo 1
# Definimos las variables
a = 5
b = 10

# Sumamos las variables
suma = a + b

# Imprimimos el resultado
print("La suma de a y b es:", suma)        
# Algoritmo 2
# Pedimos el ingreso por teclado de dos variables

# Solicitar el primer número
num1 = float(input("Ingrese un número cualquiera: "))

# Solicitar el segundo número
num2 = float(input("Ahora ingrese un segundo número cualquiera: "))

# Hacemos la operación de suma
suma = num1 + num2

# Imprimimos en pantalla el resultado de la operación en un mismo renglón
print("El resultado de la suma es:", suma)
        
# Algoritmo 3
# Definimos la función para calcular el área de un triángulo
def calcular_area_triangulo(base, altura):
    areaT = (base * altura) / 2
    return areaT

# Definimos la función para calcular el área de un rectángulo
def calcular_area_rectangulo(base, altura):
    areaR = base * altura
    return areaR

# Pedimos el ingreso por teclado de dos variables

# Solicitar la longitud del lado menor
num1 = float(input("Ingrese la longitud del lado menor: "))

# Solicitar la longitud del lado mayor
num2 = float(input("Ingrese la longitud del lado mayor: "))

# Llamamos a la función apropiada para calcular el área del triángulo
areaT = calcular_area_triangulo(num1, num2)

# Escribimos el resultado de la función
print("El área del triángulo es:", areaT)

# Llamamos a la función apropiada para calcular el área del rectángulo
areaR = calcular_area_rectangulo(num1, num2)

# Escribimos el resultado de la función
print("El área del rectángulo es:", areaR)
        
# Algoritmo 4
# Definimos la función para saludar
def saludar(nombre):
    print("?Hola, ", nombre, "!")

# Inicializamos la variable nombre
nombre = "Alicia"

# Llamamos a la función Saludar con el argumento nombre
saludar(nombre)        

PSEINT

Para los hispano parlantes que recién están comenzando, una opción para acercarse a la programación aún mas simple que python por la barrera del idioma puede ser la herramienta Pseint que es un IDE para pseudocódigo en castellano.

Un IDE es una aplicación de software que proporciona herramientas integrales para el desarrollo de software. Estas herramientas suelen incluir un editor de código, herramientas de compilación, depuración, pruebas y otras utilidades que facilitan el desarrollo de software

Pseudocódigo no es realmente un lenguaje de programación por motivos que no vale la pena mencionar en este punto pero para dar los primeros pasos y aprender sobre cuestiones claves es muy util. A continuación voy a dejar algunos algoritmos en Pseint para que quienes quieran probarlo tengan un punto de partida:

Link de descarga: https://pseint.sourceforge.net/index.php?page=descargas.php

Para comenzar a utilizarlo solo necesitas instalarlo, escribir código y presionar la flecha verde para ejecutar el código tal como se ve en esta imagen:

Algunas de las instrucciones elementales que necesitas conocer para comenzar a utilizar Pseint son tan simples como:

  • Leer var: Captura lo que ingreses por teclado dentro de una variable "var"
  • Escribir var: Imprime en pantalla el contenido de una variable "var"

Algunos ejemplos en pseudocódigo para Pseint:

// #1 - Ejemplo de operaciones con variables 

Algoritmo sumaVariables
	//definimos las variables	
	num1 = 3;
	num2 = 4;
	
//hacemos la operación
	suma = num1 + num2;
	
// imprimimos en pantalla el resultado de la operación en dos renglones
		Escribir "El resultado de la suma es "
		Escribir suma		
FinAlgoritmo        
// #2 - Mismo ejemplo ingresando datos por teclado

Algoritmo sumaVariables
// pedimos el ingreso por teclado de dos variables
	Escribir "Ingrese el numero cualquiera"
	Leer num1;
	Escribir "Ahora ingrese un segundo numero cualquiera"
	Leer num2;
	
//hacemos la operación
	suma = num1 + num2;
	
// imprimimos en pantalla el resultado de la operación en un mismo renglo2n
	Escribir "El resultado de la suma es: " suma
FinAlgoritmo        
// #3 - Ejemplo de uso de funciones / subprocesos para calcular la superficie de un triangulo o un rectangulo

Algoritmo calculoSuperficies
// pedimos el ingreso por teclado de dos variables
	Escribir "Ingrese la longitud del lado menor"
	Leer num1;
	Escribir "Ingrese longitud del lado mayor"
	Leer num2;

//llamo al a funcion apropiada
	areaT = CalcularAreaTriangulo(num1, num2);
// escribo el resultado de la funcion
	Escribir areaT

//ahora repetimos el procedimiento para otra funcion
	areaT = CalcularAreaRectangulo(num1, num2);
	Escribir areaR

FinAlgoritmo


//a continuación se definen las funciones
Funcion areaT <- CalcularAreaTriangulo(base, altura)
    areaT <- (base * altura) / 2
FinFuncion

Funcion areaR <- CalcularAreaRectangulo(base, altura)
    areaR <- (base * altura) / 2
FinFuncion        
// #4 -Otro ejemplo de uso de funciones / subprocesos en Pseint

Algoritmo ejFunciones
	nombre = "Alicia"
    Saludar(nombre)
FinAlgoritmo

SubProceso Saludar(nombre)
	Escribir "?Hola, ", nombre, "!"
FinSubProceso        

Si llegaste hasta este punto ya diste el primer paso en el camino a aprender a programar y codificar en python!

Takeaways:

  • Descomposición
  • Programar versus codificar
  • Variables y constantes
  • IDE
  • pseudocódigo
  • Pseint
  • print / input / float / def / return

Muchas gracias Alejandro!!!!. Super claras tus clases, con ejemplos muy didácticos que hacen que todo parezca más fácil!!!. Muchas gracias.

回复
Pablo Lopez Chiapero

Analista Funcional | Analista Contable | Ingeniero de datos |Analista de Datos

9 个月

Muy didáctico

Muchas gracias por la clase?

Daniela Silvana Tochi

Frontend Developer in Training | HTML, CSS, JavaScript | Exploring React, Blockchain, ICP, Motoko

9 个月

Hola Alejandro! Estuvo muy buena la clase! La recomiendo ?? Nos vemos el miércoles ??

Liria Beatriz Vega

Dise?o Gráfico/ UX_UI / Ilustración / Prof. Pintura y Tec. Encuadernación / Dise?o de Indumentaria

9 个月

Muy buena la clase del sábado, muy claro y muy didáctico!

要查看或添加评论,请登录

Alejandro Loredo的更多文章