Cuaderno teórico de docentes

de primaria 2014
Versión 1.5

Este cuadernillo es una versión preliminar del material definitivo. Por consultas, escribir a
pfactorovich@fundacionsadosky.org.ar

Introducción

Este cuaderno complementa las actividades diseñadas en Scratch con información teórica. Si
bien las actividades en sí mismas son importantes, también lo son las conclusiones a las que
arribamos sobre los conceptos que se van presentando en un curso.

El objetivo de este documento es sólo el de aportar cierto sustento teórico a las actividades. Si
se desean estudiar estos temas en mayor profundidad, deben tomarse cursos acordes o
consultar bibliografía adecuada para tal fin.

Temario

Los contenidos son explicados en el orden en que deseamos sean presentados. No todos los
contenidos teóricos se ven explicitados de la misma forma en las actividades que son
brindadas a los alumnos, pero consideramos que un docente debería tener una noción básica
de los mismos.

Programas y programación
Comandos
Secuencias de comandos
Programas completos
Precondiciones
Procedimientos (asignación de nombres a secuencias de comandos)
Estrategia de resolución de problemas (división en subproblemas)
Repetición
Alternativa condicional
Repetición condicional
Expresiones
Parametrización y parámetros

Este cuadernillo es una versión preliminar del material definitivo. Por consultas, escribir a
pfactorovich@fundacionsadosky.org.ar

Programas y programación

Definiremos en primera instancia qué es la programación y qué son los programas. Con esto se
debería vislumbrar un acercamiento a qué tipo de tarea realizan los programadores.

Los programas son descripciones de soluciones a problemas que pueden ser ejecutadas.
Por lo tanto, siempre tendremos un problema que queremos resolver y para hacerlo
brindaremos una solución que pueda ser interpretada y ejecutada por un autómata: la
computadora. Dicha solución debe ser expresada de forma que puede ser interpretada tanto
por otras personas como por la computadora y por eso precisamos dar una descripción de la
misma.

Estas descripciones habitualmente son textos (aunque no siempre) en un lenguaje de
programación, distinto a otros como el español porque su sintaxis tiene reglas mucho más
estrictas.

Programar consiste básicamente en desarrollar programas a través del uso de uno de estos
lenguajes de programación (Scratch, Gobstones, Alice, Java, etc.). El medio de expresión de
estos programas, llamado editor, puede ser textual (1), como realizan más habitualmente los
programadores profesionales o, como en el caso de Scratch, basado en trasladar y enganchar
bloques entre sí (2).

(1) Texto en Gobstones (un lenguaje educativo, al igual que Scratch)

(2) Bloques arrastrables y encajables en Scratch

La ventaja de la expresión por bloques es que no podemos cometer errores de sintaxis al
desarrollar un programa en este contexto (no podemos formar código incorrecto dado que los
bloques están en un menú de opciones y son arrastrados al editor, y además la forma en que
son enganchados impide que resulten en algo que no sea una secuencia bien formada). En
cambio, en los editores destinados a producción industrial podemos escribir palabras que no
signifiquen nada o ubicarlas en lugares donde no tiene sentido que aparezcan (somos libres de
Este cuadernillo es una versión preliminar del material definitivo. Por consultas, escribir a
pfactorovich@fundacionsadosky.org.ar

escribir lo que queramos, como queramos, donde queramos, y no todo lo que escribamos será
un programa que pueda ejecutarse).

Para ilustrar la diferencia usaremos Gobstones, cuyo un editor al momento de escribirse este
cuaderno es textual. El inicio y fin de ciertas porciones de un programa en Gobstones se
indican con una llave ‘{‘ al comienzo y otra ‘}’ al final de los mismos. Por otra parte,
determinadas palabras deben ser necesariamente escritas en mayúscula y otras en minúscula.
En el siguiente ejemplo hay 3 errores que no respetan la sintaxis de un programa Gobstones:

El primero es que hay 3 llaves de cierre en la segunda línea cuando debería haber solo una y
de apertura. El segundo error es que la palabra “poner” de la tercer línea debería empezar en
mayúsculas. Y el tercer error es que la palabra “rojo” también debería empezar con
mayúsculas. Es difícil que un alumno pueda seguir todas las reglas de los lenguajes de
programación, y es muy fácil que se equivoque sin saberlo. Si bien es posible identificar los
errores con ayuda del mismo editor, en ocasiones en una tareas ardua y que lleva a perder el
foco de atención en la idea de solución que programa pretende expresar. Por esta razón,
elegimos lenguajes como Scratch para enseñar programación a niños de primaria, ya que
impiden que los alumnos se equivoquen en estas cuestiones, a veces muy sutiles.

Este cuadernillo es una versión preliminar del material definitivo. Por consultas, escribir a
pfactorovich@fundacionsadosky.org.ar

Comandos

Los programas en Scratch constan de ciertos elementos, todos representados como bloques.

En este ejemplo podemos ver 3 comandos. Cada uno está asociado a una acción. Diremos
entonces que un comando es un elemento de los lenguajes de programación que describe una
acción determinada. Cuando un comando es ejecutado produce la acción relacionada a este.

En las primeras actividades que hagamos con los alumnos, utilizaremos los bloques de la
categoría “Más bloques” y más adelante presentaremos solo unos pocos de los bloques
incluidos en las restantes categorías:

Esto significa que en realidad no utilizamos todo lo que hay en Scratch, sino que trabajamos
con actividades propias, diseñadas para aprender específicamente ciertos conceptos básicos
de programación.

