Comenzando Última modificación: 2021-09-20

PASAYO es un conjunto de secuencias didácticas junto con recomendaciones para su uso, utilizadas para la enseñanza de programación textual en niñas y niños en el espectro autista. PASAYO utiliza narrativas, dibujos, pseudocódigo visual y código python para construir una experiencia de aprendizaje en programación suave y estimulante. PASAYO estructura sus secuencias didácticas atendiendo a una complejidad incremental, con pisos de acceso bajos y techos altos.

Para comenzar a utilizar PASAYO necesitamos introducir algunos conceptos simples: narrativa, pseudocódigo y secuencia didáctica.

Entidades

Una entidad es un sustantivo importante dentro de una historia. Puede ser una cosa, una persona, un juguete, etc. En Ciencias de la Computación, las Entidades primero se representan gráficamente (a efectos de construir modelos que faciliten el desarrollo de una solución) y luego se representan con código de programación textual. Las Entidades pueden tener asociada información -como cantidades-, por ejemplo una Entidad león podría tener asociada la cantidad 5 refiriendo a que hay 5 leones en la selva.

Narrativas

Una narrativa es una historia o cuentito corto que utilizamos para contextualizar el aprendizaje. Es importante recurrir a narrativas que tengan alguna significación para el niñe. Por ejemplo, si a nuestro niñe le gustan los payasos, entonces ya tenemos el actor principal de nuestra narrativa. Cualquier temática es válida: zombis, marcianos, super héroes, princesas o animales. Lo importante, es que tanto los personajes como el desarrollo de la historia tengan una significación propia para el niñe.

¿Qué persigue una narrativa en términos didácticos? Establer un marco de sentido a la actividad de programación que sucederá. Las narrativas proporcionan las entidades que serán modeladas así como un conjunto de restricciones para el desafío a resolver.

Ejemplos de Narrativas:

Zombies en el Parque

Una noche, 5 amigos paseaban por el parque. De pronto desde la oscuridad aparecieron 8 zombies y los mordieron. ¿Cuántos zombies hay ahora en total?

La fiesta de cumpleaños

Es el cumpleaños de María y hay una torta muy rica. A la fiesta vinieron 6 nenes y 4 nenas. ¿En cuántas partes hay que partir la torta?


Registro de la experiencia

En C4 nos interesa construir la mejor plataforma para enseñar programación a nuestros niñes en el espectro. Pero para ello, necesitamos investigar qué ocurre cuando usamos PASAYO. Por suerte, tenemos a nuestros amigos los monos que nos van a guardar todas las experiencias que registremos!

MONOSFUE es un registro en línea donde podrás contarnos cómo nos fue con cada una de las experiencias PASAYO que hagas en casa. Es muy importante que solicites un usuario y registres todas las experiencias. Los datos son absolutamente privados y solo se utilizarán con fines de investigación.

Lenguaje Visual

Llamamos Lenguaje Visual (también conocido como pseudocódigo en el mundo de las Ciencias de la Computación) a un conjunto de recursos visuales compuesto de dibujos, cajas, flechas y etiquetas.

El Lenguaje Visual permite bocetar un borrador del problema que se está resolviendo, y habilita un mejor abordaje de su solución. Permite abstraer la complejidad de los detalles de la Narrativa para concentrarse en las Entidades, su información y las relaciones operacionales que se establecen entre ellas.

Es importante comenzar a pensar los problemas utilizando el lenguaje visual, ya que esto brinda una instancia de modelado cognitivo de fundamental importancia para comprender lo que sucederá luego en código.

...
Lenguaje Visual

A dibujar!

Descargar

1-Programación secuencial

1.1-Modelando una Entidad

