ES UN PROGRAMA DE
cuantrix agradece la colaboración de todas las personas que voluntariamente forman parte de nuestro comité asesor académico, así como fundaciones y comunidades que nos han apoyado con contenidos, asesoría y experiencia: Dr. Cesar Raúl Cárdenas Pérez. Dra. Karina Mariela Figueroa Mora. MCC. Magdalena de la Luz Navarro Mojica. Dra. M. Rocío Abascal Mena. Dr. Juan Arturo Nolazco Flores. Dr. Juan José Muñoz Cesar Dr. Víctor M. González y González Adolfo Ferrer Jaime Erika Luna Campos
FUNDACIONES
SOCIOS
4
pensamiento computacional
5
índice Presentación
6
Introducción
8
¿Qué es el pensamiento computacional? ¿Por qué aprender a programar en la escuela? Propósitos generales Contenidos escolares Contenidos generales Estrategias didácticas Seguridad en internet
1. Noción de programación e instrucciones
15
Secuencia didáctica 1 Secuencia didáctica 1.1 1.1 División de un problema grande en subtareas Secuencia didáctica 2 Secuencia didáctica 2.1
2. Conceptos básicos de programación
29
2.1 Eventos Secuencia didáctica 3 Secuencia didáctica 3.1 2.2 Comandos Secuencia didáctica 4 Secuencia didáctica 4.1 2.3 Secuencias de comandos Secuencia didáctica 5 Secuencia didáctica 5.1 2.4 Depuración Secuencia didáctica 6
3. Conceptos intermedios de programación 3.1 Modelo de seguimiento de programa Secuencia didáctica 7 Secuencia didáctica 7.1
47
3.2 Condicionales “Espera hasta” Secuencia didáctica 8 Secuencia didáctica 8.1 3.3 Estructuras de las decisiones y las condicionales Secuencia didáctica 9 3.4 Decisiones mediante switches Secuencia didáctica 9.1 Secuencia didáctica 10 3.5 Iteraciones (loops) Secuencia didáctica 11 Secuencia didáctica 11.1 Secuencia didáctica 11.2 3.6 Funciones y variables Secuencia didáctica 12 Secuencia didáctica 12.1 Secuencia didáctica 12.2
4. Soluciones del mundo real
85
1. Aprender acerca del tema 2. Identificar un problema 3. Crear una solución innovadora 4. Desarrollar su propuesta 5. Hacer una presentación de la solución 6. Aportar a su comunidad Secuencia didáctica 13
Vocabulario para enseñar a programar de manera fácil
97
Guías de descargas
99
Guía práctica de introducción a Scratch
100
Recetas para resolver problemas
105
Conclusión general
106
6
pensamiento computacional
7
presentación izzi y Fundación Televisa presentan cuantrix, un programa que tiene como visión que cada año en México UN MILLÓN de niñas, niños y jóvenes conozcan el pensamiento computacional y aprendan a programar, impulsando de este modo una nueva generación de creadores tecnológicos, que tenga impacto en la vida de las personas y en la economía del país.
“Desarrollar un pensamiento analítico y estructurado, utilizando en un principio juegos y herramientas didácticas, nos dará los conocimientos básicos de la programación y nos ayuda a detectar el proceso que debe seguirse para desarrollar un proyecto, producto o servicio: qué necesitas, dónde comienzas, a dónde quieres llegar y los pasos intermedios para lograrlo.
“Programar es aprender el idioma de una computadora, es aprender a pensar, a desarrollar la imaginación, a tener nuevas habilidades y, sobre todo, a poder usar, explotar y disfrutar la tecnología.
Aprender a programar dará a los niños herramientas para tener un pensamiento crítico y lógico, fomentando la persistencia y creatividad que los ayudará en su capacidad para resolver problemas, y los fortalecerá en cualquier materia a cualquier edad.
Una vez que tienes esta habilidad puedes hacer lo que sea”.
Profesora e investigadora en la Facultad de Ciencias Físico-Matemáticas de la Universidad Michoacana de San Nicolás de Hidalgo
La programación es uno de los resultados más importantes del pensamiento computacional, es la forma de abordar el estudio de las computadoras desde los principios lógicos y formales que hacen posible su funcionamiento.
“Crear es imaginar, crear es transformar, crear es acercarse con curiosidad y empatía a entender un problema y tratar de solucionarlo. Ser creativos es una característica humana, que nos permite ser mejores personas, mejores ciudadanos, y tener armonía con nuestro planeta. Aprender a programar es aprender una de las actividades creativas más poderosas. La programación nos transforma en seres capaces de crear a través de máquinas, computadoras, teléfonos, sensores, redes, drones y cientos de tecnologías que existen y existirán. La programación nos permite resolver problemas que sobrepasan nuestros límites como humanos. cuantrix es una enorme oportunidad para que miles de niños puedan aprender a programar y verse fortalecidos como creadores. Estoy seguro de que esta iniciativa marcará una generación de nuevos creadores que, con la programación, generará un México más emprendedor, más prospero, con más visión y compromiso”.
cuantrix prepara a los nuevos creadores tecnológicos para que inventen el mundo del futuro, para que puedan escribir su historia. cuantrix contó con el apoyo de destacadas personalidades académicas y tomó como ejemplo importantes organizaciones internacionales dedicadas a la misma tarea, como son Code.org y la Fundación Sadosky. Qué mejor que escuchar las palabras de algunos de los profesores miembros del comité asesor:
MCC. Magdalena de la Luz Navarro Mojica Profesora de Informática, Programación y Algorítmica del Tecnológico de Monterrey campus Querétaro
Dr. Víctor M. González y González Jefe del Departamento Académico de Computación del ITAM
Atrévete a pensar diferente”. Dra. Karina Mariela Figueroa Mora.
“Los programadores serán indispensables en muchas empresas del futuro. Un programador piensa de manera estructurada, compleja y creativa, usa herramientas avanzadas como las matemáticas para resolver problemas de alto impacto tecnológico, social y económico mediante computadoras físicas o biológicas. Con estas herramientas, él o ella pueden crear las empresas del futuro desde una computadora. El reto cuantrix tiene por objetivo desarrollar competencias en el uso de estas herramientas y así contribuir en la formación de los nuevos agentes de cambio para la economía digital”.
“Programar es aprender. Programar es principalmente una habilidad que debe dominarse si se quiere pasar de ser consumidores pasivos a actores digitales. Programar es abrir el campo de posibilidades, dar vida a las ideas, crear las herramientas del mañana. Es adoptar un razonamiento lógico y encontrar soluciones simples a problemas complejos en todos los ámbitos y sectores. Programar me ha enseñado que aprender puede ser divertido”. Dra. M. Rocío Abascal Profesora y coordinadora de la Maestría en Diseño, Información y Comunicación de la UAM
“La educación en el pensamiento computacional es esencial para desarrollar la competencia de solución de problemas, que a su vez es una de las competencias más apreciadas y requeridas por los empleadores más importantes a nivel internacional. De aquí se desprende la importancia del proyecto cuantrix, el cual busca desarrollar el pensamiento computacional a través de la enseñanza de la programación. Éste es el tipo de programas que vale la pena que la sociedad apoye e impulse”.
Dr. César Raúl Cárdenas Pérez
Dr. Juan Arturo Nolazco
Director of the Electronic Design Center and Professor at the Mechatronics Department
Director del Área de Tecnologías de Información y Eletrónica del Tecnológico de Monterrey, campus Monterrey
Los invitamos a ser parte de este esfuerzo en beneficio de cientos de miles de estudiantes mexicanos, quienes transformarán su pensamiento para convertirse en creadores de la tecnología que utilizan.
8
pensamiento computacional
9
introducción ¿Qué es el pensamiento computacional? Nuestra calidad de vida depende de nuestro pensamiento, ya que esta es la habilidad que nos permite tomar decisiones y resolver problemas. Si pensamos mejor, vivimos mejor nosotros y quienes nos rodean. El objetivo del pensamiento computacional es desarrollar sistemáticamente las habilidades del pensamiento crítico y la resolución de problemas con base en los conceptos de la computación. En suma, que las personas potencien y aprovechen el poder que tienen las computadoras en la actualidad. El pensamiento computacional es un proceso de solución de problemas que incluye, entre otras, las siguientes características: • • • • • •
Organizar y analizar datos de forma lógica. Representar datos mediante abstracciones, tales como modelos y simulaciones. Automatizar soluciones mediante algoritmos (pasos ordenados para lograrlo). Formular problemas para que las computadoras puedan solucionarlos. Identificar, analizar y desarrollar posibles soluciones a los problemas. Encontrar la combinación de pasos y recursos eficientes y efectivos. Entender los procesos para solucionar problemas en el mundo computacional y convertirlos en la solución de diferentes problemas.
Es importante preparar a los estudiantes para convertirse en pensadores computacional, es decir, que entiendan la manera en la que las herramientas digitales que tenemos hoy pueden ayudar a resolver problemas del mañana. Para lograrlo, sabemos que aprender a programar es el primer paso.
¿Por qué aprender a programar en la escuela? Más que formar programadores, se trata de que nuestros estudiantes, cuando terminen la escuela primaria, sean capaces de transformar y resolver problemas con más herramientas. La programación es una herramienta para que nuestros alumnos puedan comprender a profundidad el entorno digital en el que viven y, de este modo, sean capaces de contribuir en él con madurez y sentido crítico. Aprendemos programación para aprender a expresarnos en lenguajes propios de nuestro siglo, a interpretarlos y a aplicarlos en sentido crítico. Hay evidencias de que aprender a programar desde la infancia mejora los resultados en exámenes de matemáticas, refuerza el razonamiento y la resolución de problemas, tiene un impacto positivo en la creatividad y en la respuesta emocional; así como en el desarrollo de las habilidades cognitivas y socioemocionales. Por lo tanto, queremos programar para aprender, para expresarnos, para comprender mejor los contenidos científicos y tecnológicos, para perder el miedo a crear y compartir y para que todos tengamos las mismas oportunidades de acceder a una alfabetización propia del siglo XXI. La tradición escolar de enseñanza en las TIC (Tecnología de la Información y Comunicación) se ha
centrado en el aprendizaje de herramientas específicas de software, como Excel, Word, uso de buscadores, etc., herramientas que fortalecen las destrezas operacionales; sin embargo, es necesario fomentar habilidades, conocimientos y actitudes diversas: ser crítico y reflexivo con el uso que hacemos de las tecnologías, consciente de sus posibilidades y riesgos y capaces de evolucionar y crear con ellas. Queremos fomentar una programación creativa que conecte los intereses y gustos del alumno con proyectos en los que puedan ser protagonistas, así como que se expresen en los mismos lenguajes que están acostumbrados a consumir. Por esto, nos apoyamos en diferentes herramientas, con y sin internet. Pretendemos que, por medio de la programación en contextos significativos, puedan trabajar la creatividad, la expresión, el trabajo colaborativo y, en equipo, la comunicación, la modelización y resolución de problemas; el proceso que empieza con una idea hasta llegar a desarrollar un proyecto, la experimentación con nuevas ideas, la perseverancia cuando las cosas no funcionan bien, sin frustrarse al aprender a tolerar la frustración: todas éstas son habilidades del siglo XXI.
“A los 10 años empecé a programar robots y tuve la oportunidad de desarrollar un pensamiento lógico y creativo para la solución de problemas. Definitivamente, no todo lo que programas tiene un resultado inmediato. Programar es un proceso de dedicación y perseverancia que te ayuda a razonar la manera para poder llegar a un objetivo. Es definitivamente lo más parecido a un superpoder que te dan las herramientas, para poder solucionar la gran mayoría de los problemas actuales. Ya no sólo es importante que los niños sepan hablar y escribir, también es importante que aprenden a programar y tengan un pensamiento computacional, cualquiera que sea su meta en la vida. Una vez que los niños comprenden el lenguaje de las computadoras, sin darse cuenta desarrollan habilidades que les servirán para enfrentar los retos del siglo XXI. Lo más importante es que los niños tomen conciencia de que programar es divertido y de que es un proceso de lógica, razonamiento y perseverancia que conduce a la solución de problemas de su comunidad, de su país y del mundo. cuantrix tiene ese objetivo: que todos los niños en México puedan ser creadores de tecnología y sean los próximos líderes en estos temas”. Adolfo Ferrer, Liks.co
10
pensamiento computacional
11
Propósitos generales
Estrategias didácticas
•
• • • • • •
• • • • •
Propiciar la reflexión acerca de la utilidad de los programas para representar ideas y resolver problemas. Explorar el funcionamiento de las computadoras que sirven, no sólo para ejecutar programas, sino para realizar lo que el programa indique. Fomentar que los alumnos diseñen sus propios programas, de manera que no se limiten a ser usuarios de aplicaciones realizadas por terceros. Estimular la confianza de los alumnos mediante el uso y la ejecución de programas diseñados por ellos mismos. Promover la reflexión crítica y el trabajo colaborativo a través de la detección y corrección de errores de los programas propios y ajenos. Trabajar con conceptos relacionados con las ciencias de la computación para desarrollar habilidades de pensamiento informático.
Actividades individuales y en pares, con y sin computadoras Apoyo y consejos para los docentes Socialización en clase con las soluciones de los ejercicios Anexos con más actividades Glosario de temas Guías de descargas y usos de las aplicaciones propuestas
Encontrarás actividades sin internet; te pedimos no restarle interés, ya que están intencionalmente planeadas para ayudar a los estudiantes a comprender los conceptos complicados y poder relacionarlos con su vida diaria. Todas las actividades buscan favorecer la colaboración, la creatividad y el diseño de soluciones en el pensamiento lógico, mismas que pueden ser trabajadas en grupos o con clase completa.
Contenidos escolares
Seguridad en Internet
• • • • • • • •
CODE. ORG TU HUELLA DIGITAL
Algoritmos, repeticiones, funciones, variables, condicionales Abstracción, descomposición, patrones Familiarización con las herramientas de la computadora Impacto social, comunitario y ético Creatividad Colaboración Persistencia Resolución de problemas
Aprender a programar reforzará, entre otras, las siguientes habilidades: - Confianza para manejar situaciones complejas - Persistencia al trabajar con problemas difíciles - Tolerancia - Habilidad para lidiar con problemas no estructurados - Habilidad de comunicación y trabajo en equipo
Contenidos generales • • • • • • • • •
Noción de programa y máquina. Comandos (acciones) y valores (datos). Estrategia de división en tareas secundarias. Planificación de la solución de un problema de programación. Identificación de problemas secundarios. Procedimientos. Denominación y síntesis del objetivo de un procedimiento. Identificación de patrones. Parámetros. Repeticiones simples. Alternativas condicionales. Repeticiones condicionales. Uso de diferentes herramientas (Scratch, Lightbot, ScratchJr, etc). Procesamiento de estructuras lineales y diseño de actividades típicas de programación, incluyendo la selección de operaciones primitivas del sistema de cómputo elemental o autómata. Metodología para la corrección de errores del programa a partir del análisis de la diferencia entre lo que se espera de éste y lo que efectivamente hace.
Tenemos la obligación de transmitir a los estudiantes que el uso de la tecnología, particularmente el internet, tiene riesgos y responsabilidades. Estamos enseñándoles a crear con responsabilidad. Esta lección orienta a los estudiantes a comprender que muchos sitios de internet solicitan información que es privada por lo tanto, tienen que ser muy responsables en esto. Los estudiantes descubren también que pueden entrar a sitios extraordinarios, pero siempre habrá que seguir ciertas reglas para no correr riesgos.
OBJETIVOS: • • • •
Entender que no correr riesgos en el internet es similar a no estar en peligro en la vida real Aprender a reconocer sitios que son adecuados para ellos Reconocer el tipo de información que es privada y los riesgos de compartirla Aprender a crear nombres de usuarios efectivos que protejan su identidad e información privada
INTRODUCCIÓN: Invita a los alumnos a platicar sobre los lugares que han visitado en familia o de viajes escolares: museos, zoológicos, ferias, exposiciones, etcétera. También pueden hacer viajes imaginarios a los lugares que ellos elijan. Haz que pasen a platicar al frente de la clase, describiendo que van viendo y haciendo. Pregúntales de forma sorpresiva ¿Qué necesitan para estar seguros en esos lugares? Explícales que hay tres reglas básicas para navegar en internet: 1. Pedir permiso a sus papás, maestro o tutores 2. Hablar sólo con personas que conocen 3. Escoger lugares que son buenos para ellos Ahora vamos a pensar ¿qué más podemos hacer para mantenernos seguros?
12
pensamiento computacional
ACTIVIDAD: Pide a tus alumnos que den ejemplos de información que tienen que mantener privada. Escribe sus respuestas en el pizarrón. Después, explícales lo que es la información privada: nombre completo, edad, dirección, teléfono, direcciones de correo electrónico, lugares que visitan, lugar de trabajo de los padres, etc. Empieza una discusión sobre por qué consideran es importante mantener en privado esta información. Recuérdales que hay reglas básicas para crear un usuario: 1. Utilizar la ayuda de un adulto de confianza para crear su usuario 2. Nunca incluir información privada en los datos del usuario 3. Evita usar símbolos y espacios porque, en general, no están permitidos Algunos tips para crearlo: 1. Puede ser nombre de algo que te ayude a recordarlo, como tu animal favorito, personaje o juguete. Tal vez tienes que mezclarlo con algún número 2. El usuario ya está en uso 3. Escribe tu usuario y la contraseña y guarda la información en un lugar seguro. Puedes comentar con alguien de confianza por si se te olvida
ACTIVIDAD: Dales una hoja de papel y que trabajen en pares. 1. Que se formulen las siguientes preguntas entre ellos: ¿Cuál es su animal favorito? ¿Cuál es su programa de tv, película o personaje favorito? ¿Cuál es su número favorito? 2. Con la información obtenida que cada alumno haga tres opciones seguras de nombres de usuarios para su pareja. No debe incluir información privada o distinta, sólo con base en las preguntas. 3. Pídeles que los compartan a toda la clase. 4. Organízalos para que sean jueces y vean cuáles propuestas siguen las reglas de seguridad. Organiza una discusión sobre lo que es apropiado compartir en internet; para qué puede usarse el internet y qué reglas hay que seguir para navegar en la red.
Solo porque puedes compartir cosas en internet no quiere decir que debas hacerlo. La información que compartes en internet es tu huella digital para localizarte. Solo tú puedes hacer que esto sea difícil o fácil, las diferencias residen en como lo manejes.
INFORMACIÓN EXTRA: Digital Compass, de Common Sense Media
Te proponemos la siguiente herramienta para brindar apoyo al tema de seguridad en internet. https://d2e111jq13me73.cloudfront.net/sites/default/files/educator_guide_092415_sp.pdf http://www.pantallasamigas.net/otros-webs/privacidad-online-net.shtm
13
14
pensamiento computacional
15
16
pensamiento computacional
1
Noción de programación e instrucciones
En esta parte trabajaremos algunas nociones elementales de programación. Al respecto, interesa destacar que un programa puede ser entendido como un conjunto de instrucciones (que corresponden a comandos) destinadas a ser ejecutadas por una máquina: la computadora. De manera más específica, estas instrucciones son descripciones de soluciones a problemas. Programar implica, por lo tanto, delimitar problemas para poder luego formular las soluciones adecuadas. Para ello, proponemos emplear una estrategia llamada división en tareas secundarias, que consiste en dividir una acción en otras acciones más pequeñas, que son parte de aquella. Esta sesión tiene dos importantes palabras importantes:
Algoritmo: una lista de pasos para lograr una tarea determinada o llegar a una meta. Programa: es un algoritmo que ha sido codificado en algún lenguaje para que una computadora pueda interpretarlo.
17
Actividad 2 En un segundo momento de la clase, puede sugerírsele a los alumnos que piensen y formulen acciones acotadas para que las realice algún compañero. Por ejemplo: “levantar brazo derecho”, “pestañear”, “mirar a un determinado compañero”, “levantarse de la silla”, etc. A continuación, se propondrá a un alumno que interprete el papel de robot y ejecute una serie de instrucciones, como la siguiente: “levantarse de la silla”, “levantar el brazo derecho”, “cerrar los ojos”, “abrir la boca”, “sentarse en la silla”.
Al término de estas actividades, puede presentarse la noción de comando, que es la instrucción que un programador o usuario le da a una computadora, y pedir a los alumnos que reflexionen acerca de la especificidad de las instrucciones formuladas.
Actividad 3
Secuencia didáctica 1
1. ¿Qué pasaría con el robot si las acciones que se le hubieran indicado fueran muy generales o muy complejas (por ejemplo, “caminar” o “dibujar una casa”)? ¿Podría haberlas ejecutado? 2. ¿Se modificó el resultado final de la secuencia al cambiar el orden de las acciones? 3. ¿Qué ocurriría en los siguientes casos?
Program.AR
• • •
Sin computadora Las computadoras hacen todo al pie de la letra
En esta primera secuencia didáctica no se utilizarán computadoras sino que, a partir de la representación de las reglas de los programas computacional, se trabajará con los alumnos en el tipo de tareas que realiza una computadora y se prestará atención al modo en que deben indicarse esas tareas.
Objetivos • • • •
Comprender el carácter específico de las instrucciones empleadas en programación. Distinguir entre instrucciones generales y específicas. Conocer algunos de los conceptos propios del ámbito de la programación. Establecer relaciones entre el orden de las acciones programadas y los resultados obtenidos.
Desarrollo Actividad 1 Como primer acercamiento para que los alumnos reflexionen acerca del modo en que trabajan las computadoras, puedes proponerles que imaginen que el maestro es un robot, es decir, una máquina que, (como las computadoras) sigue al pie de la letra las indicaciones que se le dan. Los alumnos deberán darle, con precisión y en el orden adecuado, las instrucciones básicas para realizar una tarea y cumplir un objetivo. Por ejemplo, dirigirse, desde un rincón del aula, hacia la puerta y salir. En este caso, algunas de esas instrucciones básicas (llamadas primitivas) podrían ser las siguientes: “dar un paso hacia delante”, “girar hacia la derecha”, “girar hacia la izquierda”, “abrir la puerta”.
Se le ordena al robot que se siente en una silla, pero no hay ninguna. Se le dice al robot que levante el brazo derecho y ya lo tiene levantado. Se le pide al robot que levante el brazo derecho mientras tiene levantado el izquierdo y no se específica si antes debe de bajar éste o no.
Para profundizar en el carácter específico de las instrucciones que se utilizan en programación, el maestro interpretará nuevamente el papel de robot y le solicitará a un alumno que lo guíe paso a paso para que vaya al pizarrón y escriba una palabra determinada, (por ejemplo, el nombre del alumno). El maestro/robot sólo podrá escribir la palabra cuando ésta le sea dictada letra por letra, pero esto no se le dirá al alumno al comienzo, sino luego de que haya realizado varios intentos. De este modo, por ejemplo, si el alumno dicta el nombre todo junto, respóndele: “No entiendo”; si el maestro/robot no está en el pizarrón, ante la solicitud del alumno de que escriba, dirá “No puedo escribir en el aire”.
Secuencia didáctica 1.1 Programación en Papel code.org
Para empezar Los alumnos se programarán entre ellos mediante el dibujo y así podrán entender de lo que se trata la programación. El primer paso es que los estudiantes den a sus compañeros las instrucciones necesarias para dibujar cuadritos en un papel cuadriculado y poder reproducir así alguna figura que ya exista.
18
pensamiento computacional
19
Entenderán que, aun cuando sientan que las instrucciones son claras, hay cierta dificultad para ser interpretadas por una computadora y practicarán la posibilidad de dar instrucciones mediante símbolos y códigos. Para esta actividad necesitas papel cuadriculado o cualquier espacio donde haya una cuadrícula, como en el pizarrón, o bien dibujarlos en una hoja blanca. Puedes pedirles que pasen al pizarrón a rellenar los cuadros siguiendo las instrucciones, o pueden trabajar en equipos y que le den las instrucciones a un miembro del equipo. Siempre se empezará dibujando el cuadro de la esquina superior izquierda (donde está la estrella). Empezaremos con instrucciones simples como son las siguientes: 1. 2. 3. 4. 5.
Moverse un cuadrado a la derecha Moverse un cuadrado a la izquierda Moverse un cuadrado arriba Moverse un cuadrado abajo Rellena el cuadro con color
Comienza aquí
Mueve un cuadro a la derecha – mueve un cuadro a la izquierda – rellena el cuadro con color Le corresponde el siguiente programa:
Ahora bien, utilizando este código podemos repetir la imagen anterior de la siguiente manera, y el programa entero se escribiría así:
Comienza aquí
Comienza aquí
Mover un cuadrado a la derecha Rellenar el cuadro con color Mover un cuadrado a la derecha Mover un cuadrado abajo Rellenar el cuadro con color
Si tenemos el siguiente algoritmo:
Es un ejemplo fácil, ahora intenta con algo así.
Para lograr este dibujo, las instrucciones serían:
1. 2. 3. 4. 5.
Para dar las instrucciones, las flechas serán los códigos del programa y las palabras serán los algoritmos.
1. Mover un cuadro a la derecha 2. Rellenar el cuadro con color 3. Mover un cuadro a la derecha 4. Mover un cuadro a la derecha 5. Rellenar el cuadro con color 6. Mover un cuadro abajo 7. Mover un cuadro a la izquierda 8. Rellenar el cuadro con color 9. Mover un cuadro a la izquierda 10. Mover un cuadro a la izquierda 11. Rellenar el cuadro con color 12. Más instrucciones …
Con una ligera sustitución podemos hacer que este ejercicio sea más sencillo. Podemos, por ejemplo, sustituir por una flecha toda nuestra línea de instrucciones.
Indica los pasos con tu dedo Ahora dibuja el siguiente código en el pizarrón e intenta que tus alumnos programen de la siguiente forma:
20
pensamiento computacional
Escoge un dibujo sencillo como el que sigue y píntalo en el pizarrón:
Comienza aquí
21
En este momento tal vez tu clase ya está haciendo propuestas para hacer diferentes actividades o tú tienes nuevas ideas. Aprovecha el impulso.
Indica los pasos con tu dedo y ve si puedes seguir el procedimiento del programa de la imagen a tu derecha.
Hay diferentes formas de hacerlo, pero si subsisten dudas, continúa con el siguiente ejemplo:
Comienza aquí
Ahora pídeles que te describan qué hiciste. Primero puedes decir el algoritmo en voz alta y después escribes tu instrucción verbal en un programa con los símbolos anteriores. El algoritmo sería el siguiente: 1. Mover un cuadro a la derecha 2. Rellenar el cuadro con color 3. Mover un cuadro a la derecha 4. Mover un cuadro abajo 5. Rellenar el cuadro con color 6. Mover un cuadro a la izquierda 7. Mover un cuadro a la izquierda 8. Rellenar el cuadro con color 9. Mover un cuadro abajo 10. Mover un cuadro a la derecha 11. Rellenar el cuadro con color 12. Mover un cuadro a la derecha Ahora pídeles que transformen el algoritmo en un programa:
Si notas que ya todos entendieron los conceptos, seguiremos con las siguientes actividades.
Actividad 4: 1. Divide a los estudiantes en grupos 2. Que cada equipo escoja una de las siguientes imágenes 3. Que discutan cuál es el algoritmo 4. Conviertan el algoritmo en programa 5. Que intercambien los programas con otro equipo y vean si logran hacer la misma imagen 6. Una vez concluido, intercambien la figura con otro equipo
Actividad 5 Ya aprendieron a crear algoritmos y programas para dibujar una imagen que alguien de su equipo les dio. Ahora puedes ponerlos a practicar solos. Necesitarás hojas, lápiz y los siguientes ejemplos:
22
pensamiento computacional
Utilizando la misma guía de flechas o símbolos, uno de los alumnos tiene que escribir el programa que se necesita para dibujar la imagen que ellos escojan de las que te proponemos abajo.
23
1.1 División de un problema grande en subtareas Secuencia didáctica 2 Sin computadora Lightbot
Durante esta secuencia, los alumnos aprenderán cómo dar instrucciones a una computadora mediante procesos importantes como la planeación, el desarrollo y el orden adecuados.
Objetivos • • • • •
Entender cómo crear y dar un conjunto de instrucciones lo más específicas posibles para que una computadora pueda seguirlas Planear y desarrollar una serie de instrucciones Escribir un programa a ejecutar Probar si lo programado es correcto (el robot llega a la hoja azul sin ningún problema) Corregir el programa si no está correcto, encontrar los problemas del programa y modificarlo.
Desarrollo Los estudiantes (y el maestro) jugarán a dar una serie de instrucciones a un alumno o alumna que interpretará el papel de un robot que seguirá las instrucciones que le den para llegar a un objetivo final. Ellos aprenderán cómo decirle a la computadora lo que tiene que hacer con una serie de comandos y comprenderán así todo el proceso de cómo se escriben los programas de las computadoras. Y por último, pídeles que lo hagan al revés.
Actividad 1 Materiales: •
Si es posible, imprime un juego de la cantidad de impresiones que necesites del documento que está en el siguiente link:
https://lightbot.com/Lightbot_PrintableIcons.pdf
Cierre Se sugiere trabajar con los alumnos en la asignación de nombres (lo suficientemente descriptivos y específicos) a diversas tareas que luego combinarán para formar distintas secuencias. En este sentido, se puede pedirles que describan los pasos que siguen al utilizar un programa, desde encender la computadora hasta la ejecución del comando que abre el programa. También puede proponérseles que identifiquen, entre las actividades que realizan cotidianamente, las que suponen una serie de pasos o actividades y que indiquen el nombre de cada actividad (por ejemplo, “cepillarse los dientes” supone las tareas secundarias de “tomar el cepillo”, “tomar la pasta”, “poner la pasta sobre el cepillo”, entre otras) e inversamente que agrupen varias actividades en otras sucesivamente más abarcadoras (como el caso de “cepillarse los dientes”, “asearse” y está, a su vez, por ejemplo, “vivir un día entero”). Es importante hacerles notar a los alumnos que los algoritmos son parte de toda actividad de su vida diaria. El objetivo es construir habilidades para traducir situaciones del mundo real en escenarios de computación.
o pueden sustituirse si se realizan las instrucciones en un pizarrón: • Pizarrón • 30 hojas grises y 5 hojas azules Tiempo para desarrollar la actividad: • 2 horas Acomodar el salón de clases en forma de laberinto y colocar las hojas grises en el camino del laberinto y al final la hoja azul, el objetivo del robot. Usa la imagen siguiente como guía para acomodar el salón. Se recomienda a los maestros jugar los primeros 3 niveles del juego en línea, en Lightbot, para entender la manera en la que los alumnos tienen que resolver el laberinto y lograr que el robot siga las instrucciones. Lo que realizarán es una versión fuera de línea del mismo juego. (Ir al juego aquí: http://lightbot.com/hocflash.html o descargar la aplicación para Android aquí: https://goo.gl/DPtgZt).
24
pensamiento computacional
25
El acomodo del laberinto deberá cambiarse en el transcurso de la clase.
COMANDO
DESCRIPCIÓN
El robot avanza un lugar hacia delante.
El robot da un giro de 90º a la izquierda.
El robot da un giro de 90º a la derecha.
El robot sube o baja un escalón (avanzando un lugar hacia adelante). El robot tiene que utilizar este comando cuando esté sobre un bloque/hoja azul para activar y poder terminar el programa. El robot utiliza este comando para guardar programas que se repiten constantemente. El robot utiliza este comando para guardar programas que se repiten constantemente. Este bloque se utiliza cuando ya se ha utilizado el comando P1.
¿Qué decirle a los alumnos? Las computadoras son aparatos increíbles que nos ayudan a desarrollar diferentes actividades. Por ejemplo, nos ayudan a explorar el internet, jugar videojuegos, crear, hacer y muchas cosas más. También nos permiten realizar tareas difíciles pero, para ello, deben haber sido programadas y haber recibido exactamente qué hacer. Programar es la manera en la que nosotros como programadores le decimos específicamente a una computadora qué hacer. Para que pueda realizar las tareas, tenemos que darle una serie de instrucciones mediante comandos; ya que no podemos decirle a la computadora con la voz “abre la puerta”. Instrucciones para los alumnos Los alumnos tendrán que desarrollar la serie de comandos para poder resolver el laberinto y que el robot (un alumno) inicie en la primera hoja gris y termine en la hoja azul donde encenderá el foco, con las instrucciones que a continuación presentamos. El robot terminará el programa una vez que encienda el foco en todos los bloques azules.
Cierre En esta actividad los alumnos comprendieron que las computadoras reciben instrucciones, así como la importancia de tomar en cuenta que las instrucciones deben ser claras y precisas; ya que si no se le dice a la computadora qué hacer de manera precisa, el programa no logrará el objetivo propuesto. Es importante tener presente que la programación es como las matemáticas: puede haber distintos procedimientos pero varios nos llevan al mismo resultado. Seguramente algunos de tus compañeros realizaron la programación exactamente igual que tú. En las siguientes actividades aprenderás otros comandos que te servirán para hacer tu programación más corta y precisa para la computadora.
26
pensamiento computacional
Secuencia didáctica 2.1 Algoritmos de la vida real Code.org
Para que los alumnos comprendan la relación que tienen los algoritmos con su vida diaria deben desarrollar las habilidades para traducir situaciones de la vida real con escenarios o programas para computadoras. Al retomar actividades de la vida diaria, aprenderán a descomponer instrucciones largas o lógicas para ellos en pequeños pasos numerados y en orden para dar instrucciones precisas. Pregunta a tus alumnos qué hicieron para estar listos en la escuela esta mañana, escribe en el pizarrón las respuestas que te van diciendo, sin importar el orden. Ahora pídeles que vayan poniendo números a cada actividad según el orden lógico. Es momento de nombrar actividades donde el orden es importante y las que en su caso no lo sean. Te proponemos que hagan aviones de papel por equipos y se den instrucciones por pasos y comparen el resultado de los diferentes aviones y los pasos que necesitaron para hacerlos.
Actividad 2 Te proponemos también la aplicación para aprender a programar con el Chavo. Es posible descargarla en caso de no contar con internet http://www.aprendeconelchavo.com/game/code/ o descargar la aplicación para Android aquí: https://goo.gl/OvbKJp Te proponemos ver este video donde encontrarás más alternativas para poder explicar a los alumnos la importancia de ver un problema en su totalidad y dividirlo para encontrar diferentes soluciones, resaltando siempre el trabajo en equipo. https://www.ted.com/talks/tom_wujec_got_a_wicked_problem_first_tell_me_how_you_ make_toast#t-462968
30
pensamiento computacional
31
Conceptos básicos de 2 programación
Cuando se ejecuta “saltar” una vez, el gato pasa de una piedra a otra y avisa cuántos saltos le faltan para cumplir el objetivo:
2.1 Eventos Secuencia didáctica 3 Con computadora Repetición simple
Program.AR Con esta secuencia se empieza a trabajar en procesos más específicos que los alumnos irán explorando sobre la base de lo ya aprendido. En este caso, la propuesta consiste en indagar a través de una actividad de Scratch en los procesos computacional implicados en la repetición de tareas. Si nunca has utilizado Scratch, te proponemos ver en la última parte de la currícula la guía práctica de Scratch.
Objetivos • •
Aplicar herramientas de programación para la ejecución de tareas repetitivas. Reconocer que las computadoras pueden repetir una tarea cuantas veces sea necesario.
A partir de estas breves indicaciones, sugerimos dejar que los alumnos intenten resolver la actividad con lo aprendido hasta el momento. Probablemente, la solución que propongan consista en repetir 30 veces el comando saltar:
Desarrollo Los alumnos ingresarán a la actividad de Scratch No me canso de saltar, disponible en línea, donde se presenta el siguiente escenario: http://scratch.mit.edu/projects/42294970/#editor
El objetivo es hacer que el gato salte 30 veces para llegar a la última piedra. Para ello, en la categoría “Más bloques”, sólo se da la siguiente instrucción primitiva:
Además de poco práctica, esta solución presenta el inconveniente de que puede ocasionar que sea difícil visualizar la manera de modificar la secuencia. Se vuelve a presentar un problema similar al planteado en la secuencia didáctica anterior, donde con el fin de ahorrar las casillas disponibles, se recurrió a la definición de diversos procedimientos o funciones, cada uno formado por dos o más tareas secundarias. Podría suceder que algunos alumnos, teniendo esto presente, pregunten si existe algún tipo de comando que permita economizar la cantidad de bloques, de manera que la ejecución de los saltos pueda indicarse de forma menos engorrosa. Una vez delimitado el problema, se presenta el bloque repetir, ubicado en la categoría “Control”.
Tal como se hace con cualquier otro bloque que se desee utilizar, éste se arrastra hasta el editor. Luego, en la casilla superior se indica la cantidad de veces que se desea repetir una acción. En el hueco inferior se ubica la secuencia de comandos (en este caso, la acción que ejecutará repetidamente el gato).
32
pensamiento computacional
33
Actividad
Actividad 5. Bosque escalofriante
Tras esta explicación, nuevamente deja que los alumnos intenten resolver el resto de la actividad. La solución es la siguiente:
Descargar ScratchJr aquí: https://goo.gl/12UDl2
Recordar que un evento es una acción que causa que algo suceda.
Cierre
Prepara a tus alumnos para responder la siguiente pregunta:
Al finalizar la secuencia, conviene hacer hincapié en los siguientes aspectos:
•
• •
• • • • •
• •
Las computadoras pueden repetir una tarea cuantas veces sea necesario. Mediante el uso de determinados bloques de control, como el bloque repetir, es posible ahorrar espacio y simplificar lo que se quiere expresar. Además, facilita corregir o modificar una secuencia de comandos. A partir de ahora, siempre que un comando o una secuencia de comandos se repita una cantidad fija de veces, se utilizará el bloque repetir. Los comandos o instrucciones que se quieran repetir se colocarán dentro de ese bloque. En el casillero en blanco del bloque se indicará el número de veces que se repetirán los comandos.
Alternativas
Actividad extra
En caso de no poder utilizar Scratch, te proponemos intentar con la aplicación en la tableta de ScratchJr, con el siguiente PDF:
Juego de Flappy de Code.org Con computadora
https://www.scratchjr.org/activities/card05-forest_es.pdf
En de este juego, los alumnos aprenderán a construir su propio juego utilizando eventos e identificando los clics del mouse con los choques de objetos.
En la parte final del currículum encontrarás una guía para utilizar ScratchJr
Van a crear un evento con el mouse y el pájaro golpeará el objeto. Así aprenderán a detectar cuando algo pasa y saber cómo reaccionar a tal evento.
https://studio.code.org/s/course2/stage/16/puzzle/1
•
“Voy a hacerles una pregunta y quiero que levanten la mano si quieren que yo les dé la oportunidad de que me den la respuesta.” Ahora, formula una pregunta que sepas que la mayoría querrá contestar. Escoge a alguno de los estudiantes que tienen la mano levantada. Después de que responda, pregunta: ¿Cómo creen que supiste que ese estudiante quería decir la respuesta? Explícales que cuando levantan la mano es un “evento” que causa que tú sepas que querían ser escogidos. Es importante subrayar la diferencia del significado de evento. Este concepto de evento no tiene nada que ver con cumpleaños, fiestas y otras situaciones a las que solemos denominar eventos. Diles que piensen en otros eventos que den señales: ¿Qué pasa cuando apagas una alarma de reloj? ¿Qué acción causa que lo hagas? Cuando presionas el botón de “Inicio” del horno de microondas, ¿qué ocurre?, ¿qué pasa cuando presionas un botón del control remoto de la TV?
Para todas las actividades anteriores, la meta es hacer una programación de actividades muy clara, sin interrupciones o eventos que pudieran alterar el resultado. Sin embargo, en la mayoría de los programas no puede hacerse eso, ya que buscamos que haya diferentes opciones para resolverlos debido a que existen diferentes necesidades.
Actividad Ahora vamos a practicar cambiar programas con eventos. Vas a necesitar dibujar en una cartulina o en el pizarrón las siguientes imágenes:
Enséñales lo diferente que puede ser cada juego dependiendo de las condiciones.
Secuencia didáctica 3.1 Sin computadora El gran evento Code.org
Los eventos son una gran oportunidad para agregar variedad a los algoritmos que hemos practicado hasta ahora. Algunas veces vas a necesitar que tu programa sea capaz de responder al usuario de la manera exacta en que él lo quiera y para eso son los eventos. En esta actividad los estudiantes aprenderán lo siguiente: • • •
Repetir comandos dados por un instructor Reconocer acciones como señales para iniciar un comando Diferenciar acciones predefinidas y las basadas en eventos
•
Designa con tus alumnos un sonido diferente para cada una de las figuras:
34
pensamiento computacional
1. 2. 3. 4. 5. • • • • • •
Botón rosa o rectángulo: Dirán “wooooooo” Botón verde o estrella: Aplaudirán Botón naranja o triángulo: Golpearán el piso con los pies Botón morado o círculo: Dirán “bom-bon-bon” Botón turquesa o hexágono: “Dirán guauuuuu”
Ahora practica tocando cada una de las figuras y que todos hagan lo indicado. Ahora, sigue algunas secuencias haciendo que hagan cada sonido y lo interrumpan cada vez que señalas una figura diferente. Hazle saber a los alumnos que cada vez que seleccionas una figura, ése es un “evento” que les permite saber lo que tú esperas que hagan. Ahora dales una tarea específica, como contar hasta 10 o cantar alguna canción. Cuando ya hayan comenzado, señalas alguna de las figuras esporádicamente. Continua hasta que puedan comprender la diferencia entre una acción guiada por un plan y otra acción alterada o modificada por un evento.
Ahora puedes hacer incluso coreografías dándole a cada figura un movimiento diferente: Aplaudir - levantar un brazo - manos a la cintura
35
2.2 Comandos Secuencia didáctica 4 Con computadora
Presentación de Lightbot Program.AR
En esta secuencia didáctica, comenzarán a utilizarse los bloques para resolver problemas. De este modo, frente a un problema determinado habrá una secuencia de bloques que será una solución y otras secuencias que no lo serán. El objetivo es lograr que en cada nivel el robot consiga prender la o las luces ubicadas en los cuadrados azules del piso. Para ello, el usuario cuenta con una serie de acciones en forma de iconos y una casilla para ubicarlas. El juego ofrece la posibilidad de definir dos procedimientos (denominados funciones). En los primeros niveles no es necesario utilizarlos, por lo que te pedimos que dentro de esta secuencia los niños lleguen únicamente a los 8 primeros niveles.
Objetivos: • • • • •
Inferir que los programas pueden resolver problemas específicos. Identificar problemas y proponer soluciones mediante la programación. Reconocer el patrón que permite descomponer un problema en acciones más acotadas. Resolver problemas de manera más simple a partir del patrón que permite descomponerlos. Proponer diversas soluciones para un mismo problema.
Desarrollo Ir al juego aquí: http://lightbot.com/hocflash.html o descargar la aplicación para Android aquí: https://goo.gl/DPtgZt Luego de una breve introducción, se indica a los alumnos que ingresen a Lightbot, disponible en la liga anterior. Una vez que terminó de cargarse el juego, se accede a una pantalla de presentación. La inteligencia artificial es una tarea de programación compleja y hay que aclarar que no siempre los robots diseñados pueden manejarse y funcionar solos, ya que algunos robots funcionan dentro de una trayectoria predeterminada por el programador, que varía de una situación a otra. Por último, se señala en qué consiste el juego: utilizando una serie de comandos, hay que lograr que el robot encienda todas las baldosas azules de la fábrica. ¡Empiecen a jugar!
Actividad extra Aprende a programar con el Chavo Con computadora http://www.aprendeconelchavo.com/game/code/ Con tableta https://goo.gl/OvbKJp
36
pensamiento computacional
37
Los comandos primitivos del juego son los siguientes:
COMANDO
DESCRIPCIÓN
El robot avanza un lugar hacia adelante
El robot da un giro de 90º a la izquierda
El robot da un giro de 90º a la derecha
Cierre Es importante detenerse a analizar y comparar las actividades realizadas en Scratch con las llevadas a cabo en Lightbot y a partir de ello, indicar los aspectos nuevos en relación con el tipo de operaciones que realiza un programa. Así mientras en los casos anteriores no había un problema bien delimitado a resolver, en este caso sabemos exactamente si el programa resuelve o no el problema planteado. Entre los aspectos novedosos, se encuentra el método de dividir un problema grande en partes pequeñas, lo cual se conoce en programación como división de tareas secundarias y consiste en: •
El robot sube o baja un escalón (avanzando un lugar hacia adelante). El robot tiene que utilizar este comando cuando esté sobre un bloque u hoja azul para activar y poder concluir el programa
•
Identificar pequeñas tareas fáciles de explicar (avanzar un paso, subir un escalón, encender la luz) y asignarles un nombre adecuado para que se entienda lo que representan. Cambiar estas pequeñas tareas para definir el programa que resuelve el problema, (los procedimientos en Lightbot se llaman funciones).
Secuencia didáctica 4.1 Con computadora Laberintos: secuencias Code.org https://studio.code.org/s/course2/stage/3/puzzle/1 En esta actividad en línea, los alumnos comprenderán los algoritmos aprendidos en las actividades anteriores. Con los personajes de Angry Birds, los estudiantes desarrollarán los algoritmos para mover al pájaro dentro del laberinto. Para ello, van a apilar bloques en una secuencia lineal para moverse en línea recta o girar. En este juego podrán expresar movimientos con comandos y establecer las secuencias necesarias para programar. Siempre que sea posible, proponemos trabajar en parejas.
El robot utiliza este comando para guardar programas que se repiten constantemente El robot utiliza este comando para guardar programas que se repiten constantemente. Utilizar este bloque cuando ya se ha utilizado el comando P1.
Los alumnos deben ir avanzando a su ritmo, solo el primer nivel, hasta los primeros 8 juegos. Hay algunas ediciones del juego que tienen, como se muestra en la en la foto, tres cuadros para las instrucciones. Solo pueden utilizar la primera (la denominada Main method). Los que terminen antes pueden aprovechar para ayudar a los otros.
2.3 Secuencia de comandos Secuencia didáctica 5 Sin computadora Programación con vasos Thinkersmith. Code.org Los estudiantes entenderán la conexión entre símbolos y acciones, así como los principios de la valiosa habilidad de depuración. Hasta ahora ya hemos realizado diferentes actividades traduciendo nuestros algoritmos a símbolos. Eso quiere decir que hemos creado programas con códigos. Vamos a suponer que tenemos códigos “nuestros” para cada una de las instrucciones. Por ejemplo, para una instrucción podemos usar flechas, símbolos, movimientos de brazos, etc. Si tenemos nuestros códigos especiales para cada paso, entonces tendremos un programa.
Objetivos • • •
Convertir actividades del mundo real en instrucciones Adquirir práctica en la codificación de las instrucciones mediante símbolos Comprender la necesidad de la precisión
38
pensamiento computacional
• • • •
Saber distinguir las órdenes con secuencias y pasos dentro de un programa Predecir dónde podría fallar un programa Modificar un programa existente y resolver problemas Identificar cuando un algoritmo no está bien programado y tendrá que reajustarse
Palabras importantes Precisión: Ajuste completo o fidelidad de un dato, cálculo, medida, expresión, etc. Secuencia: Serie de elementos o pasos que se suceden unos a otros y guardan relación entre sí. Codificación: Traducir acciones a un lenguaje de símbolos. Función: Fragmento de código que puede reiterarse o repetirse ininterrumpidamente. Parámetros: Información adicional que puede agregarse a una función para personalizarla. A medida que los estudiantes van avanzando en la actividad, el modo en que van identificando sus errores, tratando de que encuentren diferentes estrategias y que las compartan con toda la clase. Esto ayuda a los alumnos a reconocer que existen muchas maneras de abordar los problemas. Tratar de resolver juntos diferentes problemas y detectar errores que pueden resolverse.
Actividad Los robots operan mediante “instrucciones”, conjuntos específicos de cosas para las que han sido preprogramados. Para realizar una tarea, un robot necesita contar con una serie de instrucciones (llamadas algoritmos) que pueda ejecutar. Vamos a aprender lo necesario para que esto ocurra. Necesitas vasos de plástico, por lo menos unos 17. Escribe los símbolos de la clave en el pizarrón. Explícales que estos serán los únicos seis a utilizarse durante el ejercicio. Para esta tarea, instruirán a su “robot” para que ejecute una pila de vasos específico utilizando únicamente las siguientes flechas:
39
Clave simbólica:
↑ ↓ → ←
Levantar el vaso-paso hacia adelante-paso hacia adelante-bajar el vaso-paso hacia atrás-paso hacia atrás (para regresar la mano). Levantar el vaso-paso hacia adelante-paso hacia adelante-paso hacia adelante-paso hacia adelantebajar el vaso-paso hacia atrás-paso hacia atrás-paso hacia atrás-paso hacia atrás. Levantar el vaso-paso hacia adelante-paso hacia adelante-paso hacia adelante-bajar el vaso.
Levantar el vaso Bajar el vaso Mover vaso hacia adelante Mover vaso hacia atrás
Pasos: 1. Necesitas grupos de cinco alumnos. A cada grupo le corresponde un turno. Tienen que elegir un “robot” por equipo y salir de la clase mientras los “programadores” codifican. 2. Enséñales la imagen de la pila de vasos. 3. Los grupos crearán un algoritmo (con las claves simbólicas) con instrucciones sobre el modo en que el robot debería realizar la pila seleccionada. 4. Una vez que los programadores han finalizado la codificación de su pila, pueden llamar a su robot para que regrese al salón. 5. Después de regresar, el robot leerá las instrucciones escritas con los símbolos y los ejecutará o traduce en movimientos para lograr la misma pila de vasos. 6. El grupo debe controlar los movimientos incorrectos y luego trabajar en la depuración o corrección de su programa antes de solicitar al robot una segunda ejecución.
El ejercicio te está enseñando a lo siguiente: Sigue con cada uno de los equipos y en su turno pídeles que te den una instrucción a la vez para llegar a formar la pila de tres vasos. La primera acción tiene que ser “levantar el vaso”. Recuérdales que un paso hacia adelante implica sólo la mitad del ancho de vaso.
Programar: Cuando los alumnos tienen el número de vasos que necesitan y les pides que te den las instrucciones con los símbolos para ejecutar los movimientos necesarios para llegar a formar la misma figura, están haciendo un programa. Código: Con la clave simbólica los alumnos crean un código para que su “robot” lo ejecute. Ahora que todos entendieron la actividad y saben programar a su “robot”, haz una figura como la que se muestra a continuación. Es un reto mucho más difícil, ¿qué hace que formar esta pila lo sea tanto?
Reglas: 1. Los codificadores deben traducir todos los movimientos utilizando únicamente las 6 flechas sugeridas. 2. Los vasos deben quedar en poder del robot y no de los programadores durante la codificación. 3. Una vez que los robots regresen con sus equipos, no debe hablarse en voz alta.
Ejemplo:
Ve apuntando en el pizarrón los símbolos para poder “correr el programa” más tarde. Una posible solución podría verse así:
Resulta útil repasar un ejemplo con toda la clase haciendo una pila de 4 vasos en un lugar en donde todos puedan verla. Acomoda los vasos en pila en el lugar de la bandera 0 y pídele a cada equipo que te dé, en su turno, las instrucciones para pasar la misma pila al lugar de la bandera 1:
↑ Levantar el ↓ Bajar el vaso
vaso
←
Mover vaso hacia atrás
Con el programa escrito a la vista de la clase, llama a un voluntario para “correrlo”. Te recomendamos decir el significado de las flechas en voz alta a medida que mueven los vasos para que se sigan familiarizando con el procedimiento. Por ejemplo; el programa de arriba se diría así:
Esta pila es bastante compleja; ya que se agrega a lo ancho, suma dos flechas más a la línea de código en la indicación de los pasos hacia adelante y dos en los pasos hacia atrás. Para lograrlo, tendrás líneas que se verán así:
40
pensamiento computacional
Aprovecha para enseñarles que podrían escribirlo así:
41
2.4 Depuración Secuencia didáctica 6
Es importante que los niños entiendan que existen limitaciones y dificultades nunca deben olvidar su objetivo y evitar frustrarse si no logran algo a la primera oportunidad. ¿Consigue todo el mundo hacer las cosas bien al primer intento? Cuándo aprendiste a caminar, ¿lograste correr en el primer intento? A veces las cosas más útiles son las más difíciles de aprender; podemos tardar mucho en lograrlo. Si algo no te sale a la primera, no significa que nunca lo lograrás. Pon a pensar a los alumnos en cosas que al principio fue difícil aprender y ahora hacen con facilidad (andar en bicicleta, caminar, manejar).
Sin computadora Carrera de relevos Code.org Las correcciones o depuraciones son un elemento esencial para aprender a programar. En esta lección los alumnos experimentarán la posibilidad de hacer correcciones si en algún punto de su código identifican errores y de corregirlos las veces que sea necesario. Reflexiona con tus alumnos lo siguiente: Cada problema al que nos enfrentamos tiene diferentes grados de dificultad. Si queremos tener oportunidad de hacer algo creativo, útil e inteligente hemos de tener la voluntad de resolver problemas que nos cuesten trabajo en los que sea necesario hacer varios intentos antes de lograr resolverlos. Equivocarse no es el final, es solo el camino a lo largo del cual tendremos éxito.
Es importante enseñar la PERSISTENCIA. No importa cuántas veces tengas que intentar hacer las cosas para lograr el resultado que buscas. Las cosas pueden ser difíciles, pero no imposibles. Si eres persistente y no te rindes, lograrás tener éxito.
Recuerda que la manera en que podemos variar algún algoritmo que ya habíamos escrito puede llamarse Evento. Cuando buscas que tus programas respondan en el momento exacto en el que el usuario quiere, será necesario un “evento.”
Secuencia didáctica 5.1 Con computadora Artista: Secuencias code.org En esta actividad, los estudiantes aprenderán a controlar el juego para completar dibujos.
Objetivos • •
Crear un programa para completar una imagen utilizando una secuencia de pasos. Poder definir diferentes figuras y explicar las diferencias entre ellas para lograr dibujarlas.
Organiza una lluvia de ideas para que imaginen cómo dibujar con la computadora. En los niveles, los estudiantes tendrán que diferenciar los ángulos. https://studio.code.org/s/course2/stage/4/puzzle/1
Explícales que cuando algo no te sale bien, tienes que recapacitar cuáles podrían ser las causas y así poder solucionarlas y volver a intentarlo. En la programación, las correcciones o depuraciones son elementos importantes. Tienen que aprender que deben modificarse las instrucciones las veces que sea necesario para poder lograr su programa. Para esto es importante predecir en qué sitio están los errores, y depurarlo.
Depuración: El proceso de identificar y corregir errores de programación. En inglés se conoce como debugging. Cuando encuentras y corriges un problema en un código. Una limpieza de algo que consideras que está mal, una corrección de errores.
Actividad Relevos con programación Code.org Una vez realizadas las actividades de programar en papel, los alumnos van a tener facilidad de realizar esta carrera contra reloj. Los alumnos tendrán que trabajar en equipos y hacer un programa con instrucciones claras y ordenadas.
Objetivos • • •
Saber comunicar ideas traduciéndolas a códigos y símbolos. Trabajar en equipo para lograr metas. Verificar el trabajo de todo el equipo para garantizar el éxito.
42
pensamiento computacional
Se requiere pizarrón, papel blanco u hojas cuadriculadas o tarjetas para poder dibujar las siguientes imágenes:
43
Como ya aprendimos a programar este tipo de imágenes con símbolos, el ejercicio nos será familiar; solo que ahora lo haremos en equipos y en relevos. Las reglas son las siguientes: 1. Dividirse de preferencia en grupos de 3 a 5 personas. 2. Hacer que cada grupo se acomode en fila, a manera de relevos. 3. Poner la misma imagen en el sitio adonde va a llegar cada corredor de los diferentes equipos. 4. El primer estudiante o participante sale corriendo hacia la imagen, la revisa y escribe el primer símbolo en el programa, para empezar así a reproducir esa imagen. 5. El mismo estudiante, al terminar, correrá de regreso a la fila de su equipo, se formará y tocará al siguiente participante para que éste salga. 6. La persona en la línea que ha sido tocada saldrá corriendo hacia la imagen, la revisa y, al ver el programa que ya empezó a escribirse, lo revisa. En caso de tener que depurar, lo hará tachando el símbolo que no esté correcto, o de lo contrario agregará el suyo. 7. El participante corre a su fila y toca al siguiente, y así sucesivamente hasta que algún equipo termina el programa. Juega esto varias veces en el espacio que hayas decidido hacerlo; el patio es una buena opción. En caso de no tener un espacio grande, es posible hacerlo perfectamente con todos sentados en su silla y pasando la hoja entre los equipos. Las imágenes son cada vez más complejas.
Actividad 2 Algunas veces, cuando estás programando en grupos, alguno de los integrantes tiene errores y hay que corregirlos, hay que depurarlos. A partir de cada una de las siguientes imágenes, encontrarás un código ya escrito con algún error. Dibújalo en el pizarrón, ve quién encuentra la falla y cuál es el símbolo correcto. Deberán basarse una vez más en la siguiente tabla de símbolos:
Encontrar los errores de cada una de las secuencias siguientes:
44
pensamiento computacional
RecuĂŠrdales la importancia del trabajo y la confianza en los equipos; que cada equivocaciĂłn tiene arreglo y siempre se aprende de cada error para que las cosas salgan mejor.
45
48
pensamiento computacional
Conceptos intermedios de programación 3.1 Modelo de seguimiento del programa Secuencia didáctica 7 Con computadora
Program.AR En esta secuencia trabajarás con un proyecto diseñado en lenguaje Scratch, que permite programar un robot (representado en este caso por un gato). Las instrucciones u órdenes que debe realizar el robot se organizan gráficamente en una serie de bloques. Cada bloque corresponde a una acción que debe realizar: cuando se organizan verticalmente forman una secuencia de comandos; es decir, una tarea que se hace en un orden establecido desde el primer bloque hasta el último (visualmente, desde arriba hacia abajo).
49
También es posible descargar todos los escenarios en la siguiente liga: http://programar.gob.ar/descargas/actividades.zip En esta primera parte, se sugiere trabajar sólo con los bloques de acciones de la opción Más bloques, que se encuentra en la pestaña Programas. Haciendo clic en esa opción se accede a la lista de acciones. Para que el robot ejecute una acción, se arrastra el bloque correspondiente hacia el editor (el sector de la derecha) y se coloca debajo del bloque que dice al recibir empezar. En este caso, los alumnos seleccionarán el bloque avanzar.
Para insertar un bloque, se arrastra desde el menú y se suelta donde se quiera agregar. Si se quiere eliminar uno (o varios) de la secuencia, simplemente hay que arrastrarlo con el mouse hacia la izquierda al sector de la opción “Más bloques”.
Objetivos • • • • •
Comprender que un comando es una acción que genera un efecto (reproducir un sonido, pintar a una imagen, mover un objeto, etcétera) y que las secuencias de comandos permiten encadenar (o componer) comandos de forma ordenada. Comprender que un programa es una secuencia de comandos y que ejecutar o correr un programa consiste en hacer que el robot produzca un efecto al interpretarlo. Organizar secuencias de comandos ajustadas a un fin específico. Distinguir entre instrucciones primitivas y procedimientos. Identificar tareas nuevas y crear los procedimientos adecuados.
Desarrollo https://scratch.mit.edu/projects/42291768/
Ahora organiza otra secuencia utilizando los bloques anteriores, por ejemplo:
Explora otros modos de ordenar los bloques anteriores, por ejemplo: saludar, avanzar, volver, saludar, avanzar o avanzar, saludar, avanzar, saludar, volver. De este modo, observa que distintas secuencias producen resultados diferentes.
A continuación, seleccionarán sucesivamente los bloques saludar y volver. El primer bloque irá debajo de avanzar y el segundo debajo de saludar. Así, se formará una secuencia de tres acciones para que las realice el gato.
Tras estas primeras aproximaciones, aborda la organización de una secuencia formada por otras acciones. Por ejemplo, la secuencia correspondiente a la tarea de dormirse. Para ello, en la misma opción, Más bloques, se dispone de otros bloques:
Ingresen al programa El gato en la calle, disponible en línea. Si está en inglés, cambia el idioma de la interfaz haciendo clic en el botón que se encuentra en el menú de la parte superior de la pantalla.
¿Cómo sería la secuencia de “dormirse”? Haciendo clic en la banderita verde que se observa en la parte superior de la pantalla el programa se ejecutará. El botón rojo sirve para detenerlo en cualquier momento. Para volver a ejecutar la secuencia, basta con hacer clic nuevamente en la banderita verde.
50
pensamiento computacional
Hasta ahora se han utilizado bloques que corresponden a acciones primitivas, es decir, acciones básicas preestablecidas. También es posible crear nuevos bloques, es decir, nuevas acciones. A éstas se les denominará procedimientos. Por lo que un procedimiento se puede definir como un conjunto de nuevas acciones que el usuario le indica a la computadora cómo deben de ser realizadas. Para esto se presiona dentro de la opción Más bloques el botón Crear un bloque. Al hacerlo, se abre una ventana con un bloque en blanco en el cual se escribe el nombre del nuevo bloque (en este caso, dormirse).
51
Actividad 1
Conduzca por toda la ciudad Descargar Scratch Jr. aquí: https://goo.gl/12UDl2
Secuencia didáctica 7.1 Ahora que los alumnos saben cómo definir nuevos bloques de acciones, pídeles que creen y definan un nuevo procedimiento, al que llamarán despertarse, que haga que el gato abra los ojos y se levante. La definición del procedimiento debería verse de la manera que muestra el gráfico:
Sin computadora Programar en papel cuadriculado
Program.AR Ser “programado” por otra persona nos dará una idea para entender lo que es realmente la programación. En esta actividad los estudiantes se programarán entre sí y tratarán de dibujar con las instrucciones. Así aprenderemos los mecanismos básicos que la programación supone. Para ello, se proponen algunas actividades para que los alumnos programan en papel.
Objetivos Una vez que se ha completado el nombre del bloque, se presiona “ok”. En el editor aparece un nuevo bloque.
En el nuevo bloque se indica que es necesario definir en qué consiste la nueva tarea. Si no se indica nada, el gato no hará nada cuando se le pida ejecutar el bloque dormirse. Los alumnos pueden comprobar que esto es así arrastrando el bloque dormirse de la lista de la izquierda ubicándolo debajo del bloque al recibir empezar y haciendo clic en la banderita verde. El gato no efectuará ninguna acción.
• • Como cierre, solicita a los alumnos que armen y ejecuten la secuencia de acciones necesarias para hacer que el gato avance un paso, se duerma, se despierte, salude y vuelva a su lugar. Esto debería resolverse como lo muestra este otro gráfico:
Desarrollo Para las actividades que siguen se utilizarán dos hojas cuadriculadas (pueden ser cuadrículas dibujadas sobre hojas en blanco), un lápiz y una goma de borrar. Una hoja se usará para programar y otra para dibujar, siguiendo las instrucciones de un programa. En la parte superior de cada hoja se indicará el uso que le corresponde: “Programas” y “Dibujos”. Para programar, se emplearán los siguientes comandos (es decir, instrucciones):
Alternativas
Simplemente, deberán arrastrar los bloques: acostarse y cerrar los ojos de la lista más bloques. Después, necesitarán colocarlos debajo del bloque definir dormirse.
Ejercitar en algunos de los principios que se aplican en programación, mediante un modelo. Formular instrucciones de manera adecuada e interpretarlas correctamente, de acuerdo con el modelo propuesto.
En caso de no poder utilizar Scratch, te proponemos intentar con la aplicación en la tableta de ScratchJr, con el siguiente PDF:
Además, junto a cada comando o secuencia de comandos es posible indicar cuántas veces éste debe ejecutarse. Para ello, se colocará el comando o la secuencia entre paréntesis, seguido de la cifra correspondiente del número de veces que debe ejecutarse. Por ejemplo, la siguiente secuencia significa “pintar hacia la derecha 2 cuadrados”:
https://www.scratchjr.org/activities/card01-car_ es.pdf Esto incluye el cuadrado sobre el que se encuentra el lápiz (equivalente al cursor de la computadora).
pensamiento computacional
52
La programación se realizará de forma similar a como se hace en Lightbot, pero en vez de ubicar los comandos horizontalmente, de izquierda a derecha, se ubicarán de arriba hacia abajo, poniendo un comando por renglón. Por ejemplo, la siguiente secuencia corresponde a las instrucciones necesarias para dibujar un cuadrado:
53
Para utilizar un procedimiento se escribe su nombre entre corchetes en el lugar del programa que corresponda: [Dibujar ventana]
Este programa supone las siguientes definiciones de los procedimientos:
A su vez, los procedimientos definidos pueden utilizarse para definir otros procedimientos nuevos: Dibujar ventana doble [Dibujar ventana] →4 [Dibujar ventana] Lo que da como resultado el siguiente dibujo: Conviene hacer hincapié en que, al crear un procedimiento para cada parte del dibujo no es necesario cambiar el programa principal para que el dibujo del perro sea más grande; basta con hacer los ajustes pertinentes en las definiciones de los procedimientos.
Esta secuencia de cuatro pasos puede constituir un procedimiento (es decir, un procedimiento es un comando nuevo integrado por un grupo de acciones o tareas secundarias que forman parte de una actividad más amplia). Cada procedimiento, para cuya definición se podrá utilizar la parte inferior de la hoja Programa, tendrá un título que será un nombre breve que sea suficientemente descriptivo de la tarea a la que remite seguido de su definición.
Actividad Luego de explicar las reglas anteriores, proponle a los alumnos que realicen los programas para cada uno de los dibujos que se incluyen a continuación.
La estrategia empleada para programar el primer dibujo puede usarse en los otros dibujos; así, por ejemplo, el programa principal correspondiente al último dibujo quedaría de esta manera:
El programa correspondiente al primer dibujo podría ser el siguiente: [Dibujar cabeza] [Ir a pierna trasera] [Ir a cuerpo] [Dibujar pierna] [Dibujar cuerpo] [Ir a cola] Por ejemplo, a la secuencia anterior puede asignársele el nombre “Dibujar ventana”:
Igualmente, mediante esta estrategia (que no es otra cosa que una subdivisión de tareas), es posible encontrar fácilmente la parte del programa que tiene errores en el caso de que el dibujo resultante no sea el esperado. Por otra parte, es importante destacar que si los procedimientos se hubieran definido privilegiando un criterio meramente formal —por ejemplo, indicando los movimientos y los trazos que el lápiz debería hacer columna por columna o fila por fila— en vez de hacerlo por figuras (cabeza, cola, pata), sería necesario cambiar todo el programa para modificar el tamaño del dibujo y además resultaría más complicado detectar las fallas que pudiera haber. Las mismas abstracciones que usamos habitualmente en la descripción de objetos son útiles para programar.
[Ir a pierna delantera] [Dibujar cola] [Dibujar pierna]
Actividad Como variante o complemento de las actividades anteriores, podrá indicarse a los alumnos que cada uno piense un dibujo, lo programe y luego le dé a un compañero el programa para que, siguiendo las indicaciones reproduzca el dibujo.
Cierre Se sugiere socializar las producciones de los alumnos y evaluar las dificultades que hayan surgido al programar en papel. Al respecto, podrás pedirles a los alumnos que reflexionen, acerca del uso de los procedimientos: cómo los definieron, cuáles fueron los nombres que les asignaron y si les resultó más conveniente hacer varias tareas secundarias o programar todo el dibujo en una sola tarea.
54
pensamiento computacional
Palabras y conceptos importantes:
Comando: Es una instrucción u orden que el usuario proporciona a un sistema informático. Los comandos representan acciones y si los ejecutamos las computadoras realizan dichas acciones. Secuencia de comandos: Es una tarea que se hace en un orden establecido, desde el primer bloque hasta el último (visualmente, desde arriba hacia abajo). Son series de acciones que se realizan una tras otra en un momento determinado.
Un programa es una descripción que le damos a la computadora para que realice lo que le indicamos. Es posible definir nuevos comandos, que llamamos procedimientos, para explicarle a la computadora cómo realizar nuevas acciones. Una condicional se refiere a situaciones que sólo suceden en ciertas condiciones.
3.2 Condicionales: “Espera hasta” Secuencia didáctica 8 Sin computadora Condicionales con cartas Code.org
55
Para esta actividad necesitarás juegos de cartas, sin importar si están completas, hojas de papel y lápiz. Comienza con ejercicios de condicionales de uno en uno. 1. Informa a la clase que si se quedan completamente callados durante 1 minuto harás algo cómo dejarlos cantar una canción o que salgan 5 minutos antes. 2. Empieza a contar y, si la sugerencia tiene éxito, di la siguiente frase: como se cumplió lo que les pedí, tienen la recompensa. En caso contrario, también diles la frase completa. 3. Pregúntales: “¿cuál fue la condición para la recompensa?” 4. La condicional siempre tiene una palabra “si” o un “espera hasta”. 5. Sigue con otros ejemplos: Si pueden adivinar tu edad, entonces aplauden; si sabes la respuesta, esperas hasta que te den tu turno, etcétera. 6. También puede haber condicionales extras, además del “si” y el “entonces”: Si adivinan tu edad entonces pueden salir antes; pero si no adivinan tu edad, entonces se quedan 5 minutos más. Ahora usarás las cartas y vas a indicar las condicionales. Toda la clase puede hacer programas que dependan de las cartas y puedes escribirlos a partir de algoritmos como en los siguientes ejemplos: En este programa, el maestro escoge una carta, si la carta es roja, entonces un equipo gana un punto; si la carta no es roja, entonces el otro equipo gana el punto.
En este programa, alguien escoge la carta y, si es roja, entonces su equipo tiene un punto. Pero si la carta es negra y más alta que 9, entonces el otro equipo tiene un punto. Pero si la carta es negra y más baja que 9, entonces el equipo tiene el mismo número de puntos que marca la carta.
Esta actividad demuestra el modo en el que las condicionales se usan para construir un programa con información específica.
• • •
Definir circunstancias en las cuales el programa debe cambiar su proceso. Determinar los criterios que harán que una condicional se cumpla. Saber ver un programa y predecir sus puntos débiles.
Escribe uno de los programas en el pizarrón y que empiecen a jugar apuntando en un papel los puntos que acumulan. Es importante jugarlo muchas veces con condicionales diferentes para que entiendan el concepto. Pon cada vez más condicionales.
No siempre sabemos cómo serán las cosas cuando creamos un programa. Los diferentes usuarios tienen diferentes necesidades y a veces querrás hacer algo basado en la necesidad de un usuario, que no sea la misma del siguiente: para eso son las condicionales.
Objetivos
Ahora divide tu clase en los equipos que quieras y dales algunas cartas a cada uno (por lo menos una carta para cada miembro).
O puedes hacerlo en pseudocódigo de la siguiente manera:
Hazles notar que los códigos siempre van dentro de las llaves “{ }”. El mismo programa escrito en pseudocódigo se vería así.
56
pensamiento computacional
57
Secuencia didáctica 8.1 Con computadora Abejas: Condicionales Code.org Hasta este momento, la mayoría de los programas que los estudiantes han realizado corren de la misma forma sin flexibilidad.
• •
El que no tenga zapatos negros espera hasta que todos salgan. El que no haya hecho la tarea espera hasta que todos salgamos a recreo.
Actividad 2 Abejas con condicionales Code.org
Es importante observar que las condicionales pueden ser “verdaderas” o “falsas”.
En esta etapa introduciremos las condicionales; códigos que funcionan diferente dependiendo de las condiciones que se encuentren.
Ahora vamos a practicar las condicionales con el mismo juego de abejas, pero lo haremos más complejo.
Dales la siguiente actividad para trabajar en equipos:
Objetivos
Objetivos
Si tu carta es menor a 5 y si tu carta además es roja, entonces tu equipo gana los puntos del número que marca tu carta. Pero si es otra cosa, entonces el otro equipo gana 1 punto. También, si la carta es de corazones, tu equipo gana 1 punto.
•
•
• •
Traducir el lenguaje hablado a condicionales para un programa. Ejecutar un algoritmo con condicionales. Resolver laberintos usando combinaciones de secuencias y condicionales.
Tienen que utilizar condicionales para ayudar a la abeja a lidiar con la flor morada. Nadie sabe si las flores tienen néctar, así que tendremos que usar las condicionales para colectar néctar en caso de que lo haya.
Dales el programa siguiente y observa si descubren qué pasa con cada dibujo. Anota el marcador en cada ronda y veremos quién gana.
• • • •
Comparar las propiedades y los valores de los símbolos ‹,=,›. Traducir condicionales del lenguaje hablado a los símbolos. Ejecutar un algoritmo con condicionales. Utilizar condicionales para tomar una decisión lógica. Escribir funciones con condicionales.
Actividad
https://studio.code.org/s/course2/stage/13/puzzle/1
https://studio.code.org/s/course3/stage/7/puzzle/1
Actividad
En la actividad anterior solo se daba como opción “si hay” dando por sentado que la opción era verdadera y se tenía que actuar en consecuencia.
Pide a tus alumnos que se levanten y designa a uno para que pase al frente y escoja condicionales para empezar a llamar a otros a que pasen junto a él. Por ejemplo: • •
Si tiene el suéter abrochado pasa enfrente. Si tiene mochila nueva pasa al frente.
Así pueden ir imaginando y poniendo diferentes condicionales, por ejemplo “espera hasta”.
En esta parte del juego, vamos a explorar qué sucedería si la opción o condicional no es verdadera, entonces habría que reaccionar en consecuencia y tomar otro camino. Es importante subrayar la aclaración de que las condicionales pueden ser verdaderas o falsas.
58
pensamiento computacional
3.3 Estructura de las decisiones y las condicionales Secuencia didáctica 9 Sin computadora Escenarios cambiantes
Program.Ar Hasta el momento se crearon programas que permitían resolver situaciones en escenarios conocidos. Por ejemplo, cuando en Lightbot se le indicaba al robot que se mueva, se sabía dónde estaban las casillas azules, cuáles eran las dimensiones del tablero y la posición original del robot, etcétera. Pero, ¿qué pasaría si hay que elaborar un programa que funcione con distintas posiciones originales del robot o distintas ubicaciones de las casillas azules? En otras palabras, ¿cómo aportar una solución adecuada para distintos contextos? La respuesta a esta pregunta es el eje de esta sección, donde se aprenderá a trabajar con condicionales. En esta secuencia se reflexionará sobre el uso de alternativas condicionales en programación, con actividades en las que no se utilizarán computadoras.
Objetivos • • •
Introducir en la noción de alternativa condicional. Reconocer semejanzas y diferencias entre escenarios fijos y escenarios cambiantes. Identificar alternativas en un escenario.
Desarrollo Para presentar la noción de alternativa condicional y el uso de alternativas condicionales en programación conviene, tal como se hizo en el apartado anterior, comenzar con actividades que funcionen como una puesta en escena del problema. Al respecto, retoma el escenario planteado en la secuencia didáctica 1, donde el docente, adoptando el papel de robot, recibía las instrucciones que le permitían, por ejemplo, salir del aula.
59
Actividad Ahora, en un escenario más complejo, considera que puede o no haber un obstáculo en el camino hacia la puerta; por ejemplo, un pupitre o una silla. Algunos días este obstáculo estará presente y otros no. El problema consiste en cómo hacer para que el programa que permite al autómata salir del aula funcione cualquier día. Para ello, se explicará a los alumnos que contarán con una nueva posibilidad para programar el robot: el control o la instrucción (que corresponde a un bloque en Scratch) si ‹condición› entonces ‹secuencia de acciones›. Esta indicación permite ejecutar una secuencia de acciones si se cumple determinada condición. Mediante estos controles, indica que el autómata salga del aula, por ejemplo, de la siguiente manera: ‹avanzar dos pasos hacia adelante› Si ‹el autómata está frente a un pupitre› entonces ‹correr el pupitre hacia la izquierda›
3.4 Decisiones mediante switches Secuencia didáctica 9.1
•
Con computadora Laberinto code.org
•
En este juego tenemos que ayudar al zombi a llegar al girasol, utilizando una combinación de secuencias y loops.
Objetivos • • • •
‹avanzar cinco pasos hacia adelante›
Crear un programa con un propósito específico utilizando pasos con secuencias. Contar el número de veces que un mismo paso se tiene que repetir dentro de un loop. Analizar un problema y resolverlo de la manera más eficiente. Utilizar una combinación de secuencias y loops para terminar un laberinto.
‹abrir la puerta›
Recuerda los comandos básicos de “moverse adelante”, “girar a la izquierda”, “girar a la derecha”.
‹dar un paso hacia adelante›
https://studio.code.org/s/course3/stage/2/puzzle/1
Una vez planteado el escenario y presentadas las instrucciones de alternativas condicionales, los alumnos podrán construir grupalmente una solución que guíe al docente a la salida del aula, sin importar si existe o no un obstáculo. La solución esperada es que el docente mire si existe el obstáculo y que, en función de ello, lo quite del camino en caso de ser necesario. En ambos casos, el programa deberá lograr que al final el robot abra la puerta y salga del aula.
Durante la actividad observa a tus alumnos dado que siempre existen diferentes estrategias para resolver un laberinto. Es importante que las compartan y analicen entre ellos, ya que esto les ayudará a reconocer que existen diferentes caminos para resolver un mismo problema.
Cierre Será oportuno conceptualizar lo trabajado en clase explicando que, en ciertas ocasiones deseamos que algunas instrucciones no se ejecuten siempre, sino sólo cuando se cumple cierta condición. A esto lo llamamos alternativa condicional. A fin de afianzar la comprensión de este concepto, se sugiere indicar a los alumnos que propongan diversos ejemplos de situaciones cotidianas que den lugar al uso de alternativas condicionales (si llueve, se suspende el partido; si se enciende la luz verde, el auto avanza y si se enciende la luz roja, se detiene; si la barrera se baja, el auto frena, etcétera). En cada caso, deberán precisarse las alternativas en juego.
Los alumnos pueden inventar sus propios laberintos y resolverlos por equipos.
Utilizar correctamente los comandos necesarios para ejecutar alternativas condicionales. Definir los programas adecuados para escenarios cambiantes.
Desarrollo http://scratch.mit.edu/projects/66895528/#editor Se comenzará con el proyecto de Scratch “El mono y las bananas”. Al ingresar y hacer clic varias veces en la bandera verde podrán observarse aleatoriamente los siguientes cambios de escenario:
El objetivo es simple: lograr que el mono coma bananas solo cuando hay bananas. Para ello, se cuenta con los siguientes comandos primitivos:
Secuencia didáctica 10 Con computadora
Program.AR En esta secuencia se trabajará con una serie de actividades de Scratch que presentan un escenario cambiante y cuya resolución implica el uso de alternativas condicionales.
Objetivos •
Identificar los cambios que se producen en un escenario dado.
Es importante destacar que no es posible solucionar el problema utilizando solo los comandos primitivos. Por ejemplo, una secuencia como la siguiente daría un resultado incorrecto que hace que el programa se buggea en el caso de que no haya banana.
60
pensamiento computacional
61
Para que el mono reconozca la fruta y la coma, se presentará el bloque “¿tocando…?”, ubicado en la categoría Sensores. Mediante este bloque, es posible hacer que el mono verifique si está tocando la fruta. Para ello, se hace clic exactamente sobre el casillero con la punta de flecha que se encuentra junto a Tocando y se selecciona la banana:
Para resolver la actividad, es necesario utilizar el bloque nuevo (ya presentado en la actividad anterior), “si… entonces”. Como recordarás, este bloque, que se encuentra en la categoría Control (en el menú), permite ejecutar un comando sólo en el caso de cumplirse cierta condición.
Sin embargo, antes de intentar ver cómo se utiliza este bloque, conviene dividir el problema; es decir, establecer la secuencia de acciones adecuada para el objetivo. Ello implica definir al menos un procedimiento al que podemos denominar: “comer banana si hay” que resuelva el problema de comer una banana solo en el caso de que ésta exista.
Teniendo en cuenta este procedimiento, el programa que ejecutará el mono será tan simple como el siguiente:
Ahora bien, ¿cómo definir “comer banana si hay”? Dado que el mono comerá la banana si ésta existe, es necesario darle alguna indicación para que sepa si la fruta está presente. En este sentido, para que el mono… →
Si observas la forma de este bloque, notarás que es idéntica al casillero del bloque “si… entonces...”:
62
pensamiento computacional
Esto no es casual, ya que corresponde a la condición con la cual se vincula un comando (o una secuencia de comandos):
63
Actividad La segunda parte de esta secuencia didáctica se compone de una variante del siguiente ejercicio: La elección del mono http://scratch.mit.edu/projects/42294260/#editor
Esta primera parte de la instrucción se lee: “si tocando banana, entonces…”. Para completarla, es necesario elegir el comando que se ejecutará en el caso de que se cumpla esa condición.
De esta manera, se ha resuelto el problema de que el mono reconozca la banana y la coma. El procedimiento “comer banana si hay” queda definido de la siguiente manera:
Luego de haber explicado el uso de los bloques “si... entonces…” y “¿tocando…?” deja que los alumnos terminen de definir el procedimiento “comer banana” y, finalmente, verificar que el problema se resuelva correctamente presionando varias veces la banderita verde.
Se comenzará con el proyecto de Scratch “La elección del mono”. Al ingresar y hacer clic varias veces en la bandera verde, podrán observarse aleatoriamente los siguientes cambios de escenario:
El objetivo es simple: lograr que el mono coma una manzana o una banana cuando haya. Para ello, se cuenta con los siguientes comandos primitivos.
Es importante destacar que en la casilla que se encuentra a la derecha del mono hay una u otra fruta, pero no ambas a la vez. La secuencia siguiente daría un resultado incorrecto:
64
pensamiento computacional
Sin embargo, antes de intentar ver cómo utilizar este bloque, conviene dividir el problema; es decir, establecer la secuencia de acciones (o comandos) adecuada para el objetivo. Ello implica definir al menos un procedimiento al que podemos denominar “comer fruta”, que resuelva el problema de comer una manzana o una banana.
65
Deja a los alumnos concluir la actividad a partir de este punto. Primero, deberán definir el procedimiento “comer banana si hay”; después, terminar de definir el procedimiento “comer fruta” y finalmente, verificar que el problema se resuelva correctamente presionando varias veces la banderita verde.
Teniendo en cuenta este procedimiento, el programa que ejecutará el mono será tan simple como el siguiente:
Alternativa En caso de no poder utilizar Scratch te proponemos intentar con la aplicación en la tableta de ScratchJr en el siguiente PDF: https://www.scratchjr.org/activities/card09-talk_es.pdf
Dado que el mono debe comer la manzana o la banana, es necesario darle alguna indicación para que identifique qué fruta se trata en cada caso. Así, el problema de comer fruta incluye a su vez otros dos similares a los de la actividad anterior:
Actividad 9 Conversación Descargar Scratch Jr. Aquí: https://goo.gl/12UDl2
Cierre Se sugiere hacer hincapié en la idea de que toda alternativa condicional consta de dos partes: una condición y una acción. Si se cumple la condición, entonces se realiza la acción. Asimismo, sugerimos repasar con los alumnos las alternativas condicionales utilizadas en “La elección del mono” (los dos “si… entonces...” de ambos procedimientos) y de qué condición y de qué acción consta cada una. A continuación, indícales que propongan otros ejemplos de alternativas condicionales. Por ejemplo, el programa “irse del salón” podría constar de las alternativas “cerrar la ventana” (si está abierta) y “cerrar la puerta” (si está abierta).
66
pensamiento computacional
67
3.5 Iteraciones (loops) Secuencia didáctica 11 Con computadora Repetición simple
Program.Ar Esta secuencia está centrada en el uso de programas para la resolución de problemas. Se trata de un tema que ya vimosa anteriormente. El empleo de los procedimientos (o funciones) en Lightbot. Ahora se explorará su uso en Scratch.
Objetivos • • •
Actividad Al igual que en otras ocasiones, deja que los alumnos intenten resuelvan el problema solos. Una solución obvia es la siguiente:
Ejercitar en el uso de programas para la resolución de problemas. Establecer comparaciones entre las diversas maneras posibles de resolver un problema. Reforzar los conceptos de repetición y separación en procedimientos.
Desarrollo Se trabajará con el proyecto “El marciano en el desierto”, disponible en línea. http://scratch.mit.edu/projects/42293070/#editor
Basta un rápido vistazo para notar que en esta solución (y en otras parecidas, que sólo varían entre sí por el orden en que se ubican las instrucciones primitivas), se repiten algunas secuencias:
El objetivo es que el marciano coma todas las manzanas del tablero (en el caso de que al ingresar no se vean las manzanas, basta con hacer clic en el icono ). Para ello, disponemos de las siguientes instrucciones que se encuentran en la opción “Más bloques”:
68
pensamiento computacional
Una vez que has identificado estas secuencias, deja que los alumnos vuelvan al problema y traten de resolverlo mediante el uso del bloque repetir (que presentado durante la secuencia didáctica anterior). Cabe contemplar la posibilidad de que algunos alumnos, en vez de acudir a la solución primitiva mostrada más arriba, prevean el uso de este bloque ya desde una primera instancia y que intenten utilizarlo (con menor o mayor éxito). En ese caso, sugerimos no dar mayores precisiones que las que se dieron al comienzo y antes de avanzar con la explicación aguardar a que la mayoría de los alumnos hayan hecho al menos un primer ejercicio para resolver el problema. El uso del bloque repetir permitirá llegar al siguiente resultado:
69
clic, en la sección “Más bloques”, en la indicación “Crear un bloque”. Luego, en la carpeta que se encuentra dentro de la nueva ventana, se escribe el nombre que se desea asignarle al procedimiento; en este caso, el nombre puede ser “Comer 2 derecha”:
reformular la secuencia de comandos del programa. Los procedimientos deberán quedar definidos de esta manera:
Anexo 1 con ejercicios extra del mismo tema
Secuencia didáctica 11.1 Sin computadora Loops Code.org Existe el término en inglés loop, que describe acciones que se repiten un cierto número de veces. En esta actividad, los estudiantes aprenderán a convertir algunas acciones en repeticiones o loops. La palabra correcta en español es iteraciones.
Al presionar OK, aparecerá en el editor un nuevo bloque, el correspondiente a la definición del procedimiento, que debe completarse con las acciones o comandos primitivos que deseas que ejecute el marciano. En este momento, indica a los alumnos que definan el procedimiento. La definición se verá así:
Objetivos • • • El programa finalmente debería quedar así:
Repetir acciones iniciadas por el maestro. Poder traducir un programa dibujado en un baile. Convertir una serie de acciones en un solo loop o iteración.
Para esta actividad se recomienda un espacio abierto
Desarrollo • • •
A pesar de que ésta es una solución más satisfactoria, puede mejorarse mediante una herramienta ya empleada: el procedimiento, que consiste en crear nuevos bloques y explicarle a la computadora (representada en este caso, por el marciano) cómo realizar cosas que hasta ahora no sabe hacer. Ya se ha empleado esta herramienta en Scratch cuando trabajamos con la actividad “El gato en la calle” para definir la actividad de dormirse. Como recordarás, para definir un procedimiento hay que hacer
Una vez definido el procedimiento, para que el marciano lo ejecute habrá que arrastrar desde la lista de bloques de la izquierda el bloque “Comer 2 derecha” hasta el editor y ubicarlo debajo del bloque de evento “al recibir, comenzar”.
Cierre
Se sugiere que, a partir de aquí, los alumnos definan el resto de los procedimientos y que luego los utilicen para
Se sugiere volver a conversar sobre las ventajas del uso de procedimientos y de la repetición de acciones. Si bien para la computadora el resultado de ejecutar las secuencias de comandos propuestas al inicio y al final es el mismo (el marciano come las manzanas de la misma forma que antes), para los seres humanos la segunda es mucho más fácil de entender (aunque en principio pueda parecer lo contrario): ésta (podrías agregar) sería la manera en la que los alumnos le explicarían a sus amigos cómo comer todas las manzanas del tablero en forma muy simple. Además, resulta muy útil cuando el problema se vuelve complejo.
• • •
Pide a un voluntario que se levante. Dale la instrucción de rodear la silla de un compañero. Cuando termine y regrese al frente, dale la instrucción de que vuelva a hacer lo mismo (rodear al compañero); usa las mismas palabras que la primera vez. Cuando termine, haz lo mismo otra vez y después una vez más. Cuando regrese, hazles notar que hubiera sido mucho más fácil decirle desde un principio: “rodea la silla de tu compañero cuatro veces”. ¿Qué tal si lo pides 10 veces?
Si yo quiero que esta actividad se repita 10 veces, eso sería una iteración, o loop. Cuando sabes de antemano que quieres que una actividad se repita varias veces, hay que decirlo de forma adecuada desde un principio. Así incluso sabes cuántas veces te falta realizar la acción para terminar la tarea. Dales el siguiente ejemplo: Si tu mamá te pide que le pongas varias veces su canción favorita, ella no te diría:
70
pensamiento computacional
71
“Pon mi canción, pon mi canción, pon mi canción, pon mi canción”. Lo mejor sería decir desde un, principio: “Pon mi canción 4 veces”.
Secuencia didáctica 11.2
Durante este nivel los alumnos aprenderán a crear ciclos, es decir, crear una serie de comandos para que el robot repita la misma acción y prenda las luces sin necesidad de repetir todo el proceso, y resolver así el nivel de una manera más lógica.
El método para resolver este nivel reside en repetir los comandos del Proc 1, pero primero es necesario que el alumno defina cuál sería el procedimiento para poder hacer la tarea indicada.
Con computadora Lightbot nivel 3 Ir al juego aquí: http://lightbot.com/hocflash.html o descargar la aplicación para Android aquí: https://goo.gl/DPtgZt. Para que recuerdes bien qué significa cada comando en la nueva versión de Lightbot y puedas relacionarlos con las instrucciones de esta versión, revisa el siguiente cuadro:
COMANDO
La manera de resolver este nivel consiste en distinguir los pasos que van a repetirse para poder avanzar y prender la luz de cada casilla, justo como en esta imagen:
DESCRIPCIÓN
El robot avanza un lugar hacia delante
El robot da un giro de 90º a la izquierda
El robot da un giro de 90º a la derecha
El robot sube o baja un escalón (avanzando un lugar hacia adelante) El robot tiene que utilizar este comando cuando esté sobre un bloque u hoja azul para activar y poder terminar el programa El robot utiliza este comando para guardar programas que se repiten constantemente El robot utiliza este comando para guardar programas que se repiten constantemente. Utilizar este bloque cuando ya se ha utilizado el comando P1
Resolver el nivel 3-1 es muy sencillo, porque en el primer recuadro (MAIN) sólo necesitas un comando para reproducir la acción adecuada; en el segundo recuadro tienes que definir lo que llevara el Proc 1 (Procedimiento 1) para poder repetirlo y lograr el objetivo de prender las luces.
El nivel 3-2, el procedimiento es parecido al anterior y fácil de resolver; trata de pensarlo de la misma manera que el 3-1 y ver cuáles serán los botones que se repetirán.
72
pensamiento computacional
73
En este nivel, el alumno necesitará un comando para reproducir la tarea requerida dentro del (MAIN METHOD); en el segundo recuadro tendrá que definir lo que llevará el Proc 1 (Procedimiento 1) para repetirlo y lograr el objetivo.
La manera de resolver este nivel es repitiendo las acciones en la dirección adecuada para que avance a la derecha o a la izquierda.
En este nivel 3-6 el alumno debe pensar en prender las primeras dos luces de tal manera que quede del mismo lado donde empezó para repetir los comandos y avanzar a la siguiente esquina.
Para este nivel, el alumno tiene que repetir los comandos de una esquina para lograr avanzar y dar la vuelta para cumplir el objetivo.
En el nivel 3-5 se agrega un recuadro para el procedimiento 2 (Proc 2), que el alumno tendrá que identificar, para poder combinar los comandos Proc 2 y Proc 1 en diferentes procesos y así simplificar los pasos y resolver la tarea requerida.
Hay varias maneras en las que pueden completarse los niveles, debido a que cada alumno tiene diferentes maneras de pensar. Es posible que tú lo hayas resuelto de forma diferente y funcione.
En el nivel 3-4, el alumno tiene que definir los comandos correctos para avanzar de un lado a otro y prender toda las luces.
Para resolver este nivel es necesario pensar en una serie de comandos para que el robot logre dar la vuelta y siga prendiendo las luces.
Si en algún momento no logras resolver el nivel, no te desesperes, mejor piensa la manera como podrías resolverlo y busca más soluciones.
En el nivel 3-3 se requieren más comandos para poder concretar el ciclo. Es importante notar que no porque se vea más complejo significa que sea difícil.
74
pensamiento computacional
3.6 Funciones y variables Secuencia didáctica 12 Sin computadora Hacer un llavero Code.org En esta actividad, los estudiantes harán una manualidad o un llavero, siguiendo pasos repetitivos. Después se les pedirá que identifiquen una serie de herramientas que se duplicarán. Una vez identificadas, podrían denominarlo un programa y lo guardarán en una hoja. Para construir un llavero los estudiantes necesitan realizar una serie de pasos repetidos en los que tendrán que identificar los que más se repiten. Una vez que lo hagan, podrán hacer una definición de una instrucción general, o función, para que en las ocasiones siguientes que tienen que hacer EXACTAMAENTE lo mismo no usen pasos separados y puedan usar la serie de instrucciones que harán lo mismo. Con esta actividad los estudiantes aprenderán a identificar patrones para definir y construir funciones en un programa.
Objetivo • • •
Aprender a encontrar los patrones en el proceso. Hacer una manualidad educativa. Interpretar símbolos y los relaciona con movimientos físicos.
Recuerda los conceptos siguientes:
Una función tratará de encapsular una tarea que contiene muchas instrucciones. Esto nos permitirá entender un programa como un conjunto de pasos. Una variable es un espacio que se reserva en la memoria de la computadora a la que asignamos un contenido que puede ser un valor numérico o de texto.
Desarrollo Para esta actividad necesitarás pedirles hilo o cordón con el que podrán ensartar chaquiras, botones, pasta o papelitos, que también deben traer. Las piezas tienen que ser de 2 formas diferentes (A y B). Para el final del llavero necesitarán una pieza de su elección que pueda también ensartarse. Lo ideal sería que tú hicieras una pulsera o un llavero con un patrón determinado usando dos tipos diferentes de piezas con nudos entre ellas y con una pieza única.
75
Cuando ya estén listos y tengan su material, enséñales tu muestra y diles que no importa lo diferentes que sean las piezas que trajeron, el desarrollo de la actividad será el mismo; tampoco importa el tipo de hilo o cordón con el que lo amarren y que la pieza especial que trajeron es única de entre todas. Escribe las siguientes palabras en el pizarrón: Pieza = no importa el color, forma o material de las que trajeron, todas tienen la misma función. Hilo = elemento longitudinal que no es una pieza. Única = el objeto especial que trajo cada quien. 1. Introduce ensartando una pieza A en el hilo; después haz un nudo; mete otra pieza A; haz otro nudo; ensarta ahora una pieza B y haz un nudo. Después, repite todo otra vez: introduce una pieza A, haz un nudo, otra pieza A, otro nudo, una pieza B, nudo. Al final, ensarta tu pieza única. 2. Nota que la rutina tiene algunos pasos y todos se repiten otra vez: pieza A, nudo, pieza A, nudo, pieza B nudo – pieza A, nudo, pieza A, nudo, pieza B, nudo y al final, pieza única. 3. Ahora escribe los pasos usando un formato, como el siguiente. Usa un renglón para cada paso. 4. La clase debe de notar que no te alcanzan los renglones para escribir los pasos. Si no lo notan, tú señálalo y pregúntales qué se les ocurre hacer. 5. Entonces enséñales el formato en el pizarrón:
76
pensamiento computacional
Tendrán que observar que pueden respaldarse con estos formatos y poner en cada uno de ellos algunos de los pasos para poder usarlos en el programa y ahorrar líneas. Esto es una función. Dales la oportunidad a que ellos propongan. Pídeles que te compartan las diferentes formas que ellos encontraron y después muestra la siguiente manera de hacerlo: La opción puede denominarse Habilidad 1: 1-pieza A; 2-nudo; 3-pieza A; 4-nudo; 5-pieza B; 6-nudo
77
Propón estas actividades para fortalecer el aprendizaje de los estudiantes: • • • •
Habilidad 2: 1-pieza única; 2-nudo final Programa: 1-habilidad 1; 2-habilidad 1; 3-habilidad 2 Ahora pregúntales cómo harían si tuvieran que repetir la secuencia miles de veces. Lo importante es saber que realizas una misma acción varias veces aunque no sepas cuál material o variable vas a utilizar para que esto suceda y que el que existan diferentes variables no altera tu resultado: llegar a una meta determinada.
Actividad 2 Con computadora Abeja: funciones code.org En esta actividad los estudiantes usarán y modificarán funciones para ayudar a la abeja a recolectar néctar y hacer miel.
Haz una lluvia de ideas sobre las actividades de los alumnos en la escuela. Divide a los estudiantes en pequeños grupos y dale a cada grupo una hoja grande de papel. Cada grupo escribirá la actividad diaria como una función y deberán crear un cartel con el código de las funciones. Escribe con toda la clase un programa del típico día de clase, nombrando a cada grupo como una función.
• •
Usar funciones predeterminadas para completar las tareas repetidas. Modificar la función existente para completar diferentes tareas. Crear una función desde Scratch.
Actividad https://studio.code.org/s/course3/stage/6/puzzle/1
COMANDO
DESCRIPCIÓN
El robot avanza un lugar hacia delante
El robot da un giro de 90º a la izquierda
El robot da un giro de 90º a la derecha
Secuencia didáctica 12.1 Con computadora e internet Funciones con artista Code.org Para reforzar el aprendizaje de las funciones, los alumnos podrán dibujar formas en la pantalla las cuales podrán modificar de acuerdo con diferentes propósitos.
Objetivo • • • •
Utiliza una función predeterminada para dibujar una figura y repetirla. Modifica una función existente para dibujar diferentes figuras. Distingue entre funciones y loops. Crea un programa con funciones.
https://studio.code.org/s/course3/stage/5/puzzle/1
Objetivos •
Para que recuerdes bien qué significa cada comando en la nueva versión de Lightbot y puedas relacionarlos con las instrucciones de la antigua versión, revisa el siguiente cuadro:
Secuencia didáctica 12.2 Con computadora Lightbot nivel 2 Ir al juego en este link: http://lightbot.com/hocflash.html o descargar la aplicación para Android aquí: https://goo.gl/DPtgZt.
El robot sube o baja un escalón (avanzando un lugar hacia adelante) El robot tiene que utilizar este comando cuando esté sobre un bloque u hoja azul para activar y poder terminar el programa El robot utiliza este comando para guardar programas que se repiten constantemente El robot utiliza este comando para guardar programas que se repiten constantemente. Se utiliza este bloque cuando ya se ha usado el comando P1
Avanzar (hace que el robot avance una casilla, excepto si está frente a una pared o a un desnivel, en cuyo caso permanece en el mismo lugar). Girar a la derecha Girar a la izquierda Saltar (permite al robot saltar por encima de un solo bloque, o bien saltar desde uno). Encender luz (si está apagada) o Apagarla (si está encendida) Función 1 y 2 (es lo mismo que proc 1 y proc 2) Los alumnos entrarán al nivel 2 y completarán todas las actividades que se recomiendan. A partir de aquí, tendrán que utilizar más espacios dentro del área principal (Main).
78
pensamiento computacional
El alumno tiene que estar al pendiente de que cuando encuentre un patrón que se repita, puede crear una función con un comando específico llenando los bloques de cuadros de funciones: proc 1 y proc 2 . Cuando utilicen las nuevas áreas, el comando p1 le dirá al robot qué hacer con un comando, éste incluye simplemente todos los movimientos que hay en proc 1 . Lo mismo ocurre cuando tengan que utilizar proc 2 . Un procedimiento o función, como lo hemos denominado en este juego, es cuando se recurre a varios pasos o acciones repetitivas. En este juego está permitido definir dos tareas nuevas delimitadas por los grupos de casilleros Proc 1 y Proc 2. Cada grupo admite hasta ocho acciones por tarea, porque es parte del juego que el jugador piense la forma de utilizar las casillas de la manera más eficaz.
79
Lo importante es que los alumnos logren identificar patrones que les permitan ahorrar casilleros al definir nuevas tareas. Con el fin de reforzar la continuidad de estas operaciones con las ya practicadas en Scratch, indica a los alumnos que propongan un nombre para la tarea ejemplificada que sea suficientemente descriptivo de la acción a realizar.
soluciones más adecuadas (aunque es menos probable que los alumnos las propongan) podrían ser las siguientes:
propósito bien definido y estar formado por secuencias de acciones que se repiten muchas veces dentro del programa. En relación con esto, pide a los alumnos que busquen, en el intento de solución planteado, alguna secuencia que se repita. Esta secuencia está formada por las acciones avanzar y encender luz. Esta observación constituye un buen punto de partida para que los alumnos profundicen en la utilidad de los procedimientos en programación. Así, siguiendo con el análisis del ejemplo, las secuencias que se reiteran pueden borrarse y redefinirse como tareas secundarias de un mismo procedimiento:
Una vez que has explicado cómo crear nuevos procedimientos en Lightbot, los alumnos están en condiciones de solucionar el problema que se plantea en el nivel 5. Una opción que muchos alumnos han seguido para continuar dando indicaciones al robot consiste en definir la función 1 con el detalle de las acciones que no entran en el primer bloque de cuadros.
Según las características de la clase, podría ser conveniente dejar que los alumnos exploren diversas soluciones posibles (reiniciando el juego, si es necesario). Por el momento, bastará con señalar las limitaciones que presenta la primera solución y pasar al nivel siguiente.
Mediante los comandos se indica al robot que ejecute las nuevas tareas definidas. Por ejemplo, si el procedimiento o función 1 se define como avanzar tres veces, al colocar el comando en la primer bloque de cuadros, se está indicando al robot que se mueva tres pasos hacia adelante:
Debido a que las casillas de la función 1 no alcanzan para indicar todas las acciones, se incluyen entonces en la función 2 las acciones restantes:
Se sugiere dar tiempo a los alumnos para que intenten resolverlo por su cuenta. Lo más probable es que la mayoría encare una vía de solución inadecuada, al intentar repetir lo hecho en el primer ejemplo del nivel anterior, por lo que es conveniente pedirles que interrumpan el juego y se enfoquen en cómo usar los procedimientos para hallar una solución satisfactoria. Comienza señalando lo que ocurre cuando se utilizan los procedimientos solo como meras extensiones del espacio disponible para llenarlos con acciones primitivas. En este caso, se llega a una situación como la siguiente:
Si se especifica dos veces, el robot se moverá seis veces hacia adelante. De este modo, en vez utilizar seis casilleros de la retícula, se utilizan sólo dos, por que cada una vale por tres pasos:
En esta solución no se pensó en dividir inteligentemente el problema. Si bien el robot llega a encender todas las luces, esta forma de utilizar las tareas secundarias no permitirá ir muy lejos en los niveles más complejos ya que no habrá suficientes casillas disponibles. Otras
Se han ocupado todos los casilleros y al robot todavía le quedan dos baldosas sin encender. Para que tenga sentido utilizar un procedimiento, tiene que cumplir con un
De este modo, cada vez que quieras que el robot avance y encienda la luz, en las casillas del Main method se indicará f1:
80
pensamiento computacional
Lo que se ha resuelto para la primera fila de luces, puede también aplicarse a la segunda. Para ello, solo hay que definir otro procedimiento que incluya el anterior. De acuerdo con esto, f2 puede definirse como seis veces f1.
81
para la solución de problemas, proponles que avancen a los siguientes niveles. Las soluciones y los patrones correspondientes a esos niveles se muestran a continuación. En el nivel 8 la secuencia de acciones más frecuente consiste en avanzar dos veces y encender la luz:
•
Definir un segundo procedimiento, que comience con la acción de saltar desde la baldosa encendida de modo que el robot quede ubicado en la posición inicial, continúe con otro giro y repita el primer procedimiento (que hace que el robot avance nuevamente al punto intermedio) y finalice con la indicación de las acciones requeridas para que el robot encienda la luz de la baldosa del extremo derecho.
simplemente se indica que ejecute la acción encender luz al final de la primera retícula, de manera que el robot vuelva a encenderla.
Recuerda:
La primera celda en la segunda fila, ya que esta comienza sobre el borde del tablero. En cualquier caso, si a los alumnos les resulta difícil entender esto, bastará con que hagan la prueba. Verán que al hacer f2 = f1 el robot apaga la luz de una baldosa que ya había encendido. Las indicaciones para que el robot encienda todas las baldosas quedan organizadas de la siguiente manera.
Cada problema al que nos enfrentamos tiene diferentes grados de dificultad. Si queremos tener oportunidad de hacer algo creativo, útil e inteligente debemos tener la voluntad de resolver problemas que nos cuesten trabajo y en los que sea necesario, hacer varios intentos antes de lograr resolverlos. Las baldosas azules forman un cuadrado, por lo que, una vez que el robot llega a la primera baldosa azul, sólo hay que definir el procedimiento adecuado para uno de los lados y luego copiarlo para los lados restantes.
Si no encuentran las secuencias, ayúdalos a recordar que la paciencia y el trabajo en equipo son importantes en la programación. Tal vez tengan que empezar desde cero para lograrlo.
***Hay diferentes versiones de Lightbot, si las imágenes que estás utilizando no corresponden exactamente a las del cuaderno, trata de apoyarte en estas soluciones y explicaciones. En el nivel 11 conviene definir un procedimiento que encienda cuatro luces contiguas ya que todas las filas tienen ocho luces, excepto la primera. Lo más práctico es considerar esta primera fila como si fuera igual que las otras e indicar que el robot realice la acción de encender la luz sobre la baldosa, aunque ésta no la tenga. Es una acción redundante, pero válida en este juego.
Para resolver los próximos niveles es necesario valerse de esta habilidad. Antes de continuar, es fundamental que los alumnos se apropien de este nuevo modo de usar los procedimientos. De ser necesario se dejará que organicen sus propias definiciones de los procedimientos, las prueben y las corrijan. Incluso es posible que propongan otras soluciones las cuales, aunque les permitan pasar al siguiente nivel, no son tan eficientes como la que se describió antes. Luego de haberte asegurado de que los alumnos hayan comprendido la manera de aprovechar los procedimientos
•
Definir un procedimiento que incluya las acciones necesarias para que el robot se dirija hasta el punto intermedio entre las dos baldosas azules. Desde allí, hacer que el robot avance primero hacia la baldosa azul ubicada a la izquierda, la encienda y gire.
Cierre Es importante detenerse a analizar y comparar las actividades realizadas en Scratch con las de Lightbot y, a partir de ello, indicar los aspectos nuevos relacionados con el tipo de operaciones que desempeña un programa. Así, mientras en los casos anteriores no había un problema bien delimitado para resolver (en la actividad de Scratch en la que había que definir la actividad de dormirse, el foco estaba puesto más bien en cómo plantear un problema) y sólo ejecutaba la acción, aquí se sabe exactamente si el programa resuelve o no el problema planteado. Entre los aspectos novedosos está el método de dividir un problema grande en partes más pequeñas, lo que en programación se conoce como división en tareas secundarias. La división en tareas secundarias consiste en:
El nivel 10 es uno de los más difíciles. Lo más conveniente es seguir los pasos que se indican a continuación: •
Así continuarán encontrando todas las posibilidades para lograr encender todas las luces en los diferentes niveles, no se desesperen, habrá veces que tendrán que reiniciar el juego hasta encontrar las funciones adecuadas.
El último nivel es fácil de resolver. Un inconveniente que podría surgir aquí (si no se presentó anteriormente) es que el robot apague una de las luces que encendió con anterioridad. Para solucionarlo,
•
Identificar pequeñas tareas fácilmente explicables (avanzar un paso, subir un peldaño, encender una luz) y asignarles un nombre pertinente para que se entienda lo que representan.
82
pensamiento computacional
•
Combinar estas pequeñas tareas para definir el programa que resuelve el problema (los procedimientos, que en Lightbot se llaman funciones).
Otro elemento diferente en esta actividad es haber encontrado que hay acciones que se repiten y debemos aprender a detectarlas. Estas acciones, en lenguaje de computadoras se denominan loops. Los alumnos tienen que saber distinguir el número de veces que se repiten las acciones en una misma instrucción y convertir esta serie de acciones en un solo loop.
Loop significa hacer la misma cosa muchas veces. División de tareas secundarias es cuando un problema grande puede dividirse en partes pequeñas para resolverlas mejor. Es lograr descomponer una secuencia larga de instrucciones en secuencias más cortas y repetibles. Así, la creación de programas para una acción específica se logra con repeticiones de secuencias.
83
pensamiento computacional
86
87
Soluciones del mundo real
Descripción
Comentarios
Preguntar a los niños: ¿Qué es la basura?
Preséntales el tema mediante las diferentes formas que hay de encontrar basura, generar basura, etcétera
La idea es realizar un proyecto que ofrezca una solución a un problema del mundo real enfocado en temas trascendentes de su comunidad, tales como la contaminación y la basura.
Anotar y explorar todos los tipos de basura que existen
En grupo, con la participación de los niños, anota los tipos y formas de basura que hay
Discute con todo el grupo sobre el tema escogido. Para ayudarte en el desarrollo del ejercicio, pongamos el ejemplo de la basura en su comunidad. Una vez detectado el problema, tienes que organizar una lluvia de ideas al respecto exponiendo diferentes factores o aspectos secundarios con respecto al problema de la basura.
Los niños escribirán de manera individual todos los problemas relacionados con la basura que se les ocurran
Individualmente, escribiendo en una hoja blanca de papel
Organízalos para que formen equipos de mínimo 2 y máximo 4 integrantes y pídeles que por equipo de trabajo propongan una solución y la desarrollen en cuatro etapas:
Los niños expondrán sus resultados
Pasarán al frente de la clase a explicar sus problemas
1. Aprender acerca del tema
En equipo (dividirlos en 2 grandes equipos), identificar los problemas más importantes de entre los que se expusieron
Anotar en la hoja de papel los problemas más importantes de acuerdo con las conclusiones del equipo
Explorar en grupo cuáles son los problemas más importantes
Se aportarán ideas y se anotarán en el pizarrón.
Identificar los 3 problemas más importantes que los niños identificaron
Decisión grupal
En este capítulo, los alumnos podrán descubrir alternativas para utilizar lo aprendido en el mundo real.
• •
Después de la primera discusión grupal, pide a los alumnos que realicen una investigación general de un tema; en este caso, basura y contaminación. Deberán de utilizar diversos recursos como el internet, libros, entrevistas, entre otros. Preguntar a los niños si han tirado el día de hoy algo como: • • • •
• • •
Cáscaras de comida Bolsas de plástico Objetos usadas Ropa muy pequeña o usada
Con lo anterior, los niños comenzarán a darse cuenta de la gran cantidad de basura que generan en un día. Logra que se imaginen que eso sólo es de ellos y entonces hablen de lo que se genera de basura en el país. Trata de que investiguen qué manejo se le da a la basura donde ellos viven: puede ser que la lleven a un centro de reciclaje, a un depósito de basura o que se queme. Lo que hay que preguntar realmente es si saben dónde termina esa basura. La misión de los niños es encontrar una solución para generar menos basura o mejorar la forma en que la gente gestiona la basura mediante una aplicación móvil o un programa.
Con esta actividad, los niños podrán encontrar varios problemas sobre el mismo tema. La intención es que seleccionen solo uno de ellos y se propongan trabajar para desarrollar una solución.
3. Crear una solución innovadora • •
Con el apoyo de los programas usados para aprender a programar, los niños tendrán que desarrollar una solución al problema identificado. Utilizar las siguientes estrategias didácticas:
2. Identificar un problema
1. Motivar a que los niños piensen en una solución que agregue valor a su comunidad, mejorando algo que ya existe, complementando algo previo o bien, inventar algo completamente nuevo.
•
2. Propiciar que los niños piensen en: 1. ¿Qué puede hacerse de la mejor manera? ¿Cómo podría hacerse de una manera diferente? 2. ¿Podría su solución hacer que la gente se divierta o se entretenga cuando la use?
Mediante la siguiente actividad en equipo, los niños podrán identificar el problema:
88
pensamiento computacional
3. Impulsar para que los niños consideren diferentes ideas y tengan la actitud de que la primera solución tal vez no sea la mejor de modo que piensen el problema desde distintos puntos de vista. En ocasiones las soluciones que consideran “tontas” pueden ser las mejores.
89
Esta actividad de Scratch es una adaptación de Lightbot. Al ingresar, se observa el siguiente escenario:
• Por último, permitir que aprecien sus soluciones desde el punto de vista de que podrían ser reales. 1. ¿Por qué sus soluciones podrían ser exitosas cuando otras han fracasado? 2. ¿Qué costo tendría volverla una realidad? 3. ¿Podría cualquier persona, o solo algunas, valerse de su solución?
Como en Lightbot, el objetivo es que el robot encienda los cuadros azules. La diferencia es que, en vez de ubicar los comandos en un recuadro, se utilizan los bloques característicos de Scratch. Los comandos primitivos (que, como es habitual, se encuentran en la categoría Más bloques) son en este caso los siguientes:
• Recordarles que sus ideas no tienen que ser completamente nuevas y poner énfasis en que innovar es la mejora de una idea o un objeto que ya existe.
4. Desarrollar su propuesta Éste es el momento para desarrollar su propuesta, valiéndose de la imaginación y el trabajo en equipo.
Se espera que los alumnos se den cuenta de que les conviene crear un procedimiento que mueva al robot en diagonal porque ese movimiento se repite más a menudo.
5. Hacer una presentación de la solución Los niños desarrollarán una presentación de 5 minutos donde identifiquen su problema, su solución y expliquen su funcionamiento técnico con el objetivo de que mencionen cómo desarrollaron su solución.
6. Aportar a su comunidad Lo ideal sería que los alumnos puedan dejar huella y aportar soluciones reales en su comunidad.
Anexo 1
Secuencia didáctica 13 Actividades extras Program.AR La actividad siguiente de Scratch que figuran a continuación presentan diversos escenarios y plantean problemas de complejidad creciente. Se proponen a modo de ejercicio para que los alumnos afiancen lo aprendido hasta el momento. Luego del trabajo con cada actividad, sugerimos hacer una puesta en común a fin de que los alumnos expongan las dificultades que se les hayan podido presentar. Asimismo, también será útil comparar cada una con El gato en la calle, ya trabajada.
Lightbot en Scratch
https://scratch.mit.edu/projects/42292564/#editor
Este procedimiento podría definirse así: Luego, es posible crear dos procedimientos más: uno para que el robot encienda los cuatro cuadros azules que forman una diagonal a la izquierda y otro para que encienda los cuatro cuadros azules restantes, que forman otra diagonal a la derecha. Las definiciones de estos procedimientos serían las siguientes:
90
pensamiento computacional
A partir de los procedimientos definidos, la solución quedaría planteada de esta manera:
91
regrese desde la fila en la que se encuentra a la primera celda de la izquierda. La estrategia –que deberán descubrir los alumnos– será hacer que el extraterrestre tome las estrellas fila por fila. Una solución posible (entre varias otras) es la siguiente:
Como en otras oportunidades, se sugiere dejar a los alumnos que intenten resolver el problema solos e intervenir únicamente cuando sea necesario; por ejemplo, si se observa que buscan una solución sin crear procedimientos. En tal caso, indícales que el desafío es simplificar las tareas, como se hizo en Lightbolt, de modo que adquieran una destreza que les permitirá resolver problemas más difíciles. Luego, orienta a cada alumno por separado acerca de qué procedimientos conviene crear.
Otras posibilidades son las siguientes:
El recolector de estrellas http://scratch.mit.edu/projects/42294488/#editor El planteamiento en esta actividad de Scratch es similar al de “El marciano en el desierto”. Aquí hay un extraterreste que en este caso tiene que recolectar estrellas. El objetivo es que el extraterrestre tome todas las estrellas del tablero.
María, la come sandías http://scratch.mit.edu/projects/42294654/#editor Otras posibilidades, a partir de los mismos procedimientos, son las que a continuación presentamos. En este juego, el personaje de María deberá morder todas las sandías del tablero.
Como puedes apreciar, no hay instrucciones para que el extraterrestre se mueva hacia abajo o hacia la izquierda. El bloque volver al borde izquierdo simplemente ordena al extraterrestre que
92
pensamiento computacional
Se sugiere conversar con los alumnos acerca de cómo resolverían el juego antes de que intenten hacerlo y orientarlos al respecto. Las soluciones posibles son varias. Una consiste en ordenar al personaje que muerda las sandías de las tres filas, a partir de la segunda columna, y que luego muerda las de la primera columna. También puede morder primero las sandías de la primera columna y luego las de las tres filas. El orden es indistinto. En cualquier caso, se necesitan al menos dos procedimientos, uno para cada tarea. Además de éstos, puede agregarse otro que permita que el personaje vuelva al principio de la fila (es decir, el borde izquierdo del tablero).
93
Alimentar a los peces http://scratch.mit.edu/projects/42292362/#editor En este caso, el buzo debe buscar la comida y luego acercarse a cada pez para alimentarlo.
En la actividad anterior esto era un comando primitivo, pero ahora habría que definirlo. Una vez planteados los términos generales de la solución, deja que los alumnos intenten formularla con todos sus detalles. Si les resulta complicado, guíalos en los pasos a seguir. Al respecto, indícales que lo más conveniente será definir los procedimientos en el siguiente orden: en primer lugar, el procedimiento necesario para que María muerda las sandías de una fila (excepto las que forman la primera columna); luego, el que corresponde a la acción de volver al inicio de la fila. A continuación, un procedimiento que le ordene morder las sandías de las tres filas (donde se integren los procedimientos anteriores) y, finalmente, uno para que muerda las sandías de la columna de la izquierda. A partir de estos procedimientos, una solución posible es la siguiente:
Como en el caso anterior, los alumnos podrán discutir acerca de los procedimientos más adecuados para resolver el problema; por ejemplo, podría crearse un procedimiento para ir a buscar el alimento y otro para alimentar a los peces. Una solución posible es la siguiente:
94
pensamiento computacional
95
5. Ir con la princesa hasta el unicornio y escapar.
Instalar juegos http://scratch.mit.edu/projects/42296824/#editor En esta actividad de Scratch, el personaje tiene que instalar un videojuego en las tres computadoras de la biblioteca. Para ello debe encender cada computadora, ingresar la contraseña, que en este caso es ABC, cargar el juego y finalmente apagar la máquina. Por ser un proceso repetitivo, lo más conveniente es automatizarlo.
Para que el héroe pueda superar las pruebas, hay que tener en cuenta lo siguiente: • • • • El desafío para los alumnos es definir un procedimiento que permita realizar el proceso antes descrito y, luego, definir un programa que lo ejecute en cada computadora de la biblioteca. La solución es la siguiente:
•
No puede tomar la llave si no está en la casilla donde está la llave No puede abrir el cofre sin la llave y si no está junto al cofre No puede darle el sobrero al mago si no tiene el sombrero y si no está junto al mago No puede atacar al caballero oscuro si no tiene la espada y si no está en la casilla donde se encuentra el caballero No puede escapar con la princesa montado en el unicornio si no está con ella en la casilla donde se encuentra el unicornio
Como contrapartida de estas restricciones, el héroe puede pasar por encima de cualquier figura sin problemas. Esto significa que no tiene que esquivar ningún obstáculo. Una vez más, será conveniente dejar que los alumnos resuelvan la actividad como se les ocurra, pero recordándoles que, si no identifican y definen distintos procedimientos, la tarea puede volverse bastante ardua y compleja. Tal vez convenga escribir en el pizarrón los pasos a seguir para que todos puedan verlos cómodamente y no se pierdan. Una solución posible es la siguiente:
La gran aventura del mar encantado http://scratch.mit.edu/projects/42294776/#editor Con esta actividad de Scratch se pretende que los alumnos exploten al máximo la técnica de división en tareas secundarias. El objetivo es que el héroe (ubicado en el casillero del extremo inferior izquierdo) logre escapar en el unicornio con la princesa. Para ello, debe superar una serie de pruebas en el siguiente orden: 1. 2. 3. 4.
Buscar la llave. Con la llave, abrir el cofre y tomar un sombrero mágico que se encuentra adentro. Entregarle el sombrero al mago para que éste le dé una espada. Con la espada, ir a luchar contra el caballero oscuro y rescatar a la princesa.
96
pensamiento computacional
Reparar la nave
97
Vocabulario para enseñar a programar de manera fácil
http://scratch.mit.edu/projects/42296150/#editor El último juego de esta sección presenta a un marciano que debe aprovisionarse de carbón y hierro para reparar su nave y así poder ponerla en funcionamiento. El marciano tendrá que realizar tres viajes para obtener cada material que necesita. Una vez que lo haga, la nave se desplazará.
Abstracción: Encontrar diferencias específicas para hacer que una solución pueda resolver varios problemas. Algoritmo: Lista de pasos para terminar una tarea. Es una lista de los pasos que es posible hacer, o no, con una computadora. Binario: Manera de representar información con dos opciones o alternativas. Bug (o error): Error en el programa que no deja funcionar algo como se espera que funcione. Caja de herramientas: Barra que se encuentra en el centro de los programas de Scratch y Code.org que contiene todos los bloques que podemos ocupar para hacer nuestros programas. Ciencias de la computación: Utilizar el poder de las computadoras para resolver problemas.
Hay varias soluciones igualmente válidas para el problema planteado. Una de ellas es la siguiente:
Ciudadano digital: Las personas que actúan de forma segura y respetuosa en el internet. Comando: Una instrucción a realizar; la unión de comandos forman un programa o algoritmo. Condicionales: Declaraciones que hacen que un comando se realice o no bajo ciertas circunstancias. Controlador de un evento: Una evaluación que se lleva a cabo de acuerdo con una acción que se realiza dentro o fuera de nuestro programa. Correr un programa: Hacer que la computadora ejecute la serie de instrucciones establecidas. Dato: Información, cantidad, caracteres y símbolos que se asigna un programa o que el programa ofrece. Definir una función: Declarar un nombre a un algoritmo para denominarlo después solo por el nombre que se estableció. Depuración: Encontrar y modificar errores en los programas. Descomponer: Romper un problema en piezas (problemas) más pequeños para crear soluciones pequeñas y para que sea más fácil encontrar la solución a éste . Dirección IP: Un número asignado a cualquier dispositivo que esté conectado al internet. División de subtareas: Habilidad de dividir un problema en partes pequeñas para poder resolverlo mejor. DNS (nombre de servicio de dominio): Servicio que traduce las direcciones URL en direcciones IP. DSL(cable): Método para enviar información a través de cables de teléfono o televisión.
98
pensamiento computacional
99
Espacio de trabajo: Lugar para colocar nuestros bloques o códigos de programación que se ejecutarán con el programa designado.
Guías de descargas:
Evento: Orden recibida en el programa que hace que algo suceda.
Guía de descarga de la aplicación ScratchJr para su uso en tabletas
Fibra óptica (cable): Conexión que utiliza luz para transmitir información.
En esta guía se presentan los pasos para descargar la aplicación ScratchJr en las tabletas Android.
Función: Pieza de código previamente definida a la que es posible recurrir cuando sea necesario.
1. Ingresar a la aplicación “Play Store” ubicada en las aplicaciones con el siguiente ícono:
Huella digital: Información de alguien que se queda en el internet. Internet: Grupo de computadoras y dispositivos conectados en todo el mundo. Usar (llamar) una función: Pieza de código o instrucción que indica que debe de ejecutarse una función. Loop (bucle/iteración): La acción de hacer y repetir un código infinitamente, cierto número de veces o de acuerdo con algo que se evalúe previamente.
2. Dentro de la aplicación buscar la aplicación “ScratchJr”
Nombre de usuario: Nombre que se inventa para ingresar a un programa que sirve como identificador. Paquete: Pequeños conjuntos de información que se realizan a partir de conjuntos más grandes información. Parámetro: Pieza de información extra que se transfiere a la función para personalizar una necesidad específica. Patrón: Característica igual entre ciertas cosas que se repite constantemente. Pensamiento computacional: Estrategias y procesos mentales que permiten entender cómo es que piensan y funcionan las computadoras. Persistencia: Insistir una y otra vez en realizar alguna cosa o en su ejecución. Procedimiento: Es un conjunto de acciones o instrucciones que deben realizarse de la misma forma.
3. Seleccionar la aplicación que tiene el icono con fondo azul y un gato naranja como el siguiente
Programa: Algoritmo que ha sido codificado para que pueda funcionar en una computadora. Secuencia de comandos: Son series de acciones que se realizan una a continuación de la otra en un momento determinado. Servidores: Computadoras que existen únicamente para proveer cosas a otros dispositivos. URL: Dirección sencilla de aprender para acceder a una página de internet. Variable: Definición de un pedazo de información susceptible de cambiar. Wi-Fi: Método inalámbrico para enviar información mediante ondas de radio.
4. Dar clic en instalar 5. Esperar a que se instale 6. Una vez instalado, ingresar a la aplicación y seleccionar el idioma español 7. Utiliza la siguiente guía para familiarizarte con la interfaz: https://www.scratchjr.org/pdfs/scratchjr-interface-guide_es.pdf
100
pensamiento computacional
Guía práctica de introducción a Scratch
101
El editor sin conexión Scratch también puede funcionar como una aplicación de escritorio en Mac, Windows y en algunas versiones de Linux. El único requisito es tener instalado el sistema Adobe AIR. Los instaladores para todas las versiones de Scratch y Adobe AIR se obtienen en la siguiente dirección: https://scratch.mit.edu/scratch2download/ El editor sin conexión luce idéntico al de la versión web:
Scratch es un entorno de aprendizaje del lenguaje de programación que permite a los principiantes investigar, conocer y jugar con la programación utilizando una interfaz gráfica muy sencilla.
El editor en línea Scratch está disponible como una aplicación web. Ésta es la forma más sencilla de empezar a trabajar con él. Sólo hace falta tener un navegador con el complemento de flash instalado y acceder a la siguiente dirección: https://scratch.mit.edu/projects/editor/?tip_bar=getStarted. Una vez cargado el editor, la apariencia de la página debería ser similar a la de la siguiente imagen:
El escenario El área blanca ubicada a la izquierda de la ventana de Scratch es el escenario. En esta área es donde se observan la mayoría de las salidas de nuestros scripts o programas. En el escenario se muestran ciertas imágenes llamadas sprites, por defecto tenemos cargado un sprite de la mascota de Scratch. Los scripts que se realizan en Scratch interactúan directamente con los sprites. El escenario:
102
pensamiento computacional
El editor de scripts o programas A la derecha del escenario tenemos el editor de scripts. En él se encuentran los bloques que serán los comandos o instrucciones que integrarán nuestros scripts o programas. También tenemos la zona en la que se colocarán los bloques para programar los scripts.
103
Ahora arrastraremos el primer bloque que aparece en la lista hacia la zona de colocación, es decir, el bloque que tiene escrito . Si esto se realiza con éxito, entonces tendremos el bloque en su lugar, como se muestra en la siguiente imagen:
A continuación resaltamos el editor de scripts o programas con el área de bloques y la zona de colocación:
Los bloques
Si ahora hacemos doble clic en el bloque, veremos como la mascota se moverá hacia la derecha. Podemos cambiar la distancia en que se moverá la mascota alterando el valor numérico de éste; también podemos lograr que la mascota se mueva hacia el otro lado colocando el signo de menos antes del valor numérico.
Los bloques son la estructura fundamental que permite realizar scripts en Scratch. Éstos permiten controlar el flujo del programa, ejecutar las instrucciones, entre otras funciones.
Ahora veremos cómo cambiar la orientación hacia la que mira la mascota. Para lograr esto, arrastremos el siguiente bloque de la lista, es decir, el que dice “turn 15 degrees”. Después haremos doble clic en este bloque.
Para utilizar un bloque solo hace falta arrastrarlo desde su área hasta la zona de colocación de bloques. Una vez que el bloque se encuentra en esta zona, podemos hacer doble clic en él para ejecutarlo.
Tal y como puede observarse en la imagen, el gato ha girado.
Como un ejemplo básico, aprenderemos a usar el bloque “move” para indicar que la mascota de Scratch se mueva. Con el editor abierto comprobamos que el sprite de la mascota se encuentre seleccionado. Podemos asegurarnos de esto si en la esquina superior derecha de la zona de colocación de bloques vemos el sprite de la mascota con los datos de su posición en X y en Y, tal y como se muestra en la siguiente imagen:
Nuevamente podemos cambiar la magnitud del efecto del bloque si alteramos su valor numérico; también es posible cambiar el signo a negativo para realizar el cambio en la dirección opuesta.
104
pensamiento computacional
105
Recetas para resolver problemas
Combinando bloques Como quizás habrás notado, los bloques tienen pequeñas muescas en la parte superior e inferior como si fueran piezas de rompecabezas. Esto es así porque en efecto funcionan de esa manera. Si sueltas un bloque debajo de otro, éstos se unirán. Veamos lo que sucede si unimos los dos bloques que hemos visto. Suelta el bloque de “turn 15 degrees” debajo del bloque de “move 10 steps”.
Ahora arrastraremos aquel que dice “forever” a la zona de colocación. Una vez que tengas el bloque “forever” en posición, arrastraremos la unión de los dos bloques anteriores dentro del bloque “forever”, de la manera que se muestra a continuación:
Los bloques deberán verse unidos de la siguiente manera:
Al hacer el doble clic verás cómo la mascota se mueve a la par que gira. Si realizas esta acción en repetidas ocasiones parecerá que la mascota está caminando en círculos. ¡Facilitemos esto! En el área de bloques haz clic en “control”. Al hacer esto, la lista de bloques disponibles cambiará, como se muestra en las siguientes imágenes:
Paso 1: Entender el problema • • • • •
¿Qué tenemos que hacer para resolver el problema? ¿Puedes explicar el problema con tus palabras? ¿Qué necesitas para que tu programa de inicio? ¿Cuál es el objetivo? ¿Has resuelto algún problema similar a éste?
Paso 2: Crear un plan para resolver el problema
El bloque “forever” ocasiona que los bloques que contiene sean ejecutados para siempre (al menos hasta que detengamos el programa). Ahora haz doble clic en el bloque: ¡el gato caminara en círculos indefinidamente! Para detener la ejecución del bloque “forever” haz clic en el icono rojo que se encuentra en el área superior derecha del escenario:
• • • • •
Escribe un algoritmo Analízalo y verifícalo conforme avances Plantea o dibuja lo que quieres hacer Trabaja por pasos y con orden Compara tu solución con algo similar que hayas hecho antes
Paso 3: Ejecuta y mejora el plan • • • • •
¿Resolviste tu problema? Si no lo has logrado, encuentra el error paso por paso Vuelve a intentarlo después de cada cambio No te desesperes, toma un pequeño respiro o deja descansar el problema un momento. Pregunta, posiblemente tus amigos te pueden ayudar a encontrar el error
Paso 4: Revista tu trabajo • • • • • • • •
Forma de trabajo para encontrar errores ¿Tu plan soluciona el problema? ¿Tu solución cumple todos los objetivos? ¿Hay alguna otra forma más sencilla de resolver el problema? Busca el error paso a paso Describe lo que se supone que debe pasar ¿Cuál es la diferencia entre lo que debe y ésta pasando? Escribe comentarios para indicar lo que falta o lo que está bien para identificar un error
Paso 5: Complementa la solución Ejercicio Ahora modifica los bloques para que el script le indique a la mascota que camine hacia atrás. Sugerencia: recuerda la forma en que los signos + y afectan el comportamiento de los bloques.
• • • • •
Analiza, ve lento y pruébalo ¿Entiendes el código que estás haciendo? ¿Crees que puedas simplificarlo? ¿Logra cumplir el objetivo indicado? Trata de idear más soluciones si es necesario
106
pensamiento computacional
Conclusión general Alumnos y maestros tuvieron un acercamiento a lo que es el pensamiento computacional el cual les brinda las herramientas esenciales para poder identificar problemas y darles soluciones por medio de la tecnología. Sin duda, las niñas y los niños aprendieron a programar y han adquirido un pensamiento informático desde su corta edad. Entre otros, los conocimientos adquiridos fueron: • • • • • •
Algoritmos, iteraciones, funciones, variables, condicionales Información en las tecnologías (datos) Abstracción, descomposición y reconocimiento de patrones Dispositivos de información y comunicación Elementos de computación y redes Impactos éticos, globales y locales
Además de la parte técnica, adquirieron conocimientos para desarrollar las siguientes habilidades y competencias: • • • • • • •
Creatividad Colaboración y aprendizaje para el trabajo en equipo Comunicación Perseverancia Solución de problemas Pensamiento crítico Emprendimiento
Es indispensable que los niños tengan este acercamiento al pensamiento computacional ya que las habilidades desarrolladas y los conocimientos adquiridos son herramientas para que sean líderes en temas de ciencia y tecnología y enfrenten los retos que vendrán en el siglo XXI con la revolución digital. Hay que promover estas habilidades en más comunidades, para que más padres de familia y maestros se den cuenta del potencial que este tipo de educación tiene en las niñas y niños de México. Sugerimos a todos que continúen participando en este tipo de proyectos mediante clubs de programación y robótica, y que sigan aprendiendo en línea distintos lenguajes de programación. Lo más importante es el apoyo que tú, como maestro y padre de familia, le brindas a las niñas y a los niños.
107
108
pensamiento computacional
ES UN PROGRAMA DE