Este cuadernillo es una versión preliminar del material definitivo. Por consultas, escribir a
pfactorovich@fundacionsadosky.org.ar

org. Para ilustrar este concepto. Esta secuencia forma a su vez un nuevo comando. imaginemos a un gato en la calle. A este felino le pediremos que ejecute la secuencia anteriormente mencionada Este cuadernillo es una versión preliminar del material definitivo. produce acciones en serie. y cuando es ejecutado. ordenadas según cómo lo plantee el lenguaje de programación. Por consultas.ar . escribir a pfactorovich@fundacionsadosky. que podemos considerar como un comando compuesto.Secuencias de comandos En los lenguajes de programación a los comandos los podemos encadenar para que formen una secuencia de comandos. este orden es dado de arriba hacia abajo. En el caso de Scratch y la amplia mayoría de los lenguajes. El resultado de este comando es igual al de los comandos que lo componen.

Por consultas. primero avanzará unos pasos luego saludará y finalmente volverá a su posición original Este cuadernillo es una versión preliminar del material definitivo.ar .org. escribir a pfactorovich@fundacionsadosky.Dada esta secuencia.

así como las secuencias de comandos. Vimos que los comandos simples forman parte de Scratch. el resultado será distinto: Todas estas secuencias producen resultados distintos. y si bien ejecutan las mismas acciones. Las reglas para formar programas completos dependen de cada lenguaje de programación. que es una banderita verde: Este cuadernillo es una versión preliminar del material definitivo. Este bloque está asociado a un botón que forma parte del editor de Scratch. Por consultas.org. lo harán en distinto orden. también quiere decir que si componemos los mismos comandos en otro orden. Programas completos Un programa completo es aquél que posee todo lo necesario para ser ejecutado por una computadora.ar . pero para formar un programa completo necesitamos un bloque más. escribir a pfactorovich@fundacionsadosky. A este bloque lo llamaremos el bloque “empezar”.Que la secuencia de comandos posea un orden específico de ejecución.

Observar cómo al presionar la banderita verde el programa que está siendo ejecutado se ilumina. se ejecutará la secuencia asociada al bloque empezar.org. como vimos anteriormente. Este cuadernillo es una versión preliminar del material definitivo. Por consultas. escribir a pfactorovich@fundacionsadosky. paso a paso. Consecuentemente también se ejecutará la secuencia asociada.Si presionamos ese botón.ar .

En este caso lo que genera son efectos.org. puntualmente que un gatito avance.En conclusión. salude y vuelva a su posición original. todo programa genera resultados de alguna manera. Este cuadernillo es una versión preliminar del material definitivo.ar . Por consultas. en Scratch un programa completo consta de ● El bloque “empezar” ● Una secuencia de comandos asociada a este bloque Además. escribir a pfactorovich@fundacionsadosky.

Por consultas. entonces no podrá ejecutar satisfactoriamente dicha acción: Diremos entonces que la ejecución del programa falló. si al gatito que vimos de ejemplo le indicamos avanzar y esto ya no es posible por estar al borde de la pantalla.org.ar . Por ejemplo. Tenemos un marciano dentro de un tablero. porque el gato no puede seguir avanzando (no puede ejecutar 4 veces avanzar. Pensemos en otro escenario. escribir a pfactorovich@fundacionsadosky. ¿Qué significa fallar? Que no producen los efectos deseados (puede ser que produzca un resultado que no era el esperado o que ni siquiera produzca uno). porque a la tercera vez ya estará en el borde de la pantalla). Este cuadernillo es una versión preliminar del material definitivo.Precondiciones Hay un gran problema detrás de algunos comandos: pueden fallar. ¿Cómo es esto posible? Las acciones a veces requieren que algo se cumpla para que puedan producir los efectos deseados.

Y por otro lado tenemos las siguientes instrucciones: Sólo viendo las instrucciones. nos caeremos del tablero: Este cuadernillo es una versión preliminar del material definitivo. Por consultas.ar . si nos movemos hacia abajo. Veamos ambos casos. ● Podemos ejecutar la acción de comer una manzana pero que no haya nada en la celda en donde estemos posicionados.org. podemos pensar que los programas que formemos podrán fallar de dos maneras posibles: ● Nos podemos caer del tablero queriendo avanzar fuera del borde. escribir a pfactorovich@fundacionsadosky. Como estamos parados en el borde inferior derecho.

Este cuadernillo es una versión preliminar del material definitivo. Es importante pensar las precondiciones de los comandos a medida que los usamos en secuencias. escribir a pfactorovich@fundacionsadosky. Por consultas.ar . Lo mismo ocurre si queremos comer una manzana donde no la hay: A la condición requerida por un comando para ser ejecutado correctamente la llamaremos precondición de este comando.org.En este caso la computadora nos avisa de este error. y la ejecución del programa se detiene en ese punto (no se ejecutarán más comandos luego de un error). dado que nos permite ir razonando los problemas que pueden llegar a existir si ciertas condiciones no son dadas.

escribir a pfactorovich@fundacionsadosky.ar . si deseamos que nuestros programas no fallen tenemos que tener en cuenta las siguientes precondiciones: ● Que si nos movemos hacia cierta dirección haya una celda en esa dirección ● Que siempre que ejecutemos el comando “comer manzana” estemos posicionados en una celda que posea una manzana.En este ejemplo. Por consultas.org. sobre todo cuando los alumnos tienen errores en su código y sus programas no hacen lo que esperan. aunque es interesante recordarlo de forma constante. No trataremos demasiado este tema al utilizar las actividades propuestas. Este cuadernillo es una versión preliminar del material definitivo.