Las Entidades son sustantivos con un importante peso referencial dentro de la narrativa propuesta. A veces, las Entidades pueden estar cuantificadas: 4 manzanas, 3 perros, etc. Otra veces no se suministra ninguna cuantificación aunque suelen aparecer en plural. Normalmente, las entidades que buscamos modelar son aquellas que proponen contenido a la historia que se está contando. En programación, las Entidades son una abstracción del mundo real y permiten modelar componentes del modelo de datos.

OBJETIVO DIDÁCTICO Desarrollar habilidades de extracción de información sobre el texto.
OBJETIVO TÉCNICO Identificar y representar una Entidad dentro de la narrativa
RESULTADO Modelo de cajitas

Zombies en el Parque

Una noche, en parque aparecieron unos zombis! Que susto!


Registrar Experiencia

1.2-Modelando Entidades

Dentro de una narrativa podemos tener varias Entidades. Normalmente en el contexto de PASAYO trabajaremos con dos Entidades, por eso es importante generar la experiencia de identificarlas y darles cuerpo en el formato de una cajita.

OBJETIVO DIDÁCTICO Desarrollar habilidades de extracción de información sobre el texto.
OBJETIVO TÉCNICO Identificar y Representar dos Entidades dentro de la narrativa
RESULTADO Modelo de cajitas

Zombies en el Parque

Una noche, unos Amigos estaban jugando en el parque, cuando de pronto aparecieron unos Zombis! Que susto!


Registrar Experiencia

1.3-Asignando valores

Ahora que estamos familiarizadas/os con la representación de Entidades en el formato de cajitas, es hora de aprender a guardar cosas allí. Para ello, propondremos una variante en la narrativa, que cuantifique cada una de las entidades. Esto nos permitará utilizar la flecha para asignar esas cantidades en las cajitas y más importante: comenzamos a codificar!

OBJETIVO DIDÁCTICO Desarrollar habilidades de extracción de información sobre el texto.
OBJETIVO TÉCNICO Asignar valores a las cajitas
RESULTADO Programa

Zombies en el Parque

Una noche, 3 Amigos estaban jugando en el parque, cuando de pronto aparecieron 5 Zombis! Que susto!


Registrar Experiencia

1.4-Operaciones

En este punto, ya tenemos claro que las entidades pueden representarse como cajitas donde se almacenan valores. Ahora será intersante comprobar que es posible realizar operaciones con las cajitas. En esta actividad vamos a sumar dos cajitas. Para ello es importante utilizar una narrativa que transmita el sentido aditivo de la operación.

OBJETIVO DIDÁCTICO Desarrollar habilidades operacionales.
OBJETIVO TÉCNICO Sumar dos cajitas
RESULTADO Programa

Zombies en el Parque

Una noche, 3 Amigos estaban jugando en el parque, cuando de pronto aparecieron 5 Zombis y los mordieron! Como sabemos, si un zombi muerde a alguien, esa persona se convierte en zombi. Entonces, ¿cuántos zombis hay ahora en el parque?


Registrar Experiencia

1.5-Entrada/Salida

Quizá uno de los aspectos más particulares de la programación textual es la incorporación de la interactividad con la figura del "usuario" del programa. En lugar de intentar explicar discursivamente qué es un usuario, en PASAYO Textual preferimos dejarle ese trabajo a la narrativa. Las narrativas que utilizan entrada/Salida pueden incoporar un personaje que visualize la escena. De esa manera, una vez que se haya escrito el código, se podrá teatralizar a este personaje observador y resultará natural la idea de que existe un usuario del programa que acabamos de desarrollar.

Por otro lado, PASAYO Textual utiliza algunos métodos que plantean el uso de la entrada/salida en términos didácticos. Esos métodos se describen a continuación:

pedirNUMERO() Recibe como parámetro un mensaje de texto que se despliega en una ventana y retorna una valor entero que es ingresado por teclado.

mostrarCajita() Recibe como parámetro una cajita con valor entero y muestra una ventana con su contenido.

mostrarMensaje() recibe un parámetro de tipo texto que es desplegado en una ventana.

