Parte 2: Programación#

Concepto clave

Programar es dar instrucciones precisas y ordenadas a una computadora para resolver un problema o automatizar una tarea.

Programar no es solo escribir código. Antes de escribir cualquier línea, es necesario entender qué se quiere resolver y cómo se podría resolver.

Flujo general de la programación#

        flowchart TD
  A["Problema o necesidad"] --> B["Idea de solución"]
  B --> C["Algoritmo"]
  C --> D["Código"]
  D --> E["Ejecución del programa"]
  E --> F["Resultado útil"]
    

Ejemplo

Si quieres calcular el promedio de calificaciones de tus estudiantes, necesitas:

  • Recibir los datos (números)

  • Sumar y dividir

  • Mostrar el resultado

Eso se convierte en un programa al escribirlo en un lenguaje que la computadora entienda, como Python.

Pesudocódigo#

Antes de escribir código real, es común planear la lógica utilizando pseudocódigo: una forma de describir un algoritmo paso a paso usando lenguaje natural estructurado, sin seguir la sintaxis estricta de un lenguaje de programación.

El pseudocódigo:

  • Es legible por humanos

  • No se ejecuta en computadora

  • Permite enfocarse en la lógica antes de preocuparse por detalles técnicos

Su escritura es libre y puede estar en español o cualquier idioma que se desee.

Concepto crítico

El pseudocódigo debe ser claro, conciso, fácil de leer y entender.

Si el pseudocódigo es difícil de leer o entender, debe reescribirse.

Revisa el ejemplo en el caso demostrativo.

Caso demostrativo#

Un alumno del doctorado en ciencias de la salud realiza un estudio de secuenciación masiva que produce un compendio de 300 diferentes archivos de excel con datos sobre las variantes genéticas analizadas por cada paciente. Problema, debe unir todos los archivos en una sola base de datos. Al comenzar a trabajar el alumno tarda una hora en procesar los primeros 30 archivos y calcula que le tomará 10 horas terminar de procesarlos.

Flujograma:

        flowchart LR
  A[Por cada archivo] --> B[Extraer datos]
  B --> C[Copiar a base completa]
    

Pseudocódigo:

INICIAR
  OBTENER lista de archivos Excel en la carpeta
  PARA CADA archivo EN la lista:
    LEER archivo
    UNIR los datos en una sola base
  FIN
  GUARDAR base completa en un nuevo archivo Excel
TERMINAR

Programa implementado:

import pandas as pd # librería para datos tabulados
import glob # librería para encontrar y manejar archivos 

# Obtener todos los archivos .xlsx en la carpeta actual
archivos = glob.glob("*.xlsx")

# Leer y combinar todos los archivos
df_completo = pd.concat([ # concat junta cada archivo en una sola tabla
    pd.read_excel(archivo).assign(archivo_origen=archivo)
    for archivo in archivos
], ignore_index=True)

# Guardar el resultado en un solo archivo
df_completo.to_excel("base_completa.xlsx", index=False) # escribe la nueva tabla a un archivo de excel

El alumno tomó 30min para diseñar el programa con prueba y error y el programa se ejecutó en menos de 1 minuto.

Práctica personal#

Escribe el pseudocódigo para preparar el sandwich de cacahuate del tema anterior.