Por consultas.ar . escribir a pfactorovich@fundacionsadosky. A las secuencias nombradas por nosotros las llamaremos procedimientos1. Podemos organizar a las manzanas de la siguiente manera: ● Las del borde inferior ● Las del borde derecho ● Las del borde superior 1 Para simplificar este tema. Este cuadernillo es una versión preliminar del material definitivo.Procedimientos (asignación de nombres a secuencias de comandos) Una de las tantas virtudes de Scratch y muchos otros lenguajes de programación es la de asignar un nombre elegido por el programador a una secuencia de comandos arbitraria. Volvamos al ejemplo del marciano y el tablero con manzanas. Esto nos permite simplificar las tareas grandes. dividiéndolas en tareas más pequeñas y simples de resolver. y así organizar mejor nuestro pensamiento y simplificar nuestros programas. podemos explicarle a los alumnos que los procedimientos son la forma de contarle a la computadora cómo realizar una acción nueva.org. que no forma parte de sus primitivas.

Entonces. podemos primero crear 3 nuevos procedimientos. Para hacer esto tenemos que presionar el botón “Crear un bloque”2: 2 Sólo se encuentra en la categoría “Más bloques” Este cuadernillo es una versión preliminar del material definitivo. procederemos primero a crear un procedimiento que coma las manzanas del borde inferior del tablero. Por consultas.En lugar de definir todo el programa como una secuencia larga de pasos. Las acciones que comprende nuestro autómata en esta actividad son las siguientes: Cuando definamos procedimientos nuevos veremos acciones nuevas en la solapa de Más Bloques. que serán las que definiremos a continuación. y que cada uno se encargue de comer manzanas de una parte distinta del tablero (según la organización anteriormente descrita). escribir a pfactorovich@fundacionsadosky.ar .org.

Nos aparecerá una ventana como la siguiente: Lo primero que haremos será introducir el nombre del nuevo procedimiento.ar . Lo llamaremos “comer manzanas de abajo”3 3 Siempre que elijamos nombres de procedimientos tenemos que pensar en la edad de los alumnos. No hace falta utilizar un lenguaje demasiado complejo. Por consultas. Este cuadernillo es una versión preliminar del material definitivo. escribir a pfactorovich@fundacionsadosky. Tienen que ser nombres descriptivos y simples.org.

nos aparecerán dos cosas: ● Un nuevo comando que podremos ejecutar para que realice la acción de “comer manzanas de abajo” (marcado en rojo) ● Un bloque que nos permite explicarle a la computadora qué significa para nosotros “comer manzanas de abajo” (marcado en azul) Si en este momento enganchamos el comando “Comer manzanas de abajo” debajo del bloque “comenzar”.org. escribir a pfactorovich@fundacionsadosky. y presionamos la banderita verde no va a pasar nada: Este cuadernillo es una versión preliminar del material definitivo. Al realizar esto. Por consultas.Una vez que ingresamos el nombre del nuevo procedimiento presionamos “OK”.ar .

ar . Por consultas. nos enfocaremos en realizar esto. si ejecutamos el programa. ubicando debajo del bloque que define este comando: La secuencia para comer las manzanas del borde inferior es la siguiente: Enganchamos esta secuencia como definición del nuevo procedimiento: A partir de ahora.No sucede nada porque no definimos todavía que significa “Comer manzanas de abajo”.org. Este cuadernillo es una versión preliminar del material definitivo. estaremos ejecutando la secuencia de comandos que enganchamos a la definición de este bloque. Entonces. escribir a pfactorovich@fundacionsadosky.

Lo que podemos hacer ahora es definir el resto de los procedimientos: ● Comer manzanas de la derecha ● Comer manzanas de arriba Y nuestro programa será tan simple como Este cuadernillo es una versión preliminar del material definitivo.ar . Por consultas. escribir a pfactorovich@fundacionsadosky.org.

por ejemplo. A la estrategia de dividir una tarea grande en tareas más pequeñas se lo conoce como división en subtareas.org. Es deseable que nuestros programas describan de la mejor forma posible cada parte que modelan. realizar modificaciones o correcciones sobre los mismos. Es recomendable al momento de resolver cada problema que pueda Este cuadernillo es una versión preliminar del material definitivo. para que el lector pueda inferir de alguna manera las intenciones del programador que lo diseñó. Por consultas.Si lo ejecutamos veremos que el marciano se come todas las manzanas Como podemos observar. pero que desean. Leer programas de otras personas es una actividad que se realiza más de lo que uno podría llegar a creer. estamos haciendo que nuestra secuencia describa el problema con palabras más simples y en menos pasos. Los detalles internos de cada procedimiento están ocultos dentro de sus definiciones. escribir a pfactorovich@fundacionsadosky. al crear nuevos nombres para esta tarea (en este caso de comer todas las manzanas del tablero).ar . Pero no hace falta leer por completo todas las definiciones para saber de forma aproximada lo que realiza el programa. por lo que es muy importante que los programas sean legibles para las personas que no los programaron.

