Mis primeros pasos en Python

  • Nivel:
    • Bachillerato
    • E.S.O.
    • Primaria
  • Área del pensamiento computacional:
    • Inteligencia Artificial
    • Programación

Autor

Miquel Nebot Aragón

Miquel Nebot Aragón

Breve descripción 

En esta propuesta queremos enseñar cómo integrar el lenguaje de programación Python desde cero en las aulas de los últimos ciclos de Educación Primaria. Aunque todo dependerá del nivel de desarrollo y madurez del alumnado, podemos asegurar, e infinidad de experiencias de éxito desarrolladas lo avalan; que, si existe un trabajo intensivo previo en otros lenguajes de programación orientados a objetos, como por ejemplo Scratch, niños y niñas con habilidades e inquietudes por la programación, la robótica y el pensamiento computacional tienen la capacidad de desarrollar retos de iniciación que les permitirán descubrir Python. 

Python, a diferencia de Scratch, es un lenguaje de programación basado en texto que destaca por disponer de una sintaxis clara y sencilla, erigiéndose así, como uno de los lenguajes de programación más utilizados para el diseño web, de aplicaciones de escritorio y móviles. Además, en la actualidad, es ampliamente usado para el desarrollo de inteligencia artificial y aprendizaje automático. 

Niveles y etapa

5.° y 6.° de Educación Primaria (etapa de iniciación), ESO y Bachillerato. 

Asignatura

Matemáticas y Lengua y literatura.   

Temporalización

En esta propuesta se muestran 17 actividades que pueden ser incluidas en cualquier momento del curso escolar, según las necesidades de programación de las diferentes asignaturas implicadas en el desarrollo de estas habilidades. 

Área de trabajo

  • Pensamiento computacional. 
  • Inteligencia artificial. 
  • Lenguajes de programación. 
  • Competencias digitales del alumnado. 

Punto de partida

Aunque el punto de partida es el descubrimiento y puesta en práctica de secuencias muy básicas de comandos de la sintaxis de Python, es recomendable que el alumnado haya adquirido algo de experiencia en la programación orientada a objetos mediante bloques (Scratch, Arduino, Minecraft Education, propuestas de Code.org…). Aun así, no es imprescindible.  Así pues, dependiendo del nivel de experiencia, desarrollo y madurez del alumnado, es perfectamente posible llevar a cabo este y otros proyectos de índole básica sin haber trabajado de manera intensiva la programación en el aula. 

Antes de arrancar con el desarrollo de las propuestas específicas, es esencial que el docente sea capaz de instalar Python en su ordenador para familiarizarse con el lenguaje y poder llevar a cabo todas las pruebas que crea oportunas. Para ello, se ponen a disposición dos vídeos: uno para la instalación de Python en Windows y otro para la instalación y uso en el sistema operativo ChromeOS

Si tenemos en cuenta la diversidad de ambientes y situaciones específicas de aprendizaje que podemos encontrar en las aulas a día de hoy, es imprescindible aislar el desarrollo de nuestra propuesta de unas condiciones, sistemas o equipamiento específico. Por ello, os acercamos la posibilidad de utilizar Python en línea a través de diversos intérpretes de comandos alojados en la nube como son: python.org, PythoAnywhere y W3Schools

Finalmente, el presente proyecto usa la herramienta Replit.com, que es un entorno de desarrollo integrado en línea que permite programar desde el navegador. Además de ello, si registramos en la plataforma el centro educativo, es posible que funcione como un entorno o plataforma virtual de aprendizaje similar a Google Classroom o Teams. Se puede proponer actividades al estudiantado, corregir sus tareas, realizar las correspondientes retroalimentaciones… En definitiva, un aula virtual completa para nuestro día a día de la programación en el aula. 

En los siguientes enlaces dejamos unos tutoriales para conocer y familiarizarte con Replit