pedirVERDADEROFALSO(mensaje) Recibe como parámetro un mensaje de cortesía y retorna un valor "VERDADERO" o "FALSO".

OBJETIVO DIDÁCTICO Incorporar la noción de interacción con el usuario.
OBJETIVO TÉCNICO Manejo de la Entrada/Salida
RESULTADO Programa

Zombies en el Parque

Una noche, un jardinero que cuidaba un parque vió a 3 Amigos que estaban jugando allí, cuando de pronto, aparecieron unos Zombis y los mordieron! Como sabemos, si un zombi muerde a alguien, esa persona se convierte en zombi. Entonces, ¿cuántos zombis hay ahora en el parque? Para saberlo deberemos preguntarle al jardinero cuántos zombis vio!


Registrar Experiencia

Alternativas

Las alternativas son una de las estructuras básicas de control en la programación. Permiten controlar el flujo a través de preguntas que bifurcan la ejecución. Es importante lograr un dominio temprano sobre estas estructuras ya que permitirán modelar muchas narrativas interesantes. Desde un punto de vista didáctico, nunca debemos perder la perspectiva de que las alternativas son la forma de hacer preguntas y tomar decisiones en el código.

2.1-IF

Para introducir el concepto de alternativas, utilizaremos una narrativa nueva.

OBJETIVO DIDÁCTICO Desarrollar la capacidad de hacer preguntas dentro del código.
OBJETIVO TÉCNICO Utilizar estructuras de control alternativas
RESULTADO Programa

Los marcianos atacan la escuela!

oh no! llegaron unos marcianos en una nave espacial y se estacionaron en el patio de la escuela!! Pero no pasa nada, hay 8 maestras muy valientes que van a pelear contra los marcianos. ¿podrán ganar la batalla las maestras? solo podrán si son más que los marcianos. Pista: solo el portero sabe cuántos marcianos habían en la nave espacial.


Registrar Experiencia

2.2-IF/ELSE

Ahora, vamos a presentar la sección else de la estructura alternativa.

OBJETIVO DIDÁCTICO Desarrollar la capacidad de hacer preguntas dentro del código.
OBJETIVO TÉCNICO Utilizar estructuras de control alternativas
RESULTADO Programa

Los marcianos atacan la escuela!

oh no! llegaron unos marcianos en una nave espacial y se estacionaron en el patio de la escuela!! Pero no pasa nada, hay maestras muy valientes que van a pelear contra los marcianos. ¿podrán ganar la batalla las maestras? solo podrán si son más que los marcianos. Pista: solo el portero sabe cuántos marcianos y maestras habían en la nave espacial.


Registrar Experiencia

2.3-SECUENCIALES

Vamos a reforzar las alternativas en un contexto de programación secuencial.

OBJETIVO DIDÁCTICO Desarrollar la capacidad de hacer preguntas dentro del código.
OBJETIVO TÉCNICO Utilizar estructuras de control alternativas junto con operaciones secuenciales
RESULTADO Programa

Los marcianos atacan la escuela! Versión extendida!

oh no! llegaron 5 marcianos VERDES en una nave espacial junto con algunos marcianos AZULES en otra nave espacial y se estacionaron en el patio de la escuela!! Pero no pasa nada, hay algunas MAESTRAS y 10 MAESTROS muy valientes que van a pelear contra los marcianos verdes y azules. ¿podrán ganar la batalla las maestras y maestras? solo podrán si son más que los marcianos verdes y azules. Pista: solo el portero sabe cuántos marcianos azules y maestras habían en la escuela.


Registrar Experiencia

Expresiones

Las Expresiones son una maravillosa forma de razonar dentro de un programa. Nos permiten articular sentencias lógicas. Por ejemplo, podemos modelar situaciones como: "si hay lluvia y quiero caminar" entonces me ponga botas para agua. Normalmente se utilizan dentro de estructuras alternativas y se consigue así formular preguntas más divertidas.

