1 / 1
Conceptos de IA
← Curso

Módulo 1 Fundamentos de IA y Python De la idea al algoritmo

Oscar Iván Vargas Pineda Docente
Punto de partida

¿Qué es la Inteligencia Artificial?

Inteligencia Artificial
Machine Learning
Deep Learning
IA
Generativa
La IA es software que aprende de datos para realizar tareas que antes requerían inteligencia humana: reconocer, predecir, decidir y generar.

1 · Datos

Miles de ejemplos

2 · Aprende

Detecta patrones

3 · Actúa

Predice y genera

🖼 Reconoce imágenes🌐 Traduce🎯 Recomienda✍ Genera texto y código
Definiciones sin tecnicismos

Cuatro palabras que escucharás todo el curso

Toca cada tarjeta para profundizar.

Concepto base

Inteligencia Artificial

Sistemas que realizan tareas que asociamos con la inteligencia humana: reconocer, predecir, decidir.

Es el campo grande que contiene todo lo demás. No es magia ni un cerebro: es software que encuentra patrones en datos.
Toca para ver más
Subcampo

Machine Learning

La máquina aprende de ejemplos en lugar de seguir reglas escritas a mano una por una.

Le muestras miles de casos y el modelo deduce la regla. Es el corazón de la ciencia de datos predictiva.
Toca para ver más
Lo que usaremos

IA Generativa

Modelos que crean contenido nuevo: texto, imágenes y, clave para nosotros, código.

A diferencia de un buscador, no copia: genera una respuesta original prediciendo qué viene a continuación, pieza por pieza.
Toca para ver más
El motor

LLM

Large Language Model: entrenado con enormes cantidades de texto para entender y generar lenguaje.

ChatGPT, Claude o Gemini son LLM. Les hablas en español y responden con explicaciones o con Python listo para ejecutar.
Toca para ver más
Cómo llegamos hasta aquí

Una breve historia

Pasa el cursor por cada hito.

1956
Nace el término "Inteligencia Artificial" en la conferencia de Dartmouth.
1991
Se crea Python, pensado para ser legible y fácil de aprender.
2012
El deep learning revoluciona el reconocimiento de imágenes. Despega el ML moderno.
2017
Nace la arquitectura Transformer, la base de los LLM actuales.
Hoy
Cualquier persona puede programar conversando con una IA — y con agentes que además ejecutan. Aquí empiezas tú.

Lo que antes tomaba una carrera universitaria, hoy es accesible en una tarde — si sabes qué preguntar.

Bajo el capó

No escribe frases. Predice la siguiente palabra

Un LLM genera texto pieza por pieza (cada pieza se llama token). En cada paso calcula qué tan probable es cada palabra y elige. Pulsa para verlo.

👤 Pregunta del usuario ¿Cuál es la capital de Colombia?
Pulsa "Generar siguiente token" para empezar…

¿Qué estás viendo?

En cada paso el modelo propone varios candidatos con su probabilidad. Normalmente elige el más probable (resaltado) y lo añade al texto. Luego repite, ahora teniendo en cuenta lo que ya escribió.

La idea clave

No hay un guion escrito de antemano: la coherencia emerge de elegir, una y otra vez, la pieza más probable según el contexto. Así también genera código Python — y por eso a veces se equivoca: siempre hay que verificar.

Clic o para avanzar la animación

Clic o para avanzar la animación

Clic o para avanzar la animación

Clic o para avanzar la animación

Clic o para avanzar la animación

Repaso participativo

Arrastra cada término a su definición

Seis definiciones, nueve términos: tres sobran. Arrastra con el mouse o toca el término y luego la casilla.

Banco de términos
01

Es la pieza mínima en la que se parte el texto para que el modelo pueda procesarlo. Una palabra larga puede valer varias.

Suelta aquí
02

Una lista de números que ubica cada palabra como un punto en el espacio: las de significado parecido quedan cerca.

Suelta aquí
03

En cada paso el modelo calcula qué tan probable es cada candidato y elige uno para continuar el texto.

Suelta aquí
04

El archivo entrenado donde vive todo lo que aprendió. No guarda los textos originales: guarda los pesos.

Suelta aquí
05

Todo lo que el modelo puede tener a la vista en una conversación. Cuando se llena, lo más viejo se pierde.

Suelta aquí
06

La rama de la IA que crea contenido nuevo —texto, imágenes, código— en lugar de solo clasificar o predecir un número.

Suelta aquí
Colocados 0 / 6
El concepto clave

IA vs. Agente de IA

Inteligencia Artificial

Responde

Reactiva · tú ejecutas todo
Preguntas
Modelo
Respuesta
Tú ejecutas
Agente de IA

Ejecuta

Autónomo · cierra el ciclo solo
🎯
Objetivo
Percibe
Planifica
Actúa
Verifica
⌘ Terminal🗂 Archivos🌐 Navegador

En corto: la IA te responde; el agente hace el trabajo mientras tú diriges. Más adelante en este módulo instalaremos dos agentes en tu computador.

Por qué importan

Cómo transforman tu trabajo de datos

Le das
Datos crudos
Una idea
Tarea repetitiva

AGENTE

Planifica · actúa · verifica

Te devuelve
Código limpio
Gráficos y tableros
Archivos Excel
Tiempo de vuelta

Tú diriges, el agente ejecuta — y aprendes en el proceso.

El destino

¿Qué es hacer ciencia de datos?

Es la intersección de tres mundos. Ahí, justo en el centro, vive el científico de datos.

Ciencias de la
Computación
Matemáticas y
Estadística
Conocimiento
del Negocio
Ciencia
de Datos
1

Entender qué está pasando

Resumir datos, ver patrones y encontrar señales que no son obvias a simple vista.

2

Predecir lo que puede pasar

Estimar ventas, demanda, riesgo, resultados o comportamientos futuros.

3

Tomar mejores decisiones

Comparar opciones con evidencia en lugar de decidir solo por intuición.