2. 4. Repetir esta estrategia para cada subtarea. explicaremos la estrategia con la que deseamos que se resuelvan las actividades del curso. escribir a pfactorovich@fundacionsadosky. Este cuadernillo es una versión preliminar del material definitivo. es decir. Ilustramos esto con una de las actividades del curso. Resolver el problema principal en base a estos procedimientos (sin haberlos completado). Estrategia de resolución de problemas (división en subproblemas) Habiendo presentado una forma de poder definir subtareas que componen un programa completo. Identificar las distintas partes del problema. Crear procedimientos (vacíos) asociados a estas tareas. Esta estrategia consta de los siguientes pasos: 1. porque cerca del aterrizaje se encontró con dos materiales (carbón y hierro) que le van a servir para repararse nave y continuar su aventura.org. 3. Pensar la estrategia con la que se va a resolver el problema. Tuvo suerte.presentarse con qué estrategia lo vamos a abordar.ar . Por consultas. En la actividad “Reparando la nave” tenemos que ayudar a un marciano llamado Tino. que tiene una misión en el espacio. 5. qué subtareas podemos reconocer y que vamos a definir para simplificarlo. pero tuvo que realizar un aterrizaje de emergencia en un planeta desconocido.

En este caso. Siguiendo al pie de la letra la estrategia de división en subtareas que planteamos al comienzo de esta sección. lo que podemos hacer es ir a buscar todo el carbón que haga falta. pero dividirla nos ayudará a simplificarla. Esto entonces evidencia que el problema puede dividirse en dos grandes partes. lo que tenemos que hacer es pensar cómo vamos a resolver el problema. pero en términos generales. y luego ir a buscar todo el hierro.org. Por consultas. Cuando tengamos todos los materiales podremos escapar. El marciano sólo puede tomar un pedazo de carbón o hierro por vez. así que tendrá que realizar 3 viajes por cada material que necesita.Debemos buscar 3 porciones de carbón y 3 porciones de hierro. Cuando termine de recolectar los recursos suficientes podrá escapar del planeta. Las primitivas que podemos utilizar son las siguientes: Obviamente podemos resolver esta actividad sin subtareas. con sus correspondientes subtareas: Este cuadernillo es una versión preliminar del material definitivo. escribir a pfactorovich@fundacionsadosky. paso a paso.ar . poniendo una instrucción tras otra.

Con esta división en subtareas. escribir a pfactorovich@fundacionsadosky.Observar que todavía no definimos en qué van a consistir esas subtareas. podemos utilizarlas como parte del programa principal: En este punto queda en evidencia que dependiendo de qué estrategia utilicemos el problema se volverá más fácil o difícil. Esta será la tarea de más “bajo nivel” que implementaremos. el programa principal sólo constará de 3 acciones. en el sentido de que utilizará directamente las primitivas del autómata. Ahora podemos pensar que “Traer una pieza de carbón” simplemente consiste en paso a paso ir a buscarla. La subtarea de “Ir a buscar carbon” puede consistir en ir y traer 3 veces una pieza de carbón: Con esto estamos repitiendo el proceso de división en subtareas también para cada subtarea. sólo estamos planteando la estrategia general con la que vamos a resolver todo el problema. Este cuadernillo es una versión preliminar del material definitivo.org. Ahora debemos pensar cómo resolver cada una de las subtareas por separado.ar . Por consultas. Pero suponiendo que a esas subtareas las hemos definido correctamente. como lo muestra la figura anterior.

pero lo que sí es cierto es que no definir subtareas en general conlleva a programas más complejos y difíciles de entender. Ninguna de las dos personas está errada. Por consultas. depositar en la nave”. ir 3 veces hacia abajo. tomar carbon.Pero lo curioso es que también nos ha quedado simple de definir. aunque decidimos no hacerlo. pero puede venir otra persona que la considera todavía compleja. ya que esta tarea consiste sólo de “ir 3 veces hacia arriba. escribir a pfactorovich@fundacionsadosky.ar .org. cada una posee su propio criterio. Es por esto que la división en subtareas también depende de cada persona y sus ideas al intentar simplificar problemas. Para nosotros esta solución ya es lo suficientemente simple. y muchas veces a la posibilidad o imposibilidad de directamente solucionar el problema (existen problemas difíciles que sin subtareas serían más difíciles todavía). podríamos haber definido subtareas para “subir 3 veces” y “bajar 3 veces”. Siguiendo con el resto del programa. aplicaremos la misma estrategia para definir la subtarea que falta: Este cuadernillo es una versión preliminar del material definitivo. No obstante.

org. a su vez. es una herramienta muy valiosa que promueve habilidades de pensamiento abstracto. definir subtareas es algo que debemos inculcar a los alumnos. Por consultas. Este cuadernillo es una versión preliminar del material definitivo. dado que es una técnica que requiere mucha práctica para ser dominada. Pero más allá de esto. En resumen. muchas de las actividades de este curso requieren definir subtareas para ser resueltas de forma simple.ar . escribir a pfactorovich@fundacionsadosky. pero.Habiendo definido todas estas subtareas ya estamos en condiciones de ejecutar nuestro programa principal.

org. escribir a pfactorovich@fundacionsadosky.Repetición Un concepto que se presenta cotidianamente en programación es la idea de repetición. Por consultas.ar . Veamos un ejemplo. Una repetición es la ejecución de una secuencia de comandos cierta cantidad de veces. En esta actividad este extraterrestre tiene que tomar todas las estrellas que hay en el tablero. hagamos un procedimiento que sea “Tome fila de estrellas” Este cuadernillo es una versión preliminar del material definitivo. y para eso nos dan las siguientes instrucciones primitivas: Como estrategia.