3.1- Tipo de dato lógico

Antes de comenzar con preguntas divertidas, es importante presentar el concepto de valor o tipo de dato lógico. Un tipo lógico es una cajita que adentro puede contener "VERDADERO" o "FALSO", pero nunca otra cosa. Para poder preguntar cosas al protagonista o expectador de la narrativa utilizaremos un nuevo método denominado pedirVERDADEROFALSO(mensaje). que retorna "VERDADERO" o "FALSO" en función del botón que se escoja.

Otro factor a considerar es que en esta actividad se incorpora un nuevo operador, el operador de igualdad ==. Este operador de igualdad puede ser presentado inicialmente como el operador "tiene", es decir, una cajita tiene "VERDADERO" o tiene "FALSO".

OBJETIVO DIDÁCTICO Presentar el concepto de tipo lógico.
OBJETIVO TÉCNICO Guardar la respuesta a una pregunta lógica y consultar su valor
RESULTADO Programa

Buba viene de visita!

El monstruito Buba vino a casa a jugar. Tenemos que ser amables con el porque es un buen amigo. Así es que le vamos a preguntar a Buba si tiene hambre. Si es verdad que tiene hambre, mostramos en un mensaje la merienda que le vamos a preparar. Pero si Buba dice no tiene hambre, entonces mostramos un mensaje que diga "a jugar!".


Registrar Experiencia

3.2- Operador and

Para introducir el concepto de expresión, podemos utilizar una narrativa donde se hagan dos preguntas al protagonista. Una narrativa que funciona muy bien es el Detector De... vampiros, momias, princesas, animales, etc. Podemos pedir un par de características del personaje y si son verdaderas ambas entonces el detector retorna un mensaje acorde.

OBJETIVO DIDÁCTICO Desarrollar la capacidad de hacer preguntas lógicas dentro del código.
OBJETIVO TÉCNICO Modelar y utilizar la expresión lógica "conjunción"
RESULTADO Programa

El detector de vampiros!

No te asustes pero... parece que muchos vampiros se vinieron de vacaciones a nuestro barrio. Por eso, necesitamos programar un Detector de Vampiros. Una persona es vampiro si tiene colmillos Y si le gusta chupar sangre. Sino, no es vampiro.


Registrar Experiencia

Modularidad

La modularidad es una técnica muy poderosa para construir programas legibles, rehusables y matenibles. Un módulo es una porción de código que realiza una tarea en particular. Cuando creamos un módulo, deberíamos poder enunciar lo que hace en una frase corta.

4.1- Modularizando un saludo

Vamos a proponer el diseño de un módulo que simplemente lanzará un saludo por pantalla. Es importante apoyarnos en el uso del lenguaje visual para comenzar a adquirir habilidades de diseño modular.

OBJETIVO DIDÁCTICO Aprender a diseñar modularmente. Dividir un problema en partes pequeñas.
OBJETIVO TÉCNICO Invocar un módulo sin parámetros
RESULTADO Un mensaje por pantalla

Buba quiere saludarnos!

El monstruito Buba quiere saludar a todos sus amigos y amigas. Vamos a hacer un módulo para que pueda saludarlos.


Registrar Experiencia

4.2- Invocando con parámetros

Introduciremos ahora el uso de Módulos con parámetros. Los parámetros permiten suministrar datos al módulo, y de esa forma, podemos rehusarlos en diversas situaciones.

OBJETIVO DIDÁCTICO Dividir un problema en partes pequeñas.
OBJETIVO TÉCNICO Diseñar un módulo con parámetros.
RESULTADO Programa

Sumando invitados

Es el cumple de Buba y hay muchos invitados e invitadas! Buba es muy popular en el barrio así que vinieron 7 amiguitas y 12 amiguitos. Vamos a hacer un módulo que recibe como parámetros las amigas y los amigos y retorne la suma de ambos.


Registrar Experiencia