Introducción a Python para Ciencia de Datos

Le damos la bienvenida a nuestro curso Propedéutico de Python dedicado a la Ciencia de Datos. Python es un lenguaje de programación inmensamente útil en Ciencia de Datos y otras disciplinas. En esta sección encontrará el material semanal que incluye las grabaciones y algunas instrucciones. Le recomendamos revisar este material antes de comenzar su curso en Bourbaki.

Semana

1

Lección I

Intro a Python: 1.1 ¿Qué es Python?

En la clase del día de hoy tendremos un primer acercamiento al lenguaje de programación Python y al entorno de trabajo Jupyter Notebook utilizando Google Colaboratory.

Python es un lenguaje de programación de propósito general ideado por el holandés Guido van Rossum para ser simple en su escritura y lectura. La primera versión de Python fue lanzada en 1991 y la versión 1.0 en 1994. Hoy en día es uno de los lenguajes más extendidos.

Principios

El ingeniero de software Tim Peters escribió “Zen of Python” que es una colección de 19 principios rectores para escribir programas de computadora. Estos influyeron en el diseño del lenguaje de programación Python. Entre estos principios están:

  • Bello es mejor que feo.
  • Explícito es mejor que implícito.
  • Simple es mejor que complejo.
  • Complejo es mejor que complicado.
  • La legibilidad cuenta.
  • Los casos especiales no son tan especiales como para quebrantar las reglas.

Características generales y ventajas

  1. Python es un lenguaje fácil de aprender y de programar.
  2. Es un lenguaje versátil.
  3. Es un lenguaje limpio y simple. Es fácil de leer e intuitivo, sintaxis minimalista.
  4. Incorpora herramientas para visualización de datos.
  5. Otorga un “entorno” unificado e interactivo.
  6. Requiere un tiempo de desarrollo reducido y un tiempo de ejecución razonable.
  7. El lenguaje está diseñado para fomentar muchas buenas prácticas de programación como son:
  8. – Programación modular y orientada al objeto: permite “empaquetar” y reusar códigos, lo que además logra un código más transparente y facilidad para depurar bugs.
  9. Su documentación está estrechamente integrada al código: cuenta con una gran librería y colección de paquetes externos.

Desventajas de Python:

  • Python es un lenguaje interpretado y de tipado dinámico, por lo que la ejecución del código puede ser lenta comparada con lenguajes compilados y de tipado estático, como C++ y Fortran. No obstante, en las últimas versiones de Python se ha aumentado considerablemente la velocidad.

Archivos de programas en Python

El código Python es usualmente almacenado en archivos de texto con extensión “`.py`”

Se asume que cada línea de un archivo de programa en Python es una sentencia Python, o parte de una sentencia.

La única excepción son las líneas de comentarios, que comienzan con el carácter `#` estas líneas son ignoradas por el intérprete Python.

RESPONDER CUESTIONARIO
¿Tiene alguna duda para el profesor?
Hacer pregunta sobre lección
Intro a Python: 1.1 ¿Qué es Python?
Muchas gracias, tu pregunta ha sido enviada al profesor. Se pondrá en contacto contigo a tu correo electrónico.
Algo sucedió mal, favor de intentar de nuevo, si sigue sin funcionar favor de solicitar soporte.
Intro a Python: 1.2 Jupyter Notebooks

¿Qué es un Jupyter Notebook?

Un Jupyter Notebook, es un ambiente de trabajo que busca unificar las herramientas de documentación y ejecución, permitiendo escribir código, visualizar resultados  e incluir comentarios de manera interactiva.

Jupyter Notebook tiene su origen en IPython, creado en 2014 por el físico colombiano Fernándo Pérez, promotor del software libre.

El nombre de Jupyter  proviene de los tres principales lenguajes de programación que soporta: Julia, Python y R, y tambíen en honor a Galileo quien el 7 de enero de 1610 descubrió los tres primeros satélites de Júpiter.

Un Notebook no sigue el patrón estándar de código Python en un archivo de texto con extensión ‘py’ que solamente guardan código. En su lugar, es almacenado como un archivo con la extensión ‘ipynb’  (acrónimo de IPython NoteBook). Estos archivos, internamente usan el formato JSON posibilitando guardar y compartir documentos con texto formateado, código y visualización de resultados.

RESPONDER CUESTIONARIO
¿Tiene alguna duda para el profesor?
Hacer pregunta sobre lección
Intro a Python: 1.2 Jupyter Notebooks
Muchas gracias, tu pregunta ha sido enviada al profesor. Se pondrá en contacto contigo a tu correo electrónico.
Algo sucedió mal, favor de intentar de nuevo, si sigue sin funcionar favor de solicitar soporte.
Intro a Python: 1.3 Google Colab

Google Colab es un servicio gratuito de Google para utilizar el entorno de Jupyter Notebook sin necesidad de configuración que se ejecuta completamente en la nube. Basta con tener una cuenta de google.

En el siguiente vídeo veremos cómo abrir un Notebook en Colab desde Google Drive y dar nuestros primeros pasos en la herramienta.

01.Introducción_a_Python

RESPONDER CUESTIONARIO
¿Tiene alguna duda para el profesor?
Hacer pregunta sobre lección
Intro a Python: 1.3 Google Colab
Muchas gracias, tu pregunta ha sido enviada al profesor. Se pondrá en contacto contigo a tu correo electrónico.
Algo sucedió mal, favor de intentar de nuevo, si sigue sin funcionar favor de solicitar soporte.

Semana

2

Lección II

Intro a Python: 2.1 Print, variables y tipos de datos

En Python, la función print() se utiliza para mostrar información en la pantalla. Es una de las funciones más utilizadas, especialmente para depuración y comunicación con el usuario.

La sintaxis básica de print() es la siguiente:

Cuando creamos una variable en Python, lo que hacemos es reservar espacio de memoria para almacenar valores.

En Python a diferencia de los requerimientos en otros lenguajes como Java o C, no es necesaria una declaración explícita para reservar un espacio en la memoria. La declaración se hace automáticamente al asignar un valor a una variable, utilizando el signo igual que (=) de manera que asigna un nombre, del lado izquierdo del operador, con un valor en el lado derecho.

Por ejemplo:

Los nombres de las variables:

  • deben comenzar con una letra
  • pueden contener los cualquier letra de la A a la Z, en mayúsculas o minúsculas,
  • pueden contener números del 0 al 9
  • pueden contener guiones (-) y guiones bajos(_)
  • son sensibles a maýsculas y minúsculas

Es recomendable, pero no necesario que los nombres de las variables estén relacionados con la información que contienen

Hay además 33 palabras clave en Python 3 que no pueden ser usados como nombres de variables, estas son:

Hemos visto que cada variable en Python tiene asociado un nombre y un valor. Además de esto, al asignar un valor a un variable éste automáticamente se guarda asociándolo a un tipo de objeto.