Este cuadernillo es una versión preliminar del material definitivo.Tomar una fila de estrellas consiste en “mover derecha” y “tomar estrella”. Por consultas.org.ar . escribir a pfactorovich@fundacionsadosky. 4 veces. Si ejecutamos este procedimiento. el personaje come la primera fila de 4 estrellas que tiene delante En este punto nos podemos dar cuenta que la tarea de tomar esta fila de estrellas repite siempre una parte.

escribir a pfactorovich@fundacionsadosky.org. Para hacer esto vamos a la categoría “Control”.Lo que podemos hacer es indicarle a la computadora que tiene que repetir la secuencia de “mover derecha” y “tomar estrella” 4 veces.ar . Por consultas. y un comando llamado “repetir”: El bloque repetir consiste de dos partes: ● Un número que indica la cantidad de veces que se va a repetir la secuencia asociada al bloque ● Un hueco en el que podemos enganchar la secuencia que se va a repetir En el ejemplo anterior la secuencia que se repetía 4 veces es Este cuadernillo es una versión preliminar del material definitivo. sin necesidad de escribir toda esta secuencia entera.

Este cuadernillo es una versión preliminar del material definitivo.ar .Esta secuencia la podemos asociar a la repetición de esta manera Y esto será exactamente la nueva definición del procedimiento De esta forma el programa queda mucho más compacto. y explica mejor qué secuencia ejecutará. Las repeticiones son utilizadas constantemente en los programas y permiten reducir el código que tenemos que escribir.org. escribir a pfactorovich@fundacionsadosky. Por consultas.

escribir a pfactorovich@fundacionsadosky. hay manzana o hay banana. Veamos un ejemplo.ar . En la actividad llamada “La elección del mono” podemos toparnos con dos escenarios posibles: Escenario en donde hay banana Escenario en donde hay manzana El objetivo es simple: comer manzana cuando hay manzana y comer banana cuando hay banana. pero no ambas a la vez. Las primitivas son las siguientes: El problema es que si comemos equivocadamente perdemos el juego y el programa se detiene: Este cuadernillo es una versión preliminar del material definitivo.org. Por consultas. En la casilla a la derecha del mono. o que se ejecute un comando si sucede algo u otro si sucede lo contrario.Alternativa condicional En ciertas ocasiones deseamos que un comando sólo se ejecute si se cumple cierta condición. A este concepto lo llamamos alternativa condicional.

En la categoría “Control” contamos con un bloque llamado “si... En este sentido es que tenemos que decidir si vamos por una alternativa o la otra. entonces”: Este bloque nos servirá para poder preguntar primero si se cumple cierta condición y sólo en ese caso ejecutar un comando. escribir a pfactorovich@fundacionsadosky. Definiremos el procedimiento “comer fruta” que resolverá decidir qué fruta tiene que comer: Nuestro programa completo será tan simple como: Para preguntar si estamos tocando una manzana o una naranja vamos a la categoría Sensores y seleccionamos la pregunta “¿tocando .ar .?”: Este cuadernillo es una versión preliminar del material definitivo. Pero primero vamos a dividir el problema. Por consultas. y en cada caso comer la fruta que haya..Para poder resolver esta cuestión tenemos que poder preguntar si hay banana o manzana.org.

ar . Por consultas. escribir a pfactorovich@fundacionsadosky.Observar que hay una flecha pequeña. ya que el bloque “si.. Para ello deberemos hacer clic exactamente sobre la flecha..org. entonces” toma dos cosas: Este cuadernillo es una versión preliminar del material definitivo. Seleccionamos manzana: La forma que posee este bloque es idéntica al hueco que posee el bloque “si… entonces”: Esto no es casual. que nos permitirá seleccionar de una lista qué objeto deseamos preguntar si estamos tocando.

si hay una banana.org. ● Una secuencia de comandos que ejecutará si la condición resulta verdadera.ar . escribir a pfactorovich@fundacionsadosky. Y el comando a ejecutar si la condición es verdadera será “Comer manzana”. Por consultas. no hará nada ¿Por qué? Porque si hay una banana. tendremos que agregar otro bloque “si… entonces”: Este cuadernillo es una versión preliminar del material definitivo. En este caso la condición es la pregunta “¿Tocando manzana?”. la condición “¿Tocando manzana?” es falsa y no ejecuta entonces el comando “Comer manzana”. ● Una condición. Si deseamos que también pregunte si hay banana y en ese caso coma una. comerá la manzana Y así como está. Entonces si nos encontramos con el caso en el que hay manzana. que probará si es verdadera.

Si la condición es verdadera. preguntará por lo que haya y comerá la fruta adecuada. sin importar cuál sea el caso. y si la condición es falsa. y viceversa.ar .Y ahora. Cabe destacar que existe otra variante para resolver este problema.org. Como siempre hay una u otra fruta. Dentro de la categoría “Control” hay otro bloque llamado “si … entonces … sino” Este bloque representa exactamente ese caso. Por consultas. ejecuta la primera secuencia de comandos. sabemos que si no hay manzana entonces tiene que haber una banana. escribir a pfactorovich@fundacionsadosky. ejecuta la segunda. Entonces podemos definir esta otra solución al problema: Este cuadernillo es una versión preliminar del material definitivo.