Objetivos

  • Generales: Introducir las bases necesarias para la construcción de proyectos simples de programación mediante el lenguaje basado en texto Python. 
  • Específicos: descubrir, comprender y trabajar con los elementos siguientes: 
    • La función print().
    • Los comentarios y anotaciones en nuestros programas. 
    • Los caracteres especiales y las secuencias de escape. 
    • Los parámetros sep=(””) y end=(””) en la función print()
    • El concepto de variable.
    • Tipos de datos en Python: 
      • Cadenas de texto o strings
      • Numéricos: enteros (int), reales (float) y complejos (complex).
      • Secuencias de datos: listas, tuplas y diccionarios.
    • Operadores aritméticos básicos.
    • Operadores de comparación.
    • Sentencias condicionales. 
    • Importación de módulos. 

Desarrollo de la propuesta

A través del conjunto de 17 actividades el alumnado podrá ir incorporando las habilidades necesarias para el desarrollo de proyectos básicos en Python de manera progresiva y a su ritmo.

Son actividades independientes que pueden fragmentarse o servir de inspiración para otras nuevas, aunque es recomendable seguir el orden propuesto, ya que el nivel de complejidad va aumentando a medida que vamos avanzando a través de ellas. A partir de estas deberá ser el propio docente el encargado de analizar el nivel del grupo y de qué manera pueden ser incorporadas en la programación de las diversas asignaturas donde se pretendan desarrollar estas habilidades específicas. 

El conjunto de ejercicios de iniciación propuesto puede desarrollarse utilizando cualquier intérprete de comandos, tanto sea en local como en línea. 

Cada una de las actividades lleva asociado un ejemplo de resolución que el docente podrá analizar, adaptar y reutilizar para con su alumnado. Dichos ejemplos están desarrollados en la plataforma Colaboratory de Google (cuadernos gratuitos de Jupyter Notebook). Al ser un producto de Google se puede optar por programar dentro de Classroom, lo que permite generar un cuaderno de ejemplo con copia para cada alumno.  

Imagen 0. Google Colaboratory en Classroom. Crear una copia para cada alumno/a.

Mis primeros pasos en Python
Imagen 0. Google Colaboratory en Classroom. Crear una copia para cada alumno/a.

Actividad 1: Presentar texto en pantalla. 

En esta primera actividad el alumnado debe ser capaz de imprimir en pantalla una información concreta. Con un intérprete de comandos y utilizando la instrucción simple print(“Mi texto”), verá cómo es capaz de interactuar con Python, que mostrará en pantalla el resultado de su primera línea de código. 

Actividad 2: Anidamos información en una única instrucción. 

En esta segunda actividad el alumno concatenará texto en una única instrucción del comando print(“Mi texto”). Lo conseguirá mediante el signo “+” o también con una simple coma “,” separando los elementos a mostrar. 

Actividad 3: Comentar texto y hacer anotaciones. 