En Python existen distintos tipos de objeto, de los que iremos hablando en las próximas lecciones. Por lo pronto solo hablaremos de los tipos básicos:

  • numéricos, entre los que se encuentran los números enteros (int) y de punto flotante (float)
  • booleanos (bool)  que solo tiene dos instancias: verdadero (True) y falso (False)
  • cadenas de caracteres (str). Para crear un objeto de este tipo solo es necesario encerrar un conjunto de caracteres entre comillas simples o dobles.

02-Print_datos_ variables

RESPONDER CUESTIONARIO
¿Tiene alguna duda para el profesor?
Hacer pregunta sobre lección
Intro a Python: 2.1 Print, variables y tipos de datos
Muchas gracias, tu pregunta ha sido enviada al profesor. Se pondrá en contacto contigo a tu correo electrónico.
Algo sucedió mal, favor de intentar de nuevo, si sigue sin funcionar favor de solicitar soporte.
Intro a Python: 2.2 Operadores aritméticos

Operadores aritméticos

Python puede usarse para calcular operaciones aritméticas simples como una calculadora, por ejemplo:

03.Operadores_funciones

RESPONDER CUESTIONARIO
¿Tiene alguna duda para el profesor?
Hacer pregunta sobre lección
Intro a Python: 2.2 Operadores aritméticos
Muchas gracias, tu pregunta ha sido enviada al profesor. Se pondrá en contacto contigo a tu correo electrónico.
Algo sucedió mal, favor de intentar de nuevo, si sigue sin funcionar favor de solicitar soporte.
Intro a Python: 2.3 Funciones integradas

Las funciones, en cualquier lenguaje de programación, se utilizan para transformar datos de entrada en resultados específicos. En su interior contienen tareas o procedimientos que pueden ser reutilizadas con facilidad. Más adelante, aprenderemos a construir funciones personalizadas, pero por ahora centraremos la atención en las funciones que Python ofrece para ser utilizadas en cualquier momento sin necesidad de importarlas desde un módulo o biblioteca externa  (como lo hicimos con las funciones del módulo math para obtener una raiz cuadrada  utilizando la función sqrt).

Hasta ahora hemos ya usado las funciones:  

print()

type()

round()

Hemos visto también el uso de las siguientes funciones para asignar/transformar tipos de variables:

  • bool()
  • float()
  • int()
  • str()

De manera paralela, en la siguiente sección, veremos como  las listas, tuplas, conjuntos y diccionarios, tienen asociadas list(), tuple(), set() y dict(), respectivamente.

En los próximos vídeos verás que range(), len() tienen también un uso común en Python. Para conocer la lista completa y la documentación de cada una de las funciones integradas de Python puedes consultar este enlace.

RESPONDER CUESTIONARIO
¿Tiene alguna duda para el profesor?
Hacer pregunta sobre lección
Intro a Python: 2.3 Funciones integradas
Muchas gracias, tu pregunta ha sido enviada al profesor. Se pondrá en contacto contigo a tu correo electrónico.
Algo sucedió mal, favor de intentar de nuevo, si sigue sin funcionar favor de solicitar soporte.
Intro a Python: 2.4 Imports

En Python, los imports se utilizan para traer módulos y funciones externas al programa. Esto permite reutilizar código y acceder a bibliotecas estándar o de terceros sin necesidad de escribir todo desde cero.

Importar un módulo completo

Para importar un módulo completo, usamos la palabra clave import:

Para conocer un poco de las funciones que el módulo contiene, se puede utilizar la función de help.

Importar una función específica

También podemos importar solo una función específica de un módulo usando from ... import ...:

Importar con un alias

Si queremos usar un nombre más corto, podemos asignarle un alias con as:

Finalmente, si el módulo que necesitamos no se encuentra en nuestro ambiente de Python, se puede instalar desde la terminal utilizando el comando de pip install:

04.Imports

RESPONDER CUESTIONARIO
¿Tiene alguna duda para el profesor?
Hacer pregunta sobre lección
Intro a Python: 2.4 Imports
Muchas gracias, tu pregunta ha sido enviada al profesor. Se pondrá en contacto contigo a tu correo electrónico.
Algo sucedió mal, favor de intentar de nuevo, si sigue sin funcionar favor de solicitar soporte.

Semana

3

Lección III

Intro a Python: 3.1 Operadores

En esta lección introduciremos formalmente las funciones integradas de Python que junto con los distintos tipos de datos, forman el “centro” de este popular lenguaje de programación.

Más allá de los operadores aritméticos (vistos anteriormente) en esta sección estudiaremos :

  1. los operadores de comparación;
  2. los operadores lógicos;
  3. los operadores de asignación, y
  4. los operadores de pertenencia

Operaciones de comparación

Como su nombre lo indica, estos operadores se utilizan para hacer la comparación entre dos valores u objetos y obtener un solo valor booleano

Operadores lógicos

Los operadores lógicos a los que también se les conoce como operadores binarios o booleanos, son aquellos que devuelven un valor booleano (verdadero o falso) como resultado.

Tanto el operador and  como el operador or siempre toma dos valores o expresiones booleanas para hacer la operación.

El operador and regresará True si ambas expresiones son verdaderas, de otra manera regresara False. En cambio, el operador or regresara True si cualquiera de las dos expresiones, o ambas son verdaderas, y solamente regresará False si ambas son falsas.

A diferencia de los operadores and y or, el operador not solamente opera con un solo valor booleano y regresa el contrario..

Uso combinado de operadores lógicos y de comparación

Los operadores lógicos se pueden usar en combinación con los operadores de combinación, ya que éstos últimos devuelven un valor booleano como resultado.

La computadora procesará una línea de código como ésta, evaluando primero la expresión a la izquierda del operador and; enseguida hará lo mismo pero ahora con la expresión de la derecha. Una vez que conoce el valor booleano de cada expresión a los lados del operador, entonces realizará la operación lógica and, en este caso devolviendo True, toda vez que el resultado de las dos expresiones a la izquierda y a la derecha del operador, también lo son.

Operadores de asignación