4

Automatizar y detectar alertas

Clasificar casos, priorizar tareas y descubrir anomalías antes de que crezcan.

Python es la herramienta · la IA es el copiloto · tú eres el científico de datos.

Empieza el laboratorio

Ahora le hablamos a la IA. Bien

Abrimos un modelo conversacional y exploramos. Primero con un prompt suelto, como escribe todo el mundo. Después con las cinco piezas que lo convierten en un encargo.

1

Rol

Desde qué oficio quieres que te responda. Cambia el vocabulario, el nivel y qué considera importante.

2

Contexto

Quién eres tú, para qué lo necesitas y con qué material. Va antes de la tarea: primero encuadras, después pides.

3

Tarea

Un verbo claro y una sola cosa por pedir: explica, resume, compara, calcula, crea. Sin verbo no hay encargo.

4

Formato

Cómo quieres recibirlo: tabla, viñetas, informe, código, JSON. Si no lo dices, el modelo inventa uno.

5

Límites

Extensión, idioma, tono y lo que no debe hacer. Las restricciones son las que hacen la respuesta usable.

Prompt suelto · lo que casi todos escriben
háblame de productividad
El mismo encargo, con las cinco piezas
Actúa como analista de datos.Rol
Son 3 años de ventas de una tienda en Medellín.Contexto
Resúmelas y dime qué producto cayó.Tarea
Dame 5 viñetas y una tabla.Formato
En español, sin jerga técnica.Límites

¿Por qué ese orden?

El contexto va antes de la tarea: primero encuadras, después pides. Y como el modelo le da más peso a lo último que lee, formato y límites cierran. Si le pegas un documento o una tabla, eso va arriba de todo.

El prompt suelto sirve para explorar; el estructurado sirve para producir. Hoy usamos los dos, en cuatro ejercicios seguidos.

Ejercicio 1 de 4

Pregunta conversacional: productividad

Lanza los dos prompts en la misma conversación y compara. Después compara con tu compañero de al lado, que usó otro modelo.

1 · Prompt suelto
¿Qué es la productividad?
2 · Prompt con anatomía
Actúa como docente de economía. Soy profesional, sin formación en economía. Explícame qué es la productividad y qué tipos existen. Formato: definición en 3 líneas + tabla (tipo · qué mide · ejemplo). Máximo 250 palabras, en español y sin fórmulas.

Dónde hacerlo

ChatGPTClaudeGeminiCopilot

Qué observar

El suelto te da una enciclopedia. El segundo te da tu respuesta: al nivel que pediste, en el formato que usarás y con el largo que ibas a leer.

Ojo

Dos modelos distintos darán tipologías distintas. Eso no es un error: es la señal de que decides cuál sirve.
🎯
Meta: salir de aquí con una definición propia de productividad y sus tipos, escrita en tus palabras.
Ejercicio 2 de 4

Modo investigación: productividad en Colombia

Activa Deep Research / Investigación profunda antes de enviar. La IA navega, lee decenas de fuentes y tarda varios minutos: esto ya no es un chat, es un encargo.

Prompt de investigación
Actúa como analista de productividad. Necesito una base documentada para un informe sobre Colombia. Investiga el estado de la productividad en Colombia entre 2015 y 2025. Cubre: productividad laboral, productividad total de los factores, comparación con América Latina y la OCDE, y los 3 cuellos de botella principales. Formato: informe de 4 secciones con tablas y conclusiones accionables. Cita cada dato con su fuente oficial y enlace (DANE, Banco de la República, DNP, OCDE).

Dónde hacerlo

ChatGPTGeminiClaudePerplexity
Busca el botón de investigación / research antes de enviar: sin activarlo, es solo otra respuesta rápida.

Qué observar

Mientras trabaja, muestra qué está leyendo. Ese rastro es lo que diferencia un informe de una opinión bien redactada.

Verifica siempre

Puede citar una fuente que no dice lo que afirma. Abre al menos dos enlaces y compruébalos: esa parte es tuya, no suya.
📄
Meta: salir con un documento con fuentes citadas, listo para ser la base de un informe real.
Ejercicio 3 de 4

Una imagen para las cuatro palabras que todos confunden

Cada mesa usa una IA distinta con el mismo prompt. Al final comparamos: ¿cuál entendió la metáfora y cuál solo dibujó bonito?

Eficacia¿Lograste el objetivo? Sí o no. El costo aquí no importa.
Eficiencia¿Con cuántos recursos lo lograste? Menos recursos, más eficiencia.
EfectividadEficacia + eficiencia: el objetivo correcto, y bien hecho.
ProductividadCuánto sale por cada unidad que entra. Es una razón: se mide.
Prompt de imagen
Ilustración conceptual en 4 viñetas, estilo isométrico plano, fondo oscuro. El mismo leñador en las cuatro, cortando árboles: 1. EFICACIA — tumba el árbol, aunque quede exhausto. 2. EFICIENCIA — lo tumba en la mitad del tiempo, con motosierra. 3. EFECTIVIDAD — tumba el árbol correcto, el que el cliente pidió. 4. PRODUCTIVIDAD — un contador marca los troncos por hora. Rotula cada viñeta en español. Sin texto adicional.

Dónde hacerlo

ChatGPTGeminiCopilotIdeogram

También tiene anatomía

En imagen las piezas cambian de nombre: estilo (isométrico plano), escena (las 4 viñetas), formato (rótulos en español) y límites (sin texto adicional).

El texto es el punto débil

Casi todas escriben mal los rótulos. Si pasa, pide la imagen sin texto y pon tú las etiquetas.
🖼️
Meta: ver que un prompt de imagen se construye igual que uno de texto — y que la metáfora la pones tú.
Ejercicio 4 de 4

Pide un artefacto, no un texto

Un artefacto es una mini-aplicación que la IA escribe y ejecuta ahí mismo: Artifacts en Claude, Canvas en ChatGPT y Gemini. Deja de responder y empieza a construir.