y a veces pasa otra.org. escribir a pfactorovich@fundacionsadosky. es preferible utilizar sólo la primera variante y e ignorarla segunda. De esta forma. Todo lo que se puede resolver con la segunda variante también se puede resolver fácilmente con la primera. resolvimos un problema que posee un escenario cambiante. pero lo contrario no siempre es cierto (se puede. Dentro de los problemas presentados en el cuaderno de actividades tendremos muchos en donde debemos usar una alternativa condicional para definir programas que tengan en cuenta este tipo de escenarios. Si a los alumnos se les complica entender esta otra solución. A veces pasa una cosa.ar . pero a veces se torna más complicado).Esta solución es equivalente a la anterior. o discernir cuándo usar un “si … entonces” o un “si … entonces … sino”. Este cuadernillo es una versión preliminar del material definitivo. Por consultas.

Estas condiciones son preguntas que el personaje puede realizar sobre el entorno en donde se encuentra. y mientras esa condición se siga cumpliendo. escribir a pfactorovich@fundacionsadosky. Por consultas. es utilizar una repetición que está basada en una condición. o simplemente queremos que se repita sin importarnos este dato. Este bloque tiene dos partes: ● En el hueco hexagonal a continuación de su nombre debemos poner una condición. en la categoría “Control” existe un bloque llamado “repetir hasta que …”. Las condiciones que podemos utilizar se encuentran en la categoría “Sensores”.ar . En estos casos entran en juego otro tipo de repeticiones. En la actividad Super Lightbot 1 tendremos escenario cambiante (las celdas azules son luces a prender): Este cuadernillo es una versión preliminar del material definitivo. Lo que podemos hacer para repetir en ocasiones en donde no conocemos a priori el número de veces que queremos o necesitamos repetir una serie de comandos. la secuencia a repetir se seguirá ejecutando. que no están basadas en un número de veces que hay que repetir una secuencia.org. esta otra estructura nos permite resolver problemas similares. En las actividades sólo vamos a utilizar un sensor de esta categoría. Así como la alternativa condicional permitía resolver problemas en donde una característica del problema variaba de instancia en instancia (en el caso de las bananas y manzanas podía haber una u otra fruta en determinado momento). Eso nos permitirá saber si nuestro personaje está tocando un objeto en particular. Estas otras repeticiones están basadas en una condición. Veamos un ejemplo. que se llama “¿Tocando …?”. pero en muchas ocasiones no sabemos cuánto debemos repetir algo. pero añadiendole la característica de repetición. ● Una secuencia de bloques que se ejecutarán hasta que esta condición sea verdadera. La herramienta de repetición simple es muy útil para repetir algo una cierta cantidad de veces.Repetición condicional Existe otro tipo de repeticiones. En Scratch.

Y se nos permite utilizar las siguientes instrucciones primitivas: En este punto dos características a observar: ● Todas las filas siguen la misma estructura.org. Para eso vamos a la categoría senseores y nos traemos el bloque “¿Tocando …?”. Expresaremos esto mismo pero en Scratch. Por consultas. la solución puede ser expresada como “prender luz y avanzar hasta estar en el cuadrado verde”. ● No sabemos el largo de la fila. una sucesión de cuadrados azules que terminan en un cuadrado verde. escribir a pfactorovich@fundacionsadosky.ar . Primero tenemos que pensar cómo preguntar si estamos en el cuadrado verde. Veremos que hay una opción que dice “Fin”: Este cuadernillo es una versión preliminar del material definitivo. Si lo tuviésemos que resolver en español.

En el caso de Super Lightbot 2.org. escribir a pfactorovich@fundacionsadosky. el “repetir hasta que …” muchas veces forma parte de problemas más grandes. La solución al problema puede plantearse de la siguiente manera Este cuadernillo es una versión preliminar del material definitivo. porque no podemos indicar el número exacto de veces que se debe repetir “prender luz y avanzar”. tendremos un escenario similar.Esta pregunta la combinaremos con el bloque “Repetir hasta que …”: A partir de esto se vuelve evidente que la solución es Es importante destacar que esto no podría haber sido resuelto con una repetición simple. Como todos los bloques anteriores. Por consultas. justamente porque el tamaño del problema es variable. pero en algunas celdas no tendremos luces para prender: Como en el escenario anterior.ar . en los que incluso se combina con otros bloques. también la longitud de la fila es variable.

Esta nueva forma de repetición podrá ser usada de ahora en más para resolver problemas de características anteriormente descritas. escribir a pfactorovich@fundacionsadosky.Es importante observar que estamos utilizando varios conceptos a la vez: ● Definimos una subtarea llamada “prender luz si hay”. tenemos dos tipos de repeticiones: repeticiones simples (con un número que indica la cantidad de veces a repetir un comando) y repeticiones condicionales (que continúan ejecutando mientras se cumpla una condición y se detienen cuando se deja de cumplir). Por consultas.ar . que prende una luz en el caso en que haya una. En resumen. Este cuadernillo es una versión preliminar del material definitivo. ● Utilizamos una alternativa condicional para definir esta subtarea ● Utilizamos una repetición condicional para resolver el problema principal.org.