En Python  existe un grupo de operadores de asignación aumentada, que se componen de uno de los operadores aritméticos (+ , – , * ,  / , // , %)  y el operador de asignación = , que permiten abreviar la sintaxis de una operación tal como :

 a = a + 2

a la expresión equivalente

a += 2

Observa que los resultados de los dos códigos, presentados en la figura de la derecha, son idénticos.

A continuación se presenta una descripción de cada uno de los operadores de asignación.

Para que ganes familiaridad con estos operadores, te recomendamos abrir un notebook en Colab y experimentar con cada uno de los operadores presentados.

Estos nos serán de gran utilidad cuando trabajemos con ciclos más adelante.

Operadores de pertenencia

Como su nombre lo indica, el objetivo de los operadores de pertenencia es probar si un valor o variable se encuentra contenido dentro de otro objeto, que bien puede ser una lista, una tupla, un conjunto, una cadena o un diccionario.

En el caso de los diccionarios, es importante considerar que el operador de pertenencia probará, si no especificamos otra cosa de forma explicita,  si un valor o variable es una de las claves del diccionario, tal como se puede deducir del siguiente ejemplo:

En contraste, si lo que deseamos es comprobar si un valor o variable aparece dentro de los valores de un diccionario, en vez de las claves, es necesario explicitarlo de la siguiente manera:

RESPONDER CUESTIONARIO
¿Tiene alguna duda para el profesor?
Hacer pregunta sobre lección
Intro a Python: 3.1 Operadores
Muchas gracias, tu pregunta ha sido enviada al profesor. Se pondrá en contacto contigo a tu correo electrónico.
Algo sucedió mal, favor de intentar de nuevo, si sigue sin funcionar favor de solicitar soporte.
Intro a Python: 3.2 Bloques de código y estructuras de control

Los bloques de código y estructuras de control usualmente comienzan con una condición que se debe cumplir para ejecutar ciertas acciones contenidas en bloques de códigos.

Las líneas de código de Python se pueden agrupar en bloques que se identifican según la sangría u identación que estas líneas tengan a la izquierda, de manera que podemos decir que un bloque comienza con la primera línea identada y termina en la última línea de código con igual identación. Además un bloque puede contener otro bloque de código.

En este tema estudiaremos dos tipos de estructuras de control:

  1. Las estructuras condicionales (if, elif, else)
  2. Las estructuras iterativas o ciclos while y ciclos for.

Estructuras condicionales

Este tipo de estructuras nos permiten verificar el cumplimiento de una o más condiciones para decidir qué acción o acciones vamos a ejecutar.

Para definir una estructura de control condicional en Python contamos con:

  1. La sentencia if, para ejecutar un bloque de código si y solo si se cumple una determinada condición. Las estructuras de control que utilizan la sentencia if contienen los siguientes elementos:

  • la palabra clave if
  • una condición, es decir, una expresión que regresa un valor True o False.
  • los puntos
  • Un bloque de código compuesto por una o más acciones.



2. La sentencia else que se utiliza en ocasiones en que la sentencia if simple, no es suficiente y se necesita ejecutar una o varias acciones si la condición evaluada resulta falsa:

3. La sentencia elif, se añade a una estructura de control cuando una decisión depende de más de una condición:

Estructuras iterativas

A las estructuras de control iterativas también llamadas ciclos nos permiten ejecutar de forma repetida un mismo bloque de código mientras mientras una condición sea verdadera.

En Python tenemos dos estructuras básicas: los ciclos while y los ciclos for.

En esta sección estudiaremos las características de estos ciclos y aprenderemos el uso de tres palabras clave que Python reserva para dar flexibilidad a estas estructuras: brake, continue y pass.

Por último revisaremos ejemplos de ciclos que operan dentro de otros ciclos, es decir ciclos anidados.

En las estructuras iterativas  while  un bloque de código se ejecuta mientras una condición es verdadera. Así, en el ejemplo de la derecha podemos observar que mientras la variable a sea mayor o igual a 0 se va imprimir el valor de a.

En el siguiente video hablaremos con más detenimiento de los ciclos while

Los ciclos for por su parte son aquellos que nos permiten iterar sobre una secuencia que bien puede ser una lista, tupla, o cadena de caracteres.

En algunas tareas, algunas veces necesitamos que parar la ejecución de un ciclo for o while, cuando ocurren ciertas circunstancias. Para ello Python ha reservado la palabra brake.

En otros casos necesitamos que cuando ocurren ciertas circunstancias al ejecutar un ciclo, algunas partes del código no se ejecuten. En este caso podemos valernos de la palabra continue. Por otro lado, si queremos que en un ciclo no se ejecute acción alguna, entonces Python tiene reservada la palabra pass.

En el siguiente video veremos con más detalle el uso de ellas y además estudiaremos ejemplos de ciclos que dentro de ellos ejecutan otros ciclos. A estas estructuras se les conoce como ciclos anidados.

RESPONDER CUESTIONARIO
¿Tiene alguna duda para el profesor?
Hacer pregunta sobre lección
Intro a Python: 3.2 Bloques de código y estructuras de control
Muchas gracias, tu pregunta ha sido enviada al profesor. Se pondrá en contacto contigo a tu correo electrónico.
Algo sucedió mal, favor de intentar de nuevo, si sigue sin funcionar favor de solicitar soporte.
Intro a Python: 3.3 Compresión de listas y direccionario

Una vez que hemos revisado como funcionan las estructuras condicionales y los ciclos for y while, estamos listos para aprender como crear estructuras de datos por compresión.

En el siguiente video estudiaremos las listas  y los diccionarios por compresión.

RESPONDER CUESTIONARIO
¿Tiene alguna duda para el profesor?
Hacer pregunta sobre lección
Intro a Python: 3.3 Compresión de listas y direccionario
Muchas gracias, tu pregunta ha sido enviada al profesor. Se pondrá en contacto contigo a tu correo electrónico.
Algo sucedió mal, favor de intentar de nuevo, si sigue sin funcionar favor de solicitar soporte.
Intro a Python: 3.4 Operadores, bloques de código y estructuras de control

Hasta ahora nos hemos familiarizado con los principales tipos de variables y estructuras de Python, también hemos aprendido a realizar acciones sencillas como las de una calculadora o asociadas a las funciones nativas de Python.

Intuimos además que los programas o algoritmos no consiste solamente en ejecutar una instrucción tras otra como si solamente se tratara de una lista de pasos o tareas. Incluso en las tareas más sencillas de la vida cotidiana, nuestro actuar está definido por reglas:

De esta forma, conforme aumente  la complejidad de las tareas que queremos programar,  será importante hacer evaluaciones de ciertas condiciones incluir reglas para ejecutar o no ciertas acciones .

En está lección introduciremos otros tipos de operadores, más allá de los matemáticos que nos serán útiles para estudiar enseguida cómo utilizar bloques de código y estructuras de control al programar con Python.

RESPONDER CUESTIONARIO
¿Tiene alguna duda para el profesor?
Hacer pregunta sobre lección
Intro a Python: 3.4 Operadores, bloques de código y estructuras de control
Muchas gracias, tu pregunta ha sido enviada al profesor. Se pondrá en contacto contigo a tu correo electrónico.
Algo sucedió mal, favor de intentar de nuevo, si sigue sin funcionar favor de solicitar soporte.

Semana

Ejercicios III

Intro a Python: 3.1 Ejercicio

Solicita dos números enteros (recuerda usar la función de input).

Utiliza operadores de comparación para verificar si los números son iguales y muestra el resultado.

Usa operadores lógicos para verificar si ambos números son positivos.

Aplica operadores de asignación para modificar los valores de los números y muestra los resultados.

Crea una lista con los números del 1 al 5 y usa operadores de pertenencia para ver si los números ingresados están en la lista.

RESPONDER CUESTIONARIO
¿Tiene alguna duda para el profesor?
Hacer pregunta sobre lección
Intro a Python: 3.1 Ejercicio
Muchas gracias, tu pregunta ha sido enviada al profesor. Se pondrá en contacto contigo a tu correo electrónico.
Algo sucedió mal, favor de intentar de nuevo, si sigue sin funcionar favor de solicitar soporte.
Intro a Python: 3.2 Ejercicio

Solicita un número entero  (recuerda usar la función de input).

Si el número es positivo, imprima los números del 1 hasta ese número usando un ciclo for.

Si el número es negativo, cuenta regresivamente hasta 0 usando un ciclo while.

Si el número es 0, simplemente imprima "Ingresaste el número cero".

RESPONDER CUESTIONARIO
¿Tiene alguna duda para el profesor?
Hacer pregunta sobre lección
Intro a Python: 3.2 Ejercicio
Muchas gracias, tu pregunta ha sido enviada al profesor. Se pondrá en contacto contigo a tu correo electrónico.
Algo sucedió mal, favor de intentar de nuevo, si sigue sin funcionar favor de solicitar soporte.
Intro a Python: 3.3 Ejercicio

Crea una lista de los números del 1 al 10 y multiplicalos por 2 usando comprensión de listas.

A partir de una lista de palabras, crea una nueva lista que solo contenga las palabras con más de 4 letras.

Crea un diccionario que asocie números del 1 al 5 con sus respectivos valores al cuadrado, utilizando comprensión de diccionarios, ejemplo: {1:1, 2:4 …}

RESPONDER CUESTIONARIO
¿Tiene alguna duda para el profesor?
Hacer pregunta sobre lección
Intro a Python: 3.3 Ejercicio
Muchas gracias, tu pregunta ha sido enviada al profesor. Se pondrá en contacto contigo a tu correo electrónico.
Algo sucedió mal, favor de intentar de nuevo, si sigue sin funcionar favor de solicitar soporte.

Semana

4

Lección IV

Intro a Python: 4.1 Funciones definidas por el usuario

Para definir una función en Python es necesario:

  • utilizar la palabra clave def antes de poner el nombre que tendrá la función,
  • nombrar la función utilizando las mismas reglas aplicadas para nombrar variables
  • enseguida del nombre, agregar paréntesis ( ), y
  • añadir al final dos puntos :

Al igual que en los ciclos y en las estructuras condicionales, Python utiliza bloques identados en lugar de brackets, esto además de hacer el código más legible, es una condición necesaria para que la computadora entienda donde empieza y dónde termina el bloque de código que ejecuta la función.

Una función además puede o no tener cualquier cantidad de parámetros, pero también puede no tener parámetro alguno..

Es una buena práctica nombrar a las funciones con la acción que realiza así como incluir documentación sobre lo que la función hace, los parámetros que recibe y los valores que devuelve.

Opcionalmente una función de Python puede o no regresar uno o varios valores o estructuras de datos,  resultantes de las tareas ejecutadas. Para ello nos valdremos de la la palabra clave return.

RESPONDER CUESTIONARIO
¿Tiene alguna duda para el profesor?
Hacer pregunta sobre lección
Intro a Python: 4.1 Funciones definidas por el usuario
Muchas gracias, tu pregunta ha sido enviada al profesor. Se pondrá en contacto contigo a tu correo electrónico.
Algo sucedió mal, favor de intentar de nuevo, si sigue sin funcionar favor de solicitar soporte.
Intro a Python: 4.2 Funciones de orden superior y funciones recursivas

Una función que recibe como parámetro otra función se conoce como función de orden superior

Python permite que una función pueda llamarse a sí misma dentro de las instrucciones que ejecuta la propia función. A estas funciones se les llama funciones recursivas.

La recursividad se utiliza para dividir una tarea en tareas de menor tamaño para encontrar la solución de forma más simple.

Todas las funciones recursivas deben incluir un tope o momento para dejar de llamarse.

RESPONDER CUESTIONARIO
¿Tiene alguna duda para el profesor?
Hacer pregunta sobre lección
Intro a Python: 4.2 Funciones de orden superior y funciones recursivas
Muchas gracias, tu pregunta ha sido enviada al profesor. Se pondrá en contacto contigo a tu correo electrónico.
Algo sucedió mal, favor de intentar de nuevo, si sigue sin funcionar favor de solicitar soporte.
Intro a Python: 4.3 Funciones lambda

Las funciones lambda también son llamadas funciones anónimas. Son una herencia del lenguaje LISP, diseñado por Jhon McCarty  basándose a su vez en el cálculo lambda.

Para construir una función lambda se requiere: (1) escribir la palabra clave lambda; (2) especificar los argumentos de la función, separados por comas; (3) añadir dos puntos (:), y (4) escribir la acción a ejecutar.

Jhon McCarty, conocido como “el padre de la Inteligencia Artificial”, quien desarrolló en 1959 el lenguaje LISP.

Uso de funciones lambda dentro de las funciones map, filter y reduce.

Las funciones lambda suelen ser muy útiles dentro de otra función, ya sea en una definida por nosotros mismos, o bien, en una función de Python o de algún módulo o librería. Por ello la función lambda, con frecuencia se utiliza con tres famosas funciones de Python:

  • la función map(), que se utiliza para ejecutar una función sobre una lista y obtener otra lista donde cada uno de los elementos ha sido transformada por la función especificada.
  • la función filter(),que regresa una lista, después de aplicar una función, con aquellos elementos para los cuales la función es verdadera.
  • la función reduce(), que produce un solo valor a partir de aplicar una función a todos los elementos de una lista.

RESPONDER CUESTIONARIO
¿Tiene alguna duda para el profesor?
Hacer pregunta sobre lección
Intro a Python: 4.3 Funciones lambda
Muchas gracias, tu pregunta ha sido enviada al profesor. Se pondrá en contacto contigo a tu correo electrónico.
Algo sucedió mal, favor de intentar de nuevo, si sigue sin funcionar favor de solicitar soporte.
Intro a Python: 4.4 Manejo de errores y excepciones

Es momento de hablar de forma más detallada de los errores que ocurren al correr ciertas líneas o bloques de código

Esta sección está dividida en tres partes:

  1. Errores y excepciones.
  2. Personalización de excepciones usando raise y assert.
  3. Manejo de errores con tryexcept
Imagen GeeksforGeeks

Errores y excepciones

En videos anteriores, han aparecido al menos un par de ocasiones algunos errores.  En general, existen en Python dos tipos de errores:

  • los errores son ocasionados por problemas que hacen que se detenga la ejecución. Hay errores de distintos tipos. Los más comunes son errores de sintaxis y los de identación, que se originan cuando no se cumplen las reglas de escritura de los bloques de código y de la declaración de variables. Otros errores indican problemas críticos como los errores de recursión (cuando una función no deja de llamarse a sí misma) o los errores por haber excedido la memoria (errores de memoria insuficiente)
  • las excepciones, también son conocidas como errores de lógica. La diferencia es que éstos se pueden manejar para que una función o un bloque de código no se vea obligado a parar.

Antes de aprender a manejar los errores, vamos a revisar en el siguiente video algunos errores y excepciones para que cuando aparezcan en tu programa, puedas fácilmente corregirlos y prevenirlos tal como veremos más adelante.

Personalización de errores y excepciones (raise y assert)

La palabra reservada raise, se utiliza en Python para lanzar un error cuando se produce una condición determinada.

En el siguiente bloque de código, cuando la variable peso tome un valor mayor que cero, no ocurrirá nada.

En cambio si por error introducimos en la variable cero o un valor negativo, entonces obtendremos la excepción con el mensaje personalizado.

Además de raise, nos podemos valer de la palabra assert para evaluar que se cumpla cierta condición. Si la condición se cumple, entonces podemos continuar con el programa; de otra manera, si la condición no se cumple, entonces obtendremos la excepción con un mensaje personalizado por ejemplo, “la variable x debe ser un entero”

Manejo de excepciones con try- except

Ha llegado el momento de aprender a gestionar las excepciones usando las palabras reservadas try y except.

La sintaxis básica es la siguiente:

Lo primero que se ejecuta es la sentencia try para intentar ejecutar el código que le sigue, en caso de que una excepción ocurra el código ligado a try será ignorado y en su lugar se ejecutará el código unido a la sentencia except.

RESPONDER CUESTIONARIO
¿Tiene alguna duda para el profesor?
Hacer pregunta sobre lección
Intro a Python: 4.4 Manejo de errores y excepciones
Muchas gracias, tu pregunta ha sido enviada al profesor. Se pondrá en contacto contigo a tu correo electrónico.
Algo sucedió mal, favor de intentar de nuevo, si sigue sin funcionar favor de solicitar soporte.
Intro a Python: 4.5 Funciones y manejo de errores

En esta lección, estudiaremos dos herramientas muy importantes:

1. la construcción y el uso de funciones

2. El manejo de errores y excepciones

Vimos anteriormente, que las funciones, en cualquier lenguaje de programación, se utilizan para transformar datos de entrada en resultados específicos y que en su interior contienen tareas o procedimientos que pueden ser reusadas con facilidad.

Las instrucciones en una función, para transformar los datos en las salidas que necesitamos, son bloques lógicos de código que utilizan de distinta manera las diferentes estructuras de datos, operadores, ciclos y controles que hemos visto hasta ahora.

Las funciones no son más que tareas que el usuario quiere ejecutar en varias ocasiones y que se “empacan” dentro de una función para realizar la función con tan solo llamarlas.

Una vez que estemos más familiarizados con la construcción de funciones será momento de hablar con más detenimiento de los errores en Python.

El conocimiento de los errores y como manejarlos es muy importante para ganar confianza como programadores de Python, así que ¡Vamos adelante!

Python

RESPONDER CUESTIONARIO
¿Tiene alguna duda para el profesor?
Hacer pregunta sobre lección
Intro a Python: 4.5 Funciones y manejo de errores
Muchas gracias, tu pregunta ha sido enviada al profesor. Se pondrá en contacto contigo a tu correo electrónico.
Algo sucedió mal, favor de intentar de nuevo, si sigue sin funcionar favor de solicitar soporte.

Semana

Ejercicios IV

Intro a Python: 4.1 Ejercicio

Define una función llamada saludar() que imprima un mensaje de bienvenida.

Define una función llamada muplicar_por_dos(num) que reciba un número y retorne su valor multiplicado por 2.

Define una función llamada es_par(num) que reciba un número y retorne True si es par, o False si es impar.

RESPONDER CUESTIONARIO
¿Tiene alguna duda para el profesor?
Hacer pregunta sobre lección
Intro a Python: 4.1 Ejercicio
Muchas gracias, tu pregunta ha sido enviada al profesor. Se pondrá en contacto contigo a tu correo electrónico.
Algo sucedió mal, favor de intentar de nuevo, si sigue sin funcionar favor de solicitar soporte.
Intro a Python: 4.2 Ejercicio

Función de Orden Superior:

Define una función que reciba dos números y una función como parámetro.

La función debe aplicar la operación dada a los números y devolver el resultado.

Prueba con funciones de suma y multiplicación.

Función Recursiva (Fibonacci):

Define una función fibonacci(n) que devuelva el n-ésimo número de la secuencia de Fibonacci.

Usa recursión asegurándote de incluir un caso base.

RESPONDER CUESTIONARIO
¿Tiene alguna duda para el profesor?
Hacer pregunta sobre lección
Intro a Python: 4.2 Ejercicio
Muchas gracias, tu pregunta ha sido enviada al profesor. Se pondrá en contacto contigo a tu correo electrónico.
Algo sucedió mal, favor de intentar de nuevo, si sigue sin funcionar favor de solicitar soporte.
Intro a Python: 4.3 Ejercicio

Usando map() con lambda

Dada una lista de números, usa map() y una función lambda para obtener una nueva lista con cada número elevado al cuadrado.

Usando filter() con lambda

Dada la misma lista, usa filter() y una función lambda para obtener solo los números pares.

Usando reduce() con lambda

Usa reduce() y una función lambda para obtener la suma de todos los números en la lista.

RESPONDER CUESTIONARIO
¿Tiene alguna duda para el profesor?
Hacer pregunta sobre lección
Intro a Python: 4.3 Ejercicio
Muchas gracias, tu pregunta ha sido enviada al profesor. Se pondrá en contacto contigo a tu correo electrónico.
Algo sucedió mal, favor de intentar de nuevo, si sigue sin funcionar favor de solicitar soporte.
Intro a Python: 4.4 Ejercicio

Usando raise:

Crea una función llamada verificar_edad(edad) que lance una excepción si la edad es menor a 0 o mayor a 150. Personaliza el mensaje de la excepción.

Usando assert:

Crea una función llamada verificar_entero(numero) que asegure que el número proporcionado sea un entero positivo. Si no lo es, lanza una excepción con un mensaje claro.

Usando try-except:

Crea una función llamada dividir(a, b) que intente dividir dos números. Si el segundo número es cero, captura la excepción y muestra un mensaje que indique que no se puede dividir por cero.

RESPONDER CUESTIONARIO
¿Tiene alguna duda para el profesor?
Hacer pregunta sobre lección
Intro a Python: 4.4 Ejercicio
Muchas gracias, tu pregunta ha sido enviada al profesor. Se pondrá en contacto contigo a tu correo electrónico.
Algo sucedió mal, favor de intentar de nuevo, si sigue sin funcionar favor de solicitar soporte.

Semana

BONUS

Bonus: Python en Local

En el siguiente vídeo veremos cómo instalar Python en tu ambiente local:

RESPONDER CUESTIONARIO
¿Tiene alguna duda para el profesor?
Hacer pregunta sobre lección
Bonus: Python en Local
Muchas gracias, tu pregunta ha sido enviada al profesor. Se pondrá en contacto contigo a tu correo electrónico.
Algo sucedió mal, favor de intentar de nuevo, si sigue sin funcionar favor de solicitar soporte.
M&DL2601 - 03 Sep, 2026
FEGG2601 - 03 Sep, 2026
FEGG2601 - 02 Sep, 2026
ML&AI2603 - 03 Sep, 2026
ML&AI2603 - 02 Sep, 2026
Procesamiento del Lenguaje Natural - 03 Sep, 2026
Procesamiento del Lenguaje Natural - 02 Sep, 2026
Contenido 5.5. Evaluación de respuestas con fuentes
  • Relevancia: la respuesta atiende directamente la pregunta.
  • Fidelidad: cada afirmación está respaldada por el contexto recuperado.
  • Cobertura de evidencia: el contexto contiene todas las piezas necesarias.
  • Citas: las afirmaciones importantes apuntan a fragmentos concretos.

Video

V5.3. Evaluar un sistema RAG — 7 min.

Triángulo de evaluación con relevancia, cobertura de evidencia y fidelidad, más vigencia de la fuente.

Prácticas del módulo

Base de conocimiento: M05_base_conocimiento.md.

  • Seleccionar hasta tres fragmentos para responder cada pregunta.
  • Escribir “sin evidencia suficiente” cuando ningún fragmento contenga la respuesta.
  • Comparar cortes por oración y por párrafo.
  • Evaluar una respuesta con una rúbrica de relevancia, fidelidad, cobertura y citas.

Video de laboratorio

V5.4. Laboratorio en papel: consulta Nébula — 7 min.
Solución diferida: M05_solucion_rag.md.

RAG es una cadena: recuperar bien no garantiza redactar bien y una redacción convincente no compensa una fuente incompleta. Evaluar por etapas permite corregir el componente adecuado.

RESPONDER CUESTIONARIO
Contenido 5.4. Chunking

Un chunk es un fragmento recuperable. Si es demasiado corto, puede perder títulos, excepciones o relaciones. Si es demasiado largo, mezcla temas y añade ruido. El tamaño adecuado debe conservar una unidad de significado y responder al tipo de preguntas reales.

Fragmentos muy pequeños pierden contexto, uno equilibrado conserva regla y excepción, y uno grande añade ruido.
RESPONDER CUESTIONARIO
Contenido 5.3. Embeddings y metadatos

Un embedding representa el contenido mediante una lista de números que funciona como coordenadas. Los textos utilizados en contextos similares suelen quedar próximos, pero la cercanía semántica no equivale a verdad, vigencia, permiso o identidad.

Por ello, la similitud debe complementarse con metadatos como fecha, versión, región, producto, área responsable y permisos del usuario.

Video

V5.2. Fragmentos y embeddings — 8 min.

Mapa conceptual con grupos semánticos de acceso y retención; una tasa queda alejada.
RESPONDER CUESTIONARIO
Contenido 5.2. El archivista y el redactor

El archivista selecciona los fragmentos que llegan al contexto; el redactor produce la respuesta con ese material. Si una respuesta falla, se debe comprobar si la recuperación fue correcta, si el modelo respetó los fragmentos y si la fuente original era suficiente y vigente.

RESPONDER CUESTIONARIO
Contenido 5.1. RAG en tres pasos

RAG significa generación aumentada por recuperación y puede entenderse mediante tres etapas:

  1. Recuperar: buscar fragmentos relacionados con la consulta.
  2. Aumentar: añadir los fragmentos relevantes al contexto de la pregunta.
  3. Generar: producir una respuesta basada en ese contexto y señalar las fuentes.

RAG no modifica los pesos del modelo; añade información pertinente en el momento de responder.

Video

V5.1. RAG en tres pasos — 8 min.

RAG separa recuperar fragmentos, aumentar el contexto y generar una respuesta con citas.

RESPONDER CUESTIONARIO
Contenido 4.6. Privacidad, seguridad y supervisión

Antes de cargar información, identifica si contiene datos personales, financieros, laborales, legales, de salud, credenciales o secretos. Comprueba que la herramienta, la cuenta y la finalidad estén autorizadas; minimiza los datos y conserva bajo control humano cualquier decisión que afecte a una persona.

Video

V4.3. Datos, privacidad y seguridad — 7 min.

Actividad

Clasificar cinco escenarios como permitido, requiere autorización o no debe realizarse así.

Cierre para la plataforma

La confianza no proviene del tono de una respuesta. Proviene de evidencia rastreable, límites claros y una revisión proporcional al impacto.

Comprobación y transferencia

  • Knowledge check de seis reactivos — 10 min.
  • Registrar una afirmación que siempre deba verificarse, su fuente primaria y una decisión que deba permanecer bajo control humano.

RESPONDER CUESTIONARIO
Contenido 4.5. Jerarquía de fuentes y revisión de citas

Según la tarea, debe priorizarse el documento original, una norma, un conjunto de datos o una comunicación oficial; después, la documentación técnica, los artículos académicos, las fuentes secundarias reputadas y, finalmente, los agregadores o publicaciones sociales.

Cada cita debe abrirse y revisarse para confirmar autor, fecha, versión y fragmento de soporte.

Contenido 4.6. Privacidad, seguridad y supervisión

Antes de cargar información, identifica si contiene datos personales, financieros, laborales, legales, de salud, credenciales o secretos. Comprueba que la herramienta, la cuenta y la finalidad estén autorizadas; minimiza los datos y conserva bajo control humano cualquier decisión que afecte a una persona.

Video

V4.3. Datos, privacidad y seguridad — 7 min.

Actividad

Clasificar cinco escenarios como permitido, requiere autorización o no debe realizarse así.

Cierre para la plataforma

La confianza no proviene del tono de una respuesta. Proviene de evidencia rastreable, límites claros y una revisión proporcional al impacto.

RESPONDER CUESTIONARIO
Contenido 4.4. Consulta rápida e investigación profunda

La consulta rápida sirve para localizar un dato puntual, una definición vigente o una página oficial. La investigación profunda es adecuada cuando se deben combinar fuentes, comparar metodologías, resolver contradicciones o elaborar un informe documentado.

La profundidad no depende de la longitud de la tarea, sino de la necesidad de investigar, contrastar y sintetizar.

Video

V4.4. Investigación con fuentes — 6 min.

RESPONDER CUESTIONARIO
Contenido 4.3. Cuatro estados de evidencia
  • Respaldada: la fuente contiene evidencia directa y suficiente.
  • Contradicha: la fuente presenta un dato incompatible.
  • No sustentada: existe información relacionada, pero no alcanza para concluir.
  • No verificable: no se cuenta con la evidencia necesaria para confirmar o refutar.

No encontrar evidencia no significa automáticamente que una afirmación sea falsa.

Cuatro estados de evidencia: respaldada, contradicha, no sustentada y no verificable.

Laboratorio

Archivos: M04_memo_generado.md y M04_paquete_evidencia.md.
Entregable: tabla con ID, Afirmación, Estado, Evidencia, Corrección propuesta y Confianza.
Solución diferida: M04_solucion_verificacion.md.

RESPONDER CUESTIONARIO
Contenido 4.2. Ciclo de verificación

El proceso de verificación consta de cinco acciones:

  1. separar la respuesta en afirmaciones;
  2. localizar evidencia para cada afirmación;
  3. clasificar su estado;
  4. corregir con la información disponible;
  5. comprobar nuevamente el resultado.

Video

V4.2. Verificación por afirmaciones — 8 min.

Ciclo de cinco pasos: afirmar, localizar evidencia, clasificar, corregir y comprobar de nuevo.

RESPONDER CUESTIONARIO
Contenido 4.1. Alucinaciones y variabilidad

Una alucinación es contenido generado que parece responder a la pregunta, pero es falso o no está respaldado. Puede presentarse como una fecha inventada, una cita inexistente, una cifra sin fuente, una atribución incorrecta o una conclusión más fuerte que la evidencia.

Una demostración exitosa no garantiza un proceso confiable. La estabilidad debe evaluarse mediante varios casos y criterios definidos.

Video

V4.1. Por qué alucina una salida convincente — 8 min.

RESPONDER CUESTIONARIO
Contenido 3.4. Imágenes y gráficos

Un modelo visual puede describir tendencias y leer etiquetas, pero también puede confundir escalas, leyendas o valores pequeños. Antes de aceptar una interpretación conviene identificar el título, el periodo, los ejes, las unidades, la leyenda, los valores visibles y aquello que no puede leerse con confianza.

Video

V3.4. Imágenes y gráficos sin adivinar — 7 min.

Actividad visual

Observar el tablero de cartera y responder qué sucursal presenta morosidad, si el gráfico demuestra sus causas y qué información adicional sería necesaria antes de recomendar una acción.

La calidad de un análisis multimodal depende de la calidad de la extracción. Inventariar, comprobar y reconciliar son parte central del razonamiento.

Comprobación y transferencia

  • Knowledge check de seis reactivos — 10 min.
  • Identificar un archivo de uso frecuente, sin cargarlo, y anotar qué elementos podrían perderse y qué controles deberían aplicarse.

RESPONDER CUESTIONARIO
Contenido 3.3. Tablas y hojas de cálculo

Antes de solicitar conclusiones sobre una tabla, se deben identificar encabezados, número de registros, tipos de datos, valores faltantes, unidades y formatos de fecha. Toda cifra incluida en un resumen debe poder rastrearse hasta una columna y una operación.

Video

V3.3. Hojas de cálculo: preguntar, comprobar, interpretar — 9 min.

Práctica descargable

Archivo: M03_datos_practica.xlsx
Actividad: inventariar la hoja, calcular controles, crear banderas didácticas y comprobar los resultados de manera independiente.
Solución diferida: M03_solucion_datos.md.

RESPONDER CUESTIONARIO
Contenido 3.2. Documentos y OCR

El reconocimiento óptico de caracteres convierte imágenes de texto en caracteres. Puede confundir letras y números, comas y puntos decimales, columnas, firmas, sellos o texto inclinado. Cuando la fidelidad literal importa, la herramienta no debe corregir silenciosamente el documento.

Video

V3.2. Extracción documental con trazabilidad — 8 min.

Práctica descargable

Archivo: M03_minicontrato_sintetico.txt
Entregable: tabla con Campo, Valor extraído, Evidencia literal, Confianza y Revisión necesaria.
Solución diferida: M03_solucion_minicontrato.md.

RESPONDER CUESTIONARIO
Contenido 3.1. Qué ocurre cuando cargas un archivo

La herramienta debe convertir el archivo en una representación procesable. Puede extraer texto, reconocer caracteres, leer celdas, describir imágenes o dividir el contenido. Durante este proceso pueden perderse encabezados, tablas, notas al pie, signos, unidades, orden de lectura o relaciones entre cifras y etiquetas.

La secuencia recomendada es:

  1. inventariar el archivo;
  2. extraer los campos necesarios;
  3. comprobar muestras, unidades y totales;
  4. analizar únicamente cuando la representación sea suficiente.

Video

V3.1. Qué ocurre cuando cargas un archivo — 8 min.

Flujo desde archivo a extracción, selección, generación y control; una falla puede aparecer en cualquier etapa.
RESPONDER CUESTIONARIO
Contenido 2.5. Razonamiento verificable

En tareas complejas conviene solicitar productos que una persona pueda revisar: supuestos, fórmulas, evidencia, cálculos con unidades, datos faltantes, incertidumbres y una justificación breve. No es necesario pedir que el modelo exponga toda su cadena interna de razonamiento.

Video

V2.5. Razonamiento sin pedir cadena de pensamiento — 8 min.

Prácticas del módulo

  • Clasificación con ejemplos: crear primero una versión zero-shot y después añadir un ejemplo únicamente si mejora el formato o aclara los límites.
  • Correo ejecutivo: construir un prompt MARCO para redactar un correo de máximo 140 palabras con cifras verificadas.
  • Taller de plantilla reutilizable: probar la misma plantilla con una entrada completa y otra incompleta.

Un buen prompt no obliga al modelo a adivinar qué significa “bien”. MARCO convierte una intención en un resultado que puede revisarse, repetirse y mejorar.

RESPONDER CUESTIONARIO
Contenido 2.4. Iteración y plantillas

Una instrucción como “hazlo mejor” no explica qué debe cambiar. Para iterar de forma útil:

  1. genera una primera versión;
  2. evalúala con una lista de criterios;
  3. identifica el defecto de mayor impacto;
  4. solicita un cambio localizado;
  5. comprueba nuevamente el resultado.

Las tareas recurrentes pueden convertirse en plantillas al separar las partes fijas de los datos variables.

Video

V2.4. Iteración y plantillas — 8 min.

Archivo: M02_plantilla_MARCO.md

RESPONDER CUESTIONARIO
Contenido 2.3. Del prompt vago al verificable

Antes de enviar una instrucción, revisa:

  1. si la meta describe una acción observable;
  2. si los datos están delimitados;
  3. si las reglas resuelven casos ambiguos;
  4. si el formato permite comprobar que nada falta;
  5. si existe un criterio de éxito independiente del estilo de redacción.

Cuando falte información, la respuesta debe señalarlo en lugar de inventarla. Puede agregarse una sección final de Comprobaciones con criterios cumplidos, supuestos y puntos que requieren revisión humana.

Video

V2.3. Del prompt vago al verificable — 8 min.

RESPONDER CUESTIONARIO
Contenido 2.2. Zero-shot, one-shot y few-shot
  • Zero-shot: la instrucción no contiene ejemplos; es el punto de partida cuando la tarea y el formato son claros.
  • One-shot: se incluye un ejemplo de entrada y salida para mostrar un patrón.
  • Few-shot: se incluyen varios ejemplos para representar casos variados o límites de una clasificación.

Más ejemplos no siempre producen una mejor respuesta. Cada ejemplo debe ser consistente con las reglas y con el formato solicitado.

Video

V2.2. Zero-, one- y few-shot — 7 min.

Tres tarjetas comparan prompts sin ejemplo, con un ejemplo y con varios ejemplos.
RESPONDER CUESTIONARIO
Contenido 2.1. El método MARCO

Un prompt útil se parece a una especificación breve. El método MARCO reúne cinco decisiones:

  • M — Meta: verbo observable y resultado esperado.
  • A — Antecedentes: audiencia, situación y datos relevantes.
  • R — Rol y reglas: perspectiva útil, límites y prohibiciones.
  • C — Criterios de éxito: condiciones que permiten comprobar la calidad.
  • O — Output: estructura exacta de la respuesta.

Video

V2.1. El método MARCO — 9 min.

Cinco componentes enlazados: Meta, Antecedentes, Rol y reglas, Criterios y Output.

RESPONDER CUESTIONARIO
Contenido 1.4. Cinco modos de trabajo
  • Chat: transforma, resume, redacta o explica a partir del contexto disponible.
  • Búsqueda: localiza información actual y fuentes verificables.
  • Trabajo con archivos: responde con base en documentos seleccionados.
  • RAG: recupera fragmentos pertinentes de una colección amplia antes de responder.
  • Agente: persigue un objetivo mediante varios pasos y puede utilizar herramientas o preparar acciones.

A mayor capacidad de actuar, mayor necesidad de permisos, registros, límites y aprobación humana.

Video

V1.4. Cinco confusiones que debes evitar — 7 min.

Práctica del módulo

La herramienta mínima suficiente

El participante deberá elegir entre chat, búsqueda, fuentes, RAG o agente para cinco tareas y registrar una razón y un riesgo en cada caso:

  1. Cambiar un comunicado técnico a lenguaje ciudadano.
  2. Confirmar una tasa de referencia vigente.
  3. Contestar preguntas sobre tres políticas internas.
  4. Consultar una colección de diez mil manuales y reportes.
  5. Recibir una solicitud, consultar reglas, preparar una recomendación y enviarla después de aprobación.

Cierre para la plataforma

Un modelo generativo es una herramienta flexible de transformación y generación, no una autoridad. Elegir la modalidad adecuada es la primera decisión de calidad y seguridad.

RESPONDER CUESTIONARIO
Contenido 1.3. Tokens, contexto y límites

Un token es una unidad que procesa el modelo. Puede ser una palabra completa, una parte de una palabra o un signo. La ventana de contexto es la cantidad de información que el sistema puede considerar durante una interacción.

Cuando el material es extenso, algunos fragmentos pueden quedar fuera o recibir menor atención. Para reducir este riesgo conviene separar instrucciones, datos y ejemplos; hacer visibles las reglas importantes y dividir las tareas complejas en productos intermedios comprobables.

RESPONDER CUESTIONARIO
Contenido 1.2. De los sistemas de reglas a las herramientas

Los sistemas de lenguaje han evolucionado desde reglas escritas manualmente y patrones estadísticos hasta representaciones vectoriales, mecanismos de atención y herramientas capaces de consultar fuentes o ejecutar funciones. Esta evolución explica capacidades distintas; no debe presentarse únicamente como una lista de marcas o productos.

Video

V1.2. Una historia útil, sin convertirla en museo — 8 min.

RESPONDER CUESTIONARIO
Contenido 1.1. Qué significa generar

Un modelo del lenguaje recibe una secuencia de unidades de texto y calcula qué continuación resulta plausible. Repite este proceso muchas veces hasta formar una respuesta. La fluidez proviene de patrones aprendidos a gran escala, pero no demuestra que cada afirmación haya sido verificada.

Por ello, la pregunta útil no es solamente “¿la IA sabe esto?”, sino “¿qué información tuvo disponible y cómo puedo comprobar su respuesta?”.

Video

V1.1. Qué genera un modelo de lenguaje — 7 min.

Actividad interactiva

Presentar varias frases incompletas para que el participante elija o proponga continuaciones posibles. La retroalimentación debe explicar que pueden existir varias continuaciones plausibles y que el contexto modifica su probabilidad.

RESPONDER CUESTIONARIO
Actividad

Actividades

  • Ver el video V0.1. Bienvenida y contrato de aprendizaje — 5 min.
  • Registrar una meta personal de aprendizaje.
  • Aceptar el acuerdo de uso responsable.
  • Contestar el diagnóstico inicial de diez reactivos, sin calificación.

Evaluación Diagnostica

RESPONDER CUESTIONARIO
Aviso de uso responsable

No cargues información personal, confidencial, credenciales ni archivos reales de tu organización. Todas las prácticas del curso utilizan datos sintéticos. En situaciones laborales, consulta siempre las políticas institucionales y utiliza únicamente herramientas autorizadas.

RESPONDER CUESTIONARIO
M&DL2601 - 01 Sep, 2026
WA2602 - 01 Sep, 2026
Procesamiento del Lenguaje Natural - 01 Sep, 2026
ML&AI2603 - 01 Sep, 2026
M&DL2601 - 31 Ago, 2026
FEGG2601 - 31 Ago, 2026
AF2601 - 07 Ago, 2026
WA2602 - 28 Ago, 2026
ML&AI2603 - 27 Ago, 2026
Procesamiento del Lenguaje Natural - 27 Ago, 2026
WA2602 - 26 Ago, 2026
Procesamiento del Lenguaje Natural - 26 Ago, 2026
ML&AI2603 - 26 Ago, 2026
M&DL2601 - 25 Ago, 2026
Procesamiento del Lenguaje Natural - 25 Ago, 2026
ML&AI2603 - 25 Ago, 2026
WA2602 - 25 Ago, 2026
AF2601 - 21 Ago, 2026
AF2601 - 19 Ago, 2026
M&DL2601 - 19 Ago, 2026
WA2602 - 19 Ago, 2026
Procesamiento del Lenguaje Natural - 20 Ago, 2026
Procesamiento del Lenguaje Natural - 19 Ago, 2026
ML&DL2601 - 20 Ago, 2026
ML&AI2603 - 20 Ago, 2026
ML&AI2603 - 19 Ago, 2026
GenIA2603 - 20 Ago, 2026
GenIA2603 - 19 Ago, 2026
ML&AI2603 - 18 Ago, 2026
AF2601 - 18 Ago, 2026
Procesamiento del Lenguaje Natural - 18 Ago, 2026
ML&DL2601 - 18 Ago, 2026
ML&DL2601 - 17 Ago, 2026
AF2601 - 17 Ago, 2026
GenIA2603 - 17 Ago, 2026
AF2601 - 13 Ago, 2026
ML&DL2601 - 13 Ago, 2026
ML&AI2603 - 13 Ago, 2026
Procesamiento del Lenguaje Natural - 13 Ago, 2026
GenIA2603 - 13 Ago, 2026
WA2602 - 14 Ago, 2026
WA2602 - 13 Ago, 2026
I&C2601 - 11 & 12 Ago, 2026
Procesamiento del Lenguaje Natural - 12 Ago, 2026
Procesamiento del Lenguaje Natural - 11 Ago, 2026
AF2601 - 12 Ago, 2026
AF2601 - 11 Ago, 2026
GenIA2603 - 12 Ago, 2026
ML&AI2603 - 12 Ago, 2026
ML&AI2603 - 11 Ago, 2026
WA2602 - 12 Ago, 2026
WA2602 - 11 Ago, 2026
ML&DL2601 - 10 Ago, 2026
I&C2601 - 10 Ago, 2026
GenIA2603 - 10 Ago, 2026
AF2601 - 10 Ago, 2026
ML&AI2603 - 06 Ago, 2026
WA2602 - 06 Ago, 2026
Procesamiento del Lenguaje Natural - 06 Ago, 2026
GenIA2603 - 06 Ago, 2026

Acceso restringido

Por favor de comunicarte con nuestro soporte si este es un error.