Prompt de artefacto
Crea un artefacto: una calculadora de áreas de figuras geométricas. Figuras: cuadrado, rectángulo, triángulo, círculo y trapecio. Al elegir una figura muestra su fórmula, pide solo los datos que necesita y devuelve el área con 2 decimales y unidades. Un solo archivo HTML, en español, diseño limpio y responsive. No aceptes números negativos ni campos vacíos.

Dónde hacerlo

Claude · ArtifactsChatGPT · CanvasGemini · Canvas

Ahora pídele un cambio

Escribe «agrega el rombo» y observa: no rehace todo, edita lo que ya construyó. Eso es trabajar con un agente.

Verifica el resultado

Calcula un área a mano y compárala. La IA construye rápido; respondes por lo que entrega.
🛠️
Esto ya es programar: tú especificas, la IA construye, tú verificas. Es exactamente lo que haremos con datos reales durante todo el curso.
Hilo conductor

La IA ya escribió el código.
¿Y qué es lo que te entregó?

En los cuatro ejercicios le pediste cosas y respondió. Pero si no entiendes lo que devuelve, no puedes verificarlo — y verificar es tu trabajo. Las tres diapositivas que siguen abren esa caja.

Ya lo visteCómo piensa la IA y cómo pedirleToken · contexto · las 5 piezas · 4 ejercicios
Estás aquíQué es lo que te entregaAlgoritmo · por qué Python · demo ejecutable
La palabra clave

Un algoritmo es una receta

Una secuencia de pasos ordenados para llegar a un resultado. Lo usas todos los días sin darte cuenta.

  • Receta de cocina: pasos para un plato.
  • Indicaciones GPS: pasos para llegar a un destino.
  • Algoritmo en Python: pasos para transformar datos en una respuesta.

Programar es, en esencia, escribir recetas que la computadora ejecuta. Este esquema —datos, cálculo, decisión— es el esqueleto de casi todo lo que haremos en el curso.

Pruébalo

Revela los tres pasos con el botón y luego ejecuta el algoritmo para ver cómo decide.
algoritmo.py
# Algoritmo: ¿el promedio del grupo aprobó?
# Paso 1 · los datos
notas = [3.5, 4.2, 2.8, 3.9]
# Paso 2 · sumar y dividir
promedio = sum(notas) / len(notas)
# Paso 3 · decidir
if promedio >= 3.0:
print("Aprobó ✅")
else:
print("No aprobó ❌")
La herramienta

¿Por qué Python?

De todos los lenguajes que existen, este curso usa Python por tres razones muy concretas.

  • Sintaxis intuitiva: se lee casi como inglés. Menos símbolos raros, menos frustración.
  • El rey de los datos: pandas, matplotlib y scikit-learn — el ecosistema estándar de la ciencia de datos vive en Python.
  • Es el que la IA escribe mejor: hay tanto código Python público que los modelos lo dominan como ningún otro lenguaje.

Con 4 líneas puedes abrir un Excel de 100.000 filas y ver sus datos. Todavía no hay que entenderlo: es solo un anticipo de a dónde vamos.

anticipo · más adelante en el curso
import pandas as pd
# 1. Cargamos el archivo de Excel
df = pd.read_excel('ventas_anuales.xlsx')
# 2. Mostramos los primeros datos
print(df.head())
El momento mágico · demo en vivo

Prompt en español Python real

Elige una tarea, mira el código que "genera" la IA y ejecútalo aquí mismo. Esto es exactamente lo que harás con tu agente cuando lo instales en tu computador.

🧮 Calcular el promedio de ventas 🏆 Encontrar el mejor mes 🧹 Quitar datos repetidos
👤 Tu promptSelecciona una tarea arriba para construir tu prompt…

Fíjate en algo

El código llega comentado y explicado. Tu trabajo no es escribirlo de memoria: es leerlo, entenderlo y comprobar que hace lo correcto.
respuesta_ia.py
Esperando tu prompt…
Hilo conductor

Todo esto pasó en el navegador

Usaste la IA de otro, en la web de otro, con datos de ejemplo. Para trabajar con tus archivos —tu Excel, tus 40.000 filas, lo que no puedes subir a una página cualquiera— necesitas el taller en tu propio computador. Eso es lo que sigue.

Ya lo visteCómo piensa la IA y cómo pedirleToken · contexto · las 5 piezas · 4 ejercicios
Ya lo visteQué es lo que te entregaAlgoritmo · por qué Python · demo ejecutable
Estás aquíMonta tu tallerLas 7 herramientas, instaladas en vivo
Módulo 1 · Bloque A

Tu estación de trabajo

Siete piezas, cada una con un papel distinto. Se instalan en este orden porque unas dependen de otras. Toca una tarjeta para ir directo a su instalación.

01

Python

El lenguaje
Ver instalación →
02

VS Code

El editor
Ver instalación →
03

Node.js

Requisito de los agentes
Ver instalación →
04

Claude Code

Agente · Anthropic
Ver instalación →
05

FreeBuff

Opción gratuita
Ver instalación →
06

Git

Control de versiones
Ver instalación →
07

GitHub

Tu código en la nube
Ver instalación →

Verificación

Al final del bloque
Que a todos les funcione
Instalación paso a paso

Instala Python