Es recomendable que el alumnado se acostumbre a realizar comentarios y anotaciones que facilitan la lectura de su programa. Para ello, presentaremos el símbolo reservado de la almohadilla (“#”) que sirve para comentar o inhabilitar cualquier línea en nuestro programa. Si el texto a introducir es extremadamente largo, se pueden utilizar 3 comillas simples (‘’’ ‘’’) para abrir y cerrar el texto a eludir por parte de nuestra programación. 

Actividad 4. Caracteres especiales y secuencias de escape. 

Para separar la información en dos líneas diferentes se utilizará “\n”.  La barra inversa “\” actúa como elemento de escape, es decir, el programa lo toma en consideración y bloquea la función del carácter que sigue. Por ejemplo, para escribir unas comillas dentro de un texto necesitaremos parar el programa mediante este símbolo antes de escribirlas. Veamos algunos ejemplos que proponer a nuestro alumnado. 

Actividad 5: Los parámetros sep=(””) y end=(””) en la función print().

Se utilizan para indicar cuál será el separador deseado para los elementos que componen nuestra función y también de qué manera queremos finalizar dicha sentencia. El alumnado puede trabajar libremente creando sus propias oraciones utilizando dichos parámetros. 

Imagen 5. Los parámetros sep=() y end=() de la función print().
Imagen 5. Los parámetros sep=() y end=() de la función print().

Actividad 6: Dibujamos con el código de caracteres ASCII. 

Una vez que nos hemos familiarizado con las opciones básicas de las cadenas de texto, vamos a dar rienda suelta a la imaginación del alumnado para que consiga dibujar en pantalla imágenes utilizando caracteres del alfabeto latino (código ASCII).

Tabla 1. Ejemplos de figuras con caracteres del código ASCII.
Tabla 1. Ejemplos de figuras con caracteres del código ASCII.

Actividad 7: Las variables. 

Las variables son elementos indispensables de cualquier lenguaje de programación. Podríamos entenderlas como pequeños espacios en la memoria de nuestro ordenador donde dejamos unos valores determinados para que, posteriormente, los utilice para realizar cualquier función. En esta actividad el alumnado se familiarizará de manera muy básica con ellas.

Actividad 8: Solicitamos intervención del usuario/a. 

Llegados a este momento, tendremos ya la capacidad de solicitar intervención al usuario en el devenir de nuestro programa y lo conseguiremos con la función de entrada por teclado, input(). En esta actividad el programa solicitará al usuario/a que introduzca su nombre para posteriormente mostrar un mensaje de saludo cordial en pantalla. 

Actividad 9: Tipos de datos. Cadenas de texto o strings

Hay cuatro grandes grupos de datos: 

  1. De texto 
  2. Numéricos 
  3. Booleanos 
  4. Secuencias 

En esta actividad se trabajan cadenas de texto, también conocidas como strings. Se aprenderá a contar la longitud de una cadena, la cantidad de veces que se repite un valor, a buscar la posición de un carácter determinado, a separar elementos, reemplazar, extraer, pasar a minúsculas… 

Actividad 10: Tipos de datos. Datos numéricos. 

Continuamos con los datos que más juego nos van a dar a la hora de plantear retos y problemas alumnado como son los numéricos. 

  • Int: Enteros.  
  • Float: Reales o de «coma flotante». 
  • Complex: Complejos. 

Esta actividad sirve para construir una máquina que indica qué número es mayor. Para ello, deberemos echar mano de los operadores lógicos y de comparación. Además, introduciremos también aquí las sentencias condicionales, que nos ayudarán a encaminar el devenir del programa y serán unos de los elementos clave en futuros proyectos. 

Actividad 11: Secuencias. Listas. 

Las listas en Python representan a un conjunto ordenado de valores que serán almacenadas en memoria como un único objeto para ser procesadas con posterioridad. Los elementos deberán ir entre corchetes «[ ]». 

Introduce en esta actividad los nombres de las diez primeras personas de la lista de clase. Ordena alfabéticamente y extrae en pantalla el nombre de la primera y la última persona de esta lista. Finalmente, haz una lista con dichos valores.

Actividad 12: Secuencias. Listas. Métodos. 

Existe una gran cantidad de métodos para trabajar los datos incluidos en una lista. En el siguiente ejemplo combinado vemos cómo podemos contar, modificar, añadir, ordenar… la información contenida en una de ellas. 

Crearemos una lista con cinco materiales por tamaño que encontramos en el cajón o la taquilla personal del centro. A continuación: 

  • Contaremos el número de elementos introducidos. 
  • Contaremos si algún elemento en cuestión está repetido. 
  • Miraremos en qué posición hemos colocado un elemento en cuestión. 
  • Finalmente, extraeremos un elemento de la lista y lo borraremos. 

Actividad 13: Secuencias. Tuplas. 

Las tuplas en Python son iguales que las listas, conjuntos ordenados de datos que el programa tratará para generar un producto final. La gran diferencia que hay con las anteriores es que son inmutables, es decir, que no pueden ser modificadas.  

En esta actividad sobre tuplas crearemos tres diferentes (una con valores numéricos, otra con cadenas de texto y otra mixta) e intentaremos que el programa nos indique de qué tipo de dato se trata. Finalmente, cambiaremos un elemento de la tupla para comprobar que arroja error, ya que son conjuntos inmutables. 

Actividad 14: Secuencias. Diccionarios. 

Los diccionarios, al igual que las listas y las tuplas, son secuencias de datos, pero en esta ocasión tienen la particularidad que sirven para ser almacenados por parejas clave: valor. Veamos un ejemplo: 

Imagen 32. Ejemplo diccionario.
Imagen 32. Ejemplo diccionario.

En la presente actividad crearemos una lista con los conductores habituales, marcas y colores de los coches de nuestra familia. Veamos un ejemplo práctico de cómo hacerlo y cómo mostrar en pantalla qué conduce cada uno/a. 

Imagen 33. Ejemplo de actividad. Diccionario anidado dentro de otro diccionario. for y in para mostrar datos en pantalla
Imagen 33. Ejemplo de actividad. Diccionario anidado dentro de otro diccionario. for y in para mostrar datos en pantalla

Actividad 15: Utilizando librerías. 

Una librería es un conjunto de módulos (porciones de programa) cuya agrupación tiene una finalidad específica. En Python encontramos infinidad de librerías que nos facilitan el trabajo dentro de este lenguaje de programación, ya que otro usuario/a ha desarrollado el trabajo previamente por nosotros. Veamos dos ejemplos:  

  • Importaremos la librería time para poder parar la ejecución del programa unos instantes. 
  • Usaremos random para generar de manera aleatoria cinco números entre 0 y 100. 

Recursos materiales

  • Ordenador o tableta con acceso a internet (recomendable que disponga de teclado físico). 
  • Navegador Firefox, Chrome, Edge, Safari o similar actualizado a la última versión disponible. 
  • Herramienta en línea para la compilación y ejecución del código de Python: 

Debido a su sencillez, versatilidad y características, en la presente propuesta se presentará únicamente la opción 1, Replit.com

Beneficios de su aplicación

Debido al impacto que están teniendo las herramientas y dispositivos digitales en nuestras vidas diarias y para el acceso al mercado laboral, que requiere conocimientos específicos de programación, esta propuesta de iniciación a Python se considera la base de enseñanza desde edades tempranas para aquellos estudiantes que en el futuro se decantan por esta rama, así contribuirá a su desarrollo en competencias digitales. 

Evaluación de la propuesta

Tanto a través de la plataforma Replit como dentro de Google Classroom, encontramos a disposición del docente los recursos necesarios para poder efectuar las retroalimentaciones necesarias a nuestro alumnado para intentar acompañarlos en el proceso de adquisición de las habilidades propuestas. Para resolver todas y cada una de las actividades propuestas no existe un único camino o vía. Por eso, se potenciará la creatividad del alumnado para que consiga desarrollar al máximo esta y otras habilidades en el transcurso de nuestras sesiones.  

Las características básicas en las cuales deberemos fijarnos a la hora de evaluar las propuestas de nuestro alumnado son: 

  • ¿Sabe trabajar en equipo? 
  • ¿Muestra dotes de liderazgo en los proyectos colaborativos? 
  • ¿Acepta el rol propuesto en el grupo? 
  • ¿Consigue el resultado solicitado? 
  • ¿Es ordenado/a en su propuesta? 
  • ¿Presenta un código optimizado? 
  • ¿Comenta y realiza anotaciones que documenten y faciliten la lectura del mismo? 
  • ¿Presenta soluciones creativas y alternativas al reto propuesto? 
  • ¿Muestra interés por la programación? 

Propuestas de mejora

Los ejercicios parcialmente resueltos o desarrollos guiados pueden facilitar las primeras sesiones en un lenguaje de programación como Python. 

Material de apoyo y/o ampliación

  • El autor, de manera progresiva, irá añadiendo a su repositorio de GitHub posibles propuestas y retos para trabajar Python en el aula a través del entorno de programación en línea replit.com.  
  • Lista de reproducción de vídeos relacionados con la introducción de Python en el aula. 
  • Muro de Wakelet con recursos y enlaces para completar nuestra formación sobre Python.