org. esto dará como resultado el número 11. y en este caso. Las expresiones están formadas por datos y resultan en otro dato cuando son evaluadas. expresiones de tipo numéricas. Así como existen los comandos compuestos (secuencias de comandos). y muchas de las categorías que poseen comandos además tienen bloques de otra índole (que representan datos por ejemplo). Hemos visto que en Scratch podemos utilizar datos para modificar el comportamiento de los comandos. escribir a pfactorovich@fundacionsadosky. se realizan todas las operaciones que componen esa expresión.Expresiones No todas las categorías de bloques de Scratch representan comandos. En este apartado veremos dos clases de bloques que describen valores. De la misma manera podemos pensar en operaciones de otros tipos: En este caso la operación “unir” toma dos palabras y devuelve otra palabra. Por consultas. En este caso si evaluamos de la expresión “10 + 1”. Es evidente que los datos por sí solos no sirven de mucho. Podemos observar entonces que esta operación toma dos números para devolver otro número. es decir.ar . pero lo interesante es su uso al combinarse con comandos: Este cuadernillo es una versión preliminar del material definitivo. que es la unión consecutiva de ambas. también podemos componer datos mediante operadores: Todos estos bloques representan lo que se conoce como expresiones.

estos bloques recolectan cierto dato del entorno o del personaje y lo devuelven. que representa al número 3. para luego saludar diciendo “Hola” al nombre del usuario de Scratch que inició sesión en la página.Observar que utilizamos expresiones en cada lugar en donde se podía esperar un valor simple. El segundo comando esperaba primero una palabra. el tamaño de un objeto o incluso responden si un objeto está tocando a otro en particular (en este caso se responde con un “verdadero” o “falso”). El primer comando se moverá 11 pasos. cuando se combinan con otros elementos resultan de gran utilidad.ar . Por consultas.org. Este tipo de expresiones son muy utilizadas en los lenguajes de programación. dado que son equivalentes a haber puesto los valores resultantes. En Scratch también existen operaciones que no esperan ningún dato. Si bien estas expresiones carecen de sentido. por lo que utilizamos una expresión que devuelve una. Veamos cómo se introduce este concepto en actividades de nuestro cuaderno. Este cuadernillo es una versión preliminar del material definitivo. y además esperaba una cantidad de segundos. por lo que hubiese sido equivalente poner la expresión “10+1” o el número 11 directamente. Como son expresiones como cualquier otra también pueden ser utilizadas en lugares en donde se esperan datos concretos: En este caso el persona va exactamente a la posición en la que se encuentra el puntero del mouse. porque por ejemplo nos permiten conocer la posición de un (en el eje “x” o “y”). escribir a pfactorovich@fundacionsadosky. sino que simplemente devuelve uno. por lo que utilizamos otra cuenta numérica. Este es el caso de expresiones como las siguientes: A diferencia de las operaciones anteriores.

Pero sólo contamos con la primitiva . que funcionan en distintas partes de un problema fijo que se resuelven de forma similar (los procedimientos para resolver estas partes eran idénticos salvo por datos particulares que podemos indicar al utilizarlos). Esta actividad al igual que muchas otras posee un escenario cambiante. nos facilitó la definición de procedimientos genéricos. Este cuadernillo es una versión preliminar del material definitivo. Esto significa que la técnica que estábamos usando hasta el momento con las repeticiones condicionales ya no funciona en este caso. Por el momento vimos 3 herramientas que nos permiten expresar procedimientos que funcionan ante escenarios cambiantes. y no podemos utilizar la pregunta “¿Tocando …?” porque no hay un objeto final que podemos tocar para deternernos.ar . La primera herramienta fue parámetros. Aunque los parámetros no nos permitieron en realidad resolver escenarios en los que el problema cambiaba de ejecución en ejecución.org. Por consultas. escribir a pfactorovich@fundacionsadosky.En la actividad “El superviaje” tenemos que hacer que Superman llegué a destino: El problema es que la distancia a la que estamos de la ciudad de destino es distinta cada vez que empieza nuestro programa.

siempre utilizamos la expresión “¿Tocando…?” para distintos objetos que nos permitían deternos. vamos a ver un bloque que hace exactamente esto Este cuadernillo es una versión preliminar del material definitivo.ar .Las herramientas posteriores fueron alternativas condicionales y repeticiones condicionales. Si vamos a la categoría llamada “Datos”. Por consultas. En este problema lo que precisamos es información de otro tipo. escribir a pfactorovich@fundacionsadosky. para poder utilizar este dato y resolver el problema. Estas herramientas permitían adaptar nuestros programas a problemas cambiantes porque podían realizar preguntas.org. que en este caso representaban condiciones: Como dijimos anteriormente. Estas preguntas eran justamente expresiones. Si el problema es volar cierta cantidad de kilómetros la solución simplemente constaría de una expresión que nos informe esa cantidad.

Como esta expresión simplemente evalúa a un número (nos “devuelve” un número) podemos utilizarla en cualquier lugar en el que se utilizaría un número en particular. escribir a pfactorovich@fundacionsadosky.org. podemos definir la solución al problema como: Otro problema que consiste en usar un dato como este. Así.ar . Por consultas. lo podemos encontrar con la actividad “El mono cuenta de nuevo” Este cuadernillo es una versión preliminar del material definitivo.

pero contamos con un dato llamado Que nos informa la cantidad de casillas que tenemos por delante (sin contar la casilla de color verde).En este caso tampoco sabemos cuándo termina cada fila.ar . un programa en el que nuestro personaje siga todo el tiempo el cursor de nuestro mouse se define como: Este cuadernillo es una versión preliminar del material definitivo. Más allá de los problemas específicos que podemos llegar a resolver. escribir a pfactorovich@fundacionsadosky. y permiten realizar más atractivos. Por ejemplo. el uso de expresiones enriquece enormemente lo que puede hacerse con los comandos.org. Por consultas.