terminal
    Para tu contexto

    No son los únicos: el mapa completo

    Instalamos dos agentes porque con dos basta para aprender a dirigirlos. Estos son otros que verás mencionados: la lógica de uso es la misma en todos.

    Otras opciones · alternativas de agentes de IA para código
    Cx Codex · OpenAI Ag Antigravity · Google Cu Cursor GC GitHub Copilot W Windsurf Cl Cline G Gemini CLI Ai Aider Ct Continue R Replit
    Lo que de verdad importa

    Saber dirigir, no memorizar marcas

    Qué pedirle, cómo verificar lo que entrega y entender el código que produce. Eso se transfiere a cualquier agente que salga el año que viene.

    Advertencia

    El agente se equivoca

    Inventa nombres de funciones, asume columnas que no existen y a veces "arregla" cosas que no debía. Por eso el siguiente bloque —los fundamentos— no es opcional.

    Verificación final

    Todo listo para empezar a programar

    Abre una terminal y comprueba uno por uno. Si algo falla, lo arreglamos ahora: el resto del curso depende de esto.

    Pythonpython --version
    VS Codeextensiones Python + Jupyter
    Node.jsnode --version
    Claude Codeclaude → sesión iniciada
    FreeBufffreebuff → sesión iniciada
    Gitgit config --list
    GitHubcuenta + repo curso-datos
    Carpetacurso-datos abierta en VS Code
    Módulo 1 · Bloque B

    Fundamentos de Python

    Con las herramientas listas, empezamos a escribir. Cada tema trae un ejemplo que puedes ejecutar aquí mismo, y los más importantes terminan con un reto "manos al teclado".

    01

    Variables

    cajas de almacenamiento

    02

    Palabras reservadas

    las 35 que ya están ocupadas

    03

    Comentarios

    notas para humanos

    04

    Tipos de datos

    int · float · str · bool

    05

    print()

    el megáfono

    06

    type()

    ¿de qué tipo es?

    07

    input()

    el micrófono

    08

    Operadores

    calcular y comparar

    09

    Texto

    limpiar y partir cadenas

    10

    Listas

    mochilas de datos

    11

    Tuplas

    la caja sellada

    12

    Diccionarios

    clave y valor

    13

    Conjuntos

    sin repetidos

    14

    Condicionales

    if · elif · else

    15

    Bucles

    el trabajador incansable

    16

    Funciones

    recetas guardadas

    17

    Errores

    try · except

    18

    Librerías

    las que ya escribió otro

    Retos

    manos al teclado

    Consejo: no copies el código sin leerlo. Cambia un valor, ejecútalo otra vez y observa qué pasa. Ahí es donde se aprende.
    Bloque 1 de 5

    Escribir código

    Antes de calcular nada hay que saber escribirlo: dónde se guardan los datos, qué nombres están prohibidos y cómo dejar notas que el computador ignora.

    01 · Variables02 · Palabras reservadas03 · Comentarios
    Capítulo 1

    Variables: cajas de almacenamiento

    Una variable es una caja con una etiqueta donde guardas un dato para usarlo después. El signo = significa "guarda esto aquí".

    Reglas OBLIGATORIAS para nombrar cajas (variables):

    • Sin espacios: usa guion bajo → nombre_estudiante
    • No pueden empezar por un número
    • No pueden ser una palabra reservada del lenguaje (capítulo 02)
    • Sin tildes ni ñ
    • Distingue mayúsculas: Edad y edad son cajas distintas
    • Usa nombres que se entiendan: total_ventas, no x
    Pulsa Ejecutar y verás que no aparece nada. Es correcto: los datos ya están guardados, pero todavía no le hemos pedido a Python que los muestre. Eso llega en el capítulo 05.
    Capítulo 2

    Palabras reservadas

    Python tiene 35 palabras con un significado fijo en el lenguaje. Son suyas: no puedes usarlas para nombrar las variables que acabas de aprender a crear. Si lo intentas, el programa se detiene con un error.

    Valores

    TrueFalseNone

    Decisiones y lógica

    ifelifelseandornotinis

    Repetición

    forwhilebreakcontinuepass

    Funciones y clases

    defreturnlambdaclassyield

    Módulos

    importfromas

    Errores

    tryexceptfinallyraiseassert

    Alcance

    globalnonlocaldel

    Otras

    withasyncawait
    Las marcadas en ámbar las usarás en este mismo bloque. No hay que memorizarlas: el editor las colorea distinto cuando las escribes, y esa es la señal de que ese nombre está ocupado.
    Capítulo 3

    Comentarios: notas para humanos

    Todo lo que va después de un # lo ignora el computador. Sirve para explicarle a otra persona —o a ti dentro de un mes— qué hace cada parte del código.

    • Explican el porqué, no lo que ya es obvio.
    • Sirven para desactivar temporalmente una línea.
    • El código que te dé un agente llega comentado: úsalo para entender.
    Un código sin comentarios funciona igual… hasta que alguien tiene que modificarlo.
    Bloque 2 de 5

    Datos y operaciones

    De qué material está hecho cada dato, cómo mostrarlo en pantalla, cómo pedírselo al usuario y cómo calcular y comparar con él.

    04 · Tipos de datos05 · print()06 · type()07 · input()08 · Operadores09 · Texto
    Capítulo 4

    Tipos de datos: el material de cada caja

    Así como en la vida real hay cosas de madera, vidrio o plástico, en Python cada dato está hecho de un "material" distinto. Elegir bien el tipo evita errores. Son dos cosas distintas: crear un dato de cada tipo y convertirlo a otro.

    1 Crear · una caja de cada material

    2 Convertir · de un material a otro

    int · Entero

    Números sin decimales: 25, -4

    float · Decimal

    Con punto: 1.75, 3.14

    str · Texto

    Entre comillas: "Ana"

    bool · Lógico

    Solo True o False

    Los dos recuadros salen en blanco

    Es correcto: los datos quedan guardados, pero todavía no le hemos pedido a Python que los muestre. Eso llega en el capítulo 05.

    Convertir no es comprobar

    El recuadro 2 cambia un dato de tipo con int(), str() o float(). Para comprobar de qué tipo es algo existe type(), en el capítulo 06.

    Capítulo 5

    La función print(): el megáfono

    Hasta ahora guardábamos datos y no se veía nada. print() es la orden de "habla". Ejecuta las cuatro ventanas en orden.

    1 Texto tal cual · entre comillas

    2 Números y cuentas · sin comillas

    3 El contenido de una variable · sin comillas

    4 Texto y variables mezclados · f-string

    Fíjate en la diferencia: print("nombre") muestra la palabra nombre; print(nombre) muestra lo que hay dentro de la caja. La f antes de las comillas permite meter variables entre llaves { } sin cortar el texto.

    Capítulo 6

    La función type(): ¿de qué está hecho?

    Ya sabes que existen int, float, str y bool, y ya sabes mostrar cosas con print(). Al juntarlos obtienes la herramienta que responde: ¿de qué tipo es este dato? Se usa siempre igual: metes el dato en type() y lo envuelves en print() para verlo.

    1 Preguntar el tipo · uno por cada material

    2 Comprobar una conversión · ¿salió bien?

    ¿Para qué sirve en la práctica?

    Cuando un cálculo falle sin motivo aparente, type() suele dar la respuesta: casi siempre es un número que en realidad era texto. Lo verás en el capítulo siguiente.

    Compara las dos consolas

    En el recuadro 1 cada dato responde con su clase. En el recuadro 2 el mismo 25 aparece dos veces: primero como int y después, tras str(), como str.

    Capítulo 7

    La función input(): el micrófono

    Si print() es el megáfono que saca información, input() es el micrófono que la recibe: muestra un mensaje, espera a que la persona escriba y guarda lo que escribió. Ejecuta los tres recuadros y responde dentro de la consola negra.

    1 Preguntar y guardar · lo básico

    El texto del paréntesis es la pregunta. Si no guardas el resultado en una variable, se pierde.

    2 Siempre devuelve texto · aunque escribas un número

    Escribe 25 y fíjate: responde str, no int.

    3 Convertir para operar · con int() o float()

    Quita la línea del int() y verás el error: aquí une variable + tipo + conversión + print().

    El error más común de todo el curso

    input() devuelve siempre texto (str), aunque escribas un número: eso es lo que demuestra el recuadro 2. Por eso "25" + 1 falla; hay que convertirlo antes con int() o float(), como en el recuadro 3.

    ¡Manos al teclado!

    Reto: Variables y Tipos

    Utilizando el editor de abajo, escribe un programa que cumpla lo siguiente:

    1. Crea una variable llamada mi_nombre y asígnale tu nombre en texto (entre comillas).
    2. Crea una variable llamada mi_edad y asígnale tu edad (en números, sin comillas).
    3. Usa la función print() dos veces para imprimir ambas variables.
    mi_nombre = "Ana"
    mi_edad = 25
    
    print(mi_nombre)
    print(mi_edad)
    Capítulo 8

    Operadores: los verbos del código

    Si las variables son los sustantivos, los operadores son los verbos. Son cuatro familias: ejecuta cada recuadro por separado.

    1 Aritméticos · calcular

    2 Comparación · siempre dan True o False

    3 Lógicos · combinar condiciones

    4 Asignación · guardar y actualizar

    No confundas = con ==

    Uno solo guarda un valor (edad = 25). Dos preguntan si son iguales y responden True o False (edad == 25).

    Los recuadros 2 y 3 son la base de los condicionales

    Sin comparar ni combinar, el programa no puede decidir nada. Vuelven en el capítulo 14.

    Capítulo 9

    Texto: dejarlo presentable

    Los datos reales llegan sucios: " Bogotá " con espacios, "BOGOTA" en mayúsculas, "bogota" sin tilde. Para Python son tres ciudades distintas. Cada recuadro arregla una cosa.

    1 Limpiar · quitar lo que sobra

    2 Normalizar · unificar mayúsculas

    3 Medir · cuántos caracteres

    4 Partir · una lista con las piezas

    Se pueden encadenar

    Fíjate en el recuadro 2: .strip().lower() aplica una limpieza detrás de otra en la misma línea. Se leen de izquierda a derecha.

    .split() devuelve una lista

    Míralo en el recuadro 4: aparecen los corchetes. Es justo el objeto con el que abre el bloque siguiente.

    Bloque 3 de 5

    Estructuras de datos

    Hasta aquí, una caja para un dato. Ahora, contenedores capaces de guardar muchos a la vez: así es como llegan los datos del mundo real.

    [ ]10 · Listascorchetes ( )11 · Tuplasparéntesis { : }12 · Diccionariosllaves con clave: valor { }13 · Conjuntosllaves sin pares

    Fíjate: diccionarios y conjuntos comparten las mismas llaves. Lo que los distingue es si dentro hay pares clave: valor o solo elementos sueltos.

    Capítulo 10

    Listas: mochilas de datos

    Una variable es una caja para UN solo objeto. Pero, ¿y si necesitamos llevar muchos, como en una mochila escolar? Para eso están las listas, con corchetes []. Son tres gestos distintos: crearla, sacar un objeto y meter otro.

    1 Crear · corchetes y comas

    2 Leer uno · por su posición

    3 Añadir · .append() al final

    Se empieza a contar desde cero

    Míralo en el recuadro 2: el primer objeto de tu mochila está en la posición [0], no en la 1. Es el despiste número uno de todo principiante.

    Las listas son mutables

    El recuadro 3 es la prueba: puedes añadir, quitar o cambiar sus elementos cuando quieras. Las dos pantallas siguientes van justo de eso.

    Capítulo 10 · continuación

    Listas: sacar lo que necesitas

    Rara vez quieres la lista entera. Casi siempre necesitas un trozo: el último, los tres primeros, o saber si algo está dentro. Los cuatro recuadros trabajan sobre la misma lista de compras: ejecútalos uno a uno y compara.

    1 Contar · len()

    2 Contar desde el final · índices negativos

    3 Rebanadas · un trozo de la lista

    4 Buscar · in · .index() · .count()

    El truco de las rebanadas

    En [1:3] el primer número entra y el segundo no. Suena raro al principio; mira las tres líneas del recuadro 3 y se te queda.

    Todo lo que acabas de ejecutar

    len()[-1][-2][1:3][:2][3:]in.index().count()

    Ninguno de estos modifica la lista: solo preguntan. Cambiarla es la pantalla siguiente.

    Capítulo 10 · continuación

    Listas: cambiarlas a tu gusto

    Aquí es donde las listas se ganan el nombre de mutables: puedes reescribirlas entera o parcialmente sin crear una nueva. Los cuatro recuadros parten siempre de las mismas notas, así ves exactamente qué cambia cada método.

    1 Cambiar uno · por su posición

    2 Añadir · .append() y .insert()

    3 Quitar · .remove() · .pop() · del

    4 Reordenar · .sort() y .reverse()

    Modifican la lista original

    .sort() no te devuelve una lista ordenada: reordena la que ya tenías. Fíjate en el recuadro 4: después de .sort() la variable notas ya no es la de antes. Si necesitas conservar el orden original, haz una copia primero.

    Un recuadro por familia

    lista[2] = ....append().insert().remove().pop()del.sort().reverse()

    .remove() quita por valor · del y .pop() quitan por posición, pero solo .pop() te devuelve lo que sacó.

    ¡Manos al teclado!

    Reto: Listas

    1. Crea una lista llamada mis_colores con tres colores en texto.
    2. Usa .append() para añadir un cuarto color.
    3. Imprime la lista completa y luego solo el primer color.
    mis_colores = ["Rojo", "Azul", "Verde"]
    mis_colores.append("Amarillo")
    
    print(mis_colores)
    print(mis_colores[0])
    Capítulo 11

    Tuplas: la caja sellada

    Una tupla es como una lista, pero sellada con pegamento: una vez la creas, sus elementos no se pueden cambiar. Se escribe con paréntesis () y se lee igual que una lista, con índices. Ejecuta los tres recuadros: el último falla a propósito.

    1 Crear y leer · paréntesis e índices

    Mismos índices que las listas: se empieza a contar en [0].

    2 Para qué sirven · datos que no cambian

    Coordenadas de un mapa, colores de una bandera, tu fecha de nacimiento: nada de eso debería poder cambiarse por accidente.

    3 Intentar cambiarla · error garantizado

    Falla, y está bien que falle: esa protección es justo para lo que existen. En una lista la misma línea funcionaría.

    Lista o tupla: la decisión

    Si el dato va a crecer o a corregirse, usa una lista (corchetes). Si tiene que quedarse tal cual, usa una tupla (paréntesis) y Python te avisará —como en el recuadro 3— cuando alguien intente tocarla.

    Capítulo 12

    Diccionarios: etiqueta y contenido

    Guardan pares clave: valor con llaves {}. En vez de buscar por posición, buscas por nombre: persona["edad"]. Tres gestos, tres recuadros: crearlo, consultarlo y actualizarlo.

    1 Crear · llaves y pares clave: valor

    2 Consultar · por su clave, no por número

    3 Añadir o cambiar · basta con asignar

    Es una fila de Excel

    Cada clave es el nombre de una columna y cada valor, su contenido. Por eso los diccionarios son la estructura clave en ciencia de datos.

    Añadir y cambiar se escriben igual

    En el recuadro 3, persona["profesion"] = ... crea la clave porque no existía. Si ya existiera, la sobrescribiría. Misma línea, dos efectos.

    Capítulo 12 · continuación

    Diccionarios: preguntar sin romper nada

    Con datos reales, tarde o temprano pides una clave que no existe. Lo que hagas en ese momento decide si tu programa sigue o se cae. Ejecuta los recuadros 1 y 2 seguidos: mismo dato que falta, dos finales distintos.

    1 Con corchetes · se cae con KeyError

    2 Con .get() · responde y sigue

    3 Comprobar · in y len()

    4 Ver el contenido · keys · values · items

    Corchetes frente a .get()

    Compara las consolas 1 y 2. estudiante["telefono"] revienta con KeyError y corta el programa; .get("telefono") devuelve None, o el valor por defecto que le pongas, y el programa continúa.

    Lo que preguntaste en cada recuadro

    dic["clave"].get()inlen().keys().values().items()

    Las tres últimas se envuelven en list() solo para poder verlas impresas; en un for se usan tal cual.

    Capítulo 12 · continuación

    Diccionarios: de un dato a una tabla

    Los tres primeros recuadros son las formas de cambiar un diccionario. El cuarto es el que importa de verdad: un diccionario puede guardar dentro listas y otros diccionarios, y ahí aparece la estructura más importante de todo el curso.

    1 Añadir y cambiar · misma sintaxis

    2 Varios de una vez · .update()

    3 Quitar · .pop() y del

    4 Anidar · listas dentro y lista de diccionarios

    El recuadro 4 es la puerta a pandas

    Cada diccionario es una fila; cada clave, una columna. Así es exactamente como llegan los datos de un Excel, de una encuesta o de internet.

    Cambiar un diccionario

    dic["clave"] = ....update().pop()del

    Igual que en las listas: .pop() te devuelve lo que quitó (recuadro 3), del simplemente lo borra.

    ¡Manos al teclado!

    Reto: Diccionarios

    1. Crea un diccionario mi_perfil con las claves "nombre", "ciudad" y "edad".
    2. Imprime solo tu ciudad usando la clave.
    3. Añade la clave "curso" con el valor "Ciencia de Datos" e imprime todo.
    mi_perfil = {
        "nombre": "Ana",
        "ciudad": "Bogotá",
        "edad": 25
    }
    
    print(mi_perfil["ciudad"])
    
    mi_perfil["curso"] = "Ciencia de Datos"
    print(mi_perfil)
    Capítulo 13

    Conjuntos: la bolsa sin repetidos

    Un conjunto (set) guarda elementos únicos: si metes algo dos veces, solo queda una copia. Se escribe con llaves {}, pero sin pares clave: valor. Un recuadro para verlo y otro para el uso que le darás de verdad.

    1 Crear un conjunto · lo repetido se descarta

    2 Quitar duplicados · set() sobre una lista

    El truco del recuadro 2

    Convertir una lista a set() quita los duplicados en una sola línea. Es de lo más usado cuando llegan datos repetidos de un Excel.

    No tienen orden fijo

    Ejecuta el recuadro 1 varias veces: los elementos pueden salir en distinto orden. Un conjunto sirve para saber qué hay, no en qué posición está.

    Bloque 4 de 5

    Control de flujo

    Aquí el programa deja de ser una lista de órdenes que se leen de arriba abajo y empieza a decidir por sí solo qué hacer y cuántas veces.

    14 · Condicionales15 · Bucles
    Capítulo 14

    Condicionales: encrucijadas y decisiones

    Con if el programa decide: si se cumple una condición, haz esto; si no, haz aquello. Aquí es donde tu código empieza a "pensar". Los tres recuadros van de menos a más: cambia el número de edad en cada uno y vuelve a ejecutar.

    1 Dos caminos · if / else

    O se cumple, o no. Nunca se ejecutan las dos ramas.

    2 Varios caminos · elif

    elif es "si no, PERO…": solo se revisa cuando la condición de arriba fue falsa.

    3 Condiciones combinadas · and / or

    Pon tiene_boleto = False y vuelve a ejecutar: cambia qué línea se imprime.

    Los operadores que usarás (capítulo 08)

    == igual que

    != distinto de

    > mayor · < menor

    >= · <=

    and ambas

    or alguna

    La sangría importa

    Los 4 espacios de los tres recuadros no son decoración: son lo que le dice a Python qué está dentro del if. Quítalos y el programa no arranca.

    ¡Manos al teclado!

    Reto: Condicionales

    1. Crea una variable nota con un número entre 0 y 5.
    2. Si la nota es mayor o igual a 3, imprime "Aprobó". Si no, "Debe repetir".
    3. Extra: agrega un elif que imprima "¡Excelente!" cuando la nota sea 4.5 o más.
    nota = 4.6
    
    if nota >= 4.5:
        print("¡Excelente!")
    elif nota >= 3:
        print("Aprobó")
    else:
        print("Debe repetir")
    Capítulo 15

    Bucles: el trabajador incansable

    Un for repite las mismas instrucciones para cada elemento. Es lo que convierte "hazlo una vez" en "hazlo 10.000 veces". Se escribe igual en los dos casos; lo único que cambia es qué va después del in: un rango de números o una lista.

    1 Repetir N veces · for con range()

    Fíjate: el 6 no aparece. En range() el último número no entra, igual que en las rebanadas.

    2 Recorrer una lista · for sobre elementos

    Aquí no hay números: la variable fruta va tomando, una a una, cada palabra de la lista.

    El verdadero superpoder de programar

    Cambia la lista del recuadro 2 por 10.000 filas de un Excel y el código sigue siendo exactamente el mismo. Eso es lo que estamos comprando aquí.

    Lo indentado es lo que se repite

    En el recuadro 1, el print("Iniciando...") y el print("¡Terminado!") salen una sola vez porque están fuera del for. Solo la línea con sangría se repite.

    Capítulo 15 · continuación

    Bucles: while, break y continue

    Con for repites una vez por elemento: sabes de antemano cuántas vueltas serán. Con while repites mientras se cumpla una condición, sin saber cuántas. Y con break y continue cortas la repetición desde dentro. Una idea por recuadro.

    1 while · repetir por condición

    "Mientras queden intentos", "mientras el usuario no acierte". No sabes cuántas vueltas dará.

    2 break · salir antes de tiempo

    El bucle iba hasta el 9, pero break lo abandona del todo en el 4.

    3 continue · saltarse solo esa vuelta

    Aquí el bucle no se abandona: solo se salta las vueltas que no interesan.

    El bucle infinito

    Borra la línea intentos -= 1 del recuadro 1 y el programa no para nunca. Dentro de un while, asegúrate siempre de que algo avanza en cada vuelta.

    break frente a continue

    whilebreakcontinue

    Compara las consolas 2 y 3: break sale del bucle y no vuelve · continue salta esa vuelta y sigue con la siguiente.

    ¡Manos al teclado!

    Reto: Bucles

    1. Crea una lista ciudades con tres ciudades.
    2. Recórrela con un for e imprime cada una.
    3. Extra: usa range(1, 11) para imprimir la tabla del 5.
    ciudades = ["Bogotá", "Medellín", "Cali"]
    
    for ciudad in ciudades:
        print(ciudad)
    
    for i in range(1, 11):
        print(5 * i)
    Bloque 5 de 5

    Reutilizar y ampliar

    Empaquetar tu código para no repetirlo, protegerlo de los fallos y sumarle el trabajo de miles de personas. Es la puerta a la ciencia de datos.

    16 · Funciones17 · Errores18 · Librerías
    Capítulo 16

    Funciones: recetas de cocina

    Con def guardas una receta con nombre. No se ejecuta al definirla: se ejecuta cuando la llamas. Primer recuadro: definirla y usarla una vez. Segundo: la ganancia real, usar la misma receta con ingredientes distintos.

    1 Definir y llamar · def y return

    Borra la última línea y ejecuta: no aparece nada. Definir una función no la ejecuta.

    2 Reutilizar · la misma receta, otros datos

    La lógica se escribe una vez y se usa las veces que haga falta. Si mañana cambia la fórmula, la corriges en un solo sitio.

    Las dos piezas de la receta

    Parámetros: los ingredientes que recibe → (base, altura). return: el plato que devuelve para poder usarlo después, como en resultado = calcular_area(5, 10).

    Esto es lo que te va a devolver un agente

    Cuando le pidas "hazme una función que…", lo que recibirás tiene exactamente la forma del recuadro 1. Ahora ya sabrás leerlo.

    ¡Manos al teclado!

    Reto final: Funciones

    1. Define una función promedio que reciba una lista de notas.
    2. Que devuelva (return) la suma dividida entre la cantidad de notas.
    3. Llámala con [3.5, 4.2, 2.8, 3.9] e imprime el resultado.
    4. Extra: usa un if para decir si el grupo aprobó (≥ 3.0).
    def promedio(notas):
        return sum(notas) / len(notas)
    
    resultado = promedio([3.5, 4.2, 2.8, 3.9])
    print("Promedio:", resultado)
    
    if resultado >= 3.0:
        print("El grupo aprobó")
    else:
        print("El grupo no aprobó")
    Capítulo 17

    Errores: el plan B

    Cuando algo falla, Python detiene el programa entero en esa línea. Con try / except le dices: "inténtalo; y si sale mal, haz esto otro en lugar de morirte". Un recuadro por cada error que ya te has cruzado en este bloque.

    1 ValueError · no era un número

    El error clásico del input() del capítulo 07.

    2 KeyError · esa clave no existe

    Es el mismo error que reventaba el recuadro 1 del capítulo 12, ahora domesticado.

    3 ZeroDivisionError · dividir entre cero

    Aparece en cuanto calculas un promedio de una lista vacía.

    La estructura, idéntica en los tres

    try:
        # lo que puede fallar
    except TipoDeError:
        # el plan B si falla

    Los errores más frecuentes

    ValueErrorKeyErrorZeroDivisionErrorTypeErrorFileNotFoundError

    Los tres primeros son los recuadros de arriba. El de ámbar llega en el capítulo siguiente, en cuanto intentes abrir un archivo que no está donde creías.

    No sirve para todo

    Un error de sintaxis —como usar class de nombre de variable, del capítulo 02— no se atrapa: hay que arreglarlo. try protege de lo que falla al ejecutar, no de lo que está mal escrito.

    Capítulo 18

    Librerías: no reinventes la rueda

    Una librería es una caja de funciones que ya escribió otra persona. Algunas vienen dentro de Python (math, random). Otras, como pandas, hay que instalarlas aparte. Sigue los tres pasos en orden.

    1 Sin instalar · pulsa Ejecutar

    Falla, y está bien que falle: pandas no viene con Python.

    2 Instalarla · en la terminal

    terminal · una sola vez
    pip install pandas
    Collecting pandas
    Installing collected packages: pandas
    Successfully installed pandas-2.2.3

    No se escribe en Python, sino en la terminal. Y solo una vez por computador.

    3 Ahora sí · el mismo código

    python · ventas.csv
    import pandas as pd
    
    df = pd.read_csv("ventas.csv")
    print(df.head())
            fecha     ciudad  ventas
    0  2026-01-05     Bogotá    1250
    1  2026-01-06   Medellín     980
    2  2026-01-07       Cali    1430

    Tres líneas y el Excel ya está dentro de Python. Si el archivo no aparece, salta FileNotFoundError: ahí usas el try/except del capítulo anterior.

    Las tres formas de importar

    import pandasfrom math import sqrtimport pandas as pd

    El as pd es solo un apodo para escribir menos. Es la forma que verás en todo internet.

    Aquí empieza la ciencia de datos

    pandas para tablas, matplotlib para gráficas, scikit-learn para modelos. Todo el resto del curso son librerías: los fundamentos que acabas de ver son lo que te permite entender qué le estás pidiendo a cada una.

    Capítulo 18 · continuación

    Las librerías de este curso

    Estas son las que vas a necesitar, ordenadas por el módulo donde aparecen. No hace falta entenderlas todavía: solo tenerlas instaladas antes de empezar.

    Módulo 2 · Gestión de datos

    pandasnumpyopenpyxl

    pandas abre y transforma tablas · numpy hace el cálculo numérico por debajo · openpyxl es lo que permite leer y escribir .xlsx.

    Módulo 3 · Visualización

    matplotlibseabornplotly

    matplotlib es la base de todo gráfico · seaborn la deja presentable con una línea · plotly hace gráficas interactivas para el dashboard.

    Módulo 4 · Automatización

    streamlit

    Convierte tu script en una aplicación web con la que otros pueden interactuar, sin escribir nada de HTML.

    Transversal · Modelos

    scikit-learn

    Los modelos de machine learning listos para usar: clasificar, predecir y agrupar con las mismas tres líneas de siempre.

    1 Instálalas todas de una vez · en la terminal

    terminal
    pip install pandas numpy openpyxl matplotlib             seaborn plotly streamlit scikit-learn
    Successfully installed pandas-2.2.3 numpy-2.1.3
    openpyxl-3.1.5 matplotlib-3.9.2 seaborn-0.13.2
    plotly-5.24.1 streamlit-1.39.0 scikit-learn-1.5.2

    2 Comprueba que quedaron · en Python

    python
    import pandas, numpy, matplotlib
    import seaborn, plotly, streamlit, sklearn
    
    print("Todo listo para empezar")
    Todo listo para empezar

    Si alguna línea da ModuleNotFoundError, esa es la que faltó instalar.

    El nombre para instalar no siempre es el nombre para importar. Se instala pip install scikit-learn pero se escribe import sklearn. Y openpyxl no se importa nunca: lo usa pandas por dentro cuando abres un Excel.
    Fin de los fundamentos

    ¡Has dado tu primer paso!

    Ya entiendes qué es la IA, tienes tu estación de trabajo montada y sabes escribir código de verdad. Con esto puedes leer, entender y modificar lo que te entregue cualquier agente.

    Hoy dominas

    18 capítulos: cómo se escribe · datos y operaciones · texto · las cuatro estructuras · decidir y repetir · funciones, errores y librerías

    Lo que sigue

    pandas: abrir Excel y CSV, limpiar y transformar datos

    Después

    gráficos, tableros y automatización de reportes

    Al final

    tu propio aplicativo publicado con GitHub Pages

    Tarea para la próxima clase: pídele a tu agente que te explique, línea por línea, uno de los retos que resolviste hoy. Si algo de su explicación no te cuadra, tráelo a clase.

    Trabajo Científico · @TCientifico · Democratizando la ciencia de datos