escribir a pfactorovich@fundacionsadosky. Por consultas.org. Este cuadernillo es una versión preliminar del material definitivo.O si queremos hacer que nuestro personaje diga a qué distancia está de otro personaje: Si queremos hacer que el dibujo de nuestro personaje sea más brillante si hacemos más ruido a través de un micrófono conectado a la compu: Y así podemos imaginar un sin fin de usos para distinta información que podemos obtener a través de estas expresiones. A partir de la presentación de este tema tiene más sentido dejar que los chicos exploren todos los bloques que trae Scratch en general e intenten realizar un proyecto propio.ar . ya sea empezado de cero o basado en un proyecto parcialmente completo que les brindemos.

Este cuadernillo es una versión preliminar del material definitivo.ar . En la actividad llamada “El planeta de Nano” tenemos que comer varias filas de bananas.Parametrización y parámetros En ocasiones puede sucedernos que tenemos varias subtareas que son similares. pero que se diferencian en algún valor en particular. la agregamos para que se vuelva similar a los demás procedimientos. pero las filas no son todas iguales: Disponemos de las siguientes instrucciones primitivas: Si queremos dividir el problema en distintos procedimientos. Esto nos permite llegar a una conclusión que nos permitirá introducir este tema nuevo. Por consultas. esto nos obliga a crear 4 procedimientos distintos4: 4 Aunque el caso de comer una sola banana no amerite una repetición. escribir a pfactorovich@fundacionsadosky.org.

Y nuestro programa principal.ar . Sería conveniente que en lugar de crear 4 procedimientos distintos que sólo cambian en un número. escribir a pfactorovich@fundacionsadosky. será así: Es evidente que esos 4 procedimientos son idénticos salvo por un valor: la cantidad de bananas que deben comer en una determinada fila. Por consultas. hagamos lo siguiente: Este cuadernillo es una versión preliminar del material definitivo.org. con la ayuda de una subtarea más.

que simplemente describen datos5. pero sería útil poder definir nuestro propio bloque al que le pudiésemos indicar la cantidad de bananas a comer al momento de utilizarlo. Por consultas. Para ellos crearemos un nuevo bloque e iremos a “opciones”: Luego de escribir “Comer” presionamos el botón que dice “Añadir entrada númerica”: 5 En Scratch existen distintos tipos de valores.ar . escribir a pfactorovich@fundacionsadosky.Es importante explicar en este punto que los comandos pueden estar relacionados con valores. Este cuadernillo es una versión preliminar del material definitivo. A través de estos valores podemos hacer que los comandos se comporten de distinta manera. ¿Cómo hacemos esto? Primero debemos crear un parámetro. Dentro de los bloques pertenecientes a otras categorías tenemos comandos como: Con la categoría “Más bloques” por el momento escondimos este tipo de bloques para reducir la complejidad de utilizar nuestro primeros comandos. pero principalmente utilizaremos sólo números o palabras.org.

que en este caso puede llamarse “cantidad”. para indicar que va a representar la cantidad de bananas a comer: Este cuadernillo es una versión preliminar del material definitivo.Al presionar ese botón nos agregará un hueco en blanco con un nombre por defecto: A continuación le daremos nuestro propio nombre al hueco que nos creó. Por consultas.ar . escribir a pfactorovich@fundacionsadosky.org.

escribir a pfactorovich@fundacionsadosky.org.Como retoque final podemos seguir añadiendo texto a continuación del hueco a través del botón “Añadir texto de la etiqueta:” Presionamos OK y veremos lo siguiente: Este cuadernillo es una versión preliminar del material definitivo. Por consultas.ar .

En lugar de escribir un número concreto de veces que se va a repetir la secuencia de avanzar y comer banana. llamado “cantidad”. escribir a pfactorovich@fundacionsadosky. con esto estamos indicando que esa cantidad va a ser arbitraria y dependerá de lo que ingrese el usuario.El bloque azul dentro de la definición. es el parámetro del cual hablábamos antes de empezar a crear este nuevo bloque. De esta forma los parámetros nos permiten relacionar lo que el usuario ingresa en el hueco en blanco con el sitio que debe ocupar al momento de utilizar ese valor: Este cuadernillo es una versión preliminar del material definitivo.org. Por consultas.ar . Definiremos este procedimiento genérico de la siguiente manera: Observar que arrastramos el bloque azul y lo ubicamos en el lugar que debe ocupar dentro del procedimiento.

Podemos hacer que nuestros bloques posean tantos parámetros como creamos conveniente. lo que da como resultado una reducción el código que tenemos escrito.ar . ese número concreto va a reemplazar al parámetro en la definición del bloque. El tema de parametrizar procedimientos es uno de los más complejos a enseñar. y por esto que requiere paciencia y práctica hasta lograr entenderlo en profundidad. Por consultas. y lo va a hacer en los todos los lugares en donde aparezca el parámetro. escribir a pfactorovich@fundacionsadosky. Este nuevo procedimiento al ser genérico nos permite eliminar a todos los demás que eran instancias particulares de este. Dentro del cuaderno de actividades vamos a ver problemas en los que esto será necesario. que en este caso es“cantidad”. Este cuadernillo es una versión preliminar del material definitivo.org. por ejemplo.Cuando nosotros escribimos finalmente “4”.