Beruflich Dokumente
Kultur Dokumente
de primaria 2014
Versin 1.5
Este cuadernillo es una versin preliminar del material definitivo. Por consultas, escribir a
pfactorovich@fundacionsadosky.org.ar
Introduccin
Este cuaderno complementa las actividades diseadas en Scratch con informacin terica. Si
bien las actividades en s mismas son importantes, tambin lo son las conclusiones a las que
arribamos sobre los conceptos que se van presentando en un curso.
El objetivo de este documento es slo el de aportar cierto sustento terico a las actividades. Si
se desean estudiar estos temas en mayor profundidad, deben tomarse cursos acordes o
consultar bibliografa adecuada para tal fin.
Temario
Los contenidos son explicados en el orden en que deseamos sean presentados. No todos los
contenidos tericos se ven explicitados de la misma forma en las actividades que son
brindadas a los alumnos, pero consideramos que un docente debera tener una nocin bsica
de los mismos.
Programas y programacin
Comandos
Secuencias de comandos
Programas completos
Precondiciones
Procedimientos (asignacin de nombres a secuencias de comandos)
Estrategia de resolucin de problemas (divisin en subproblemas)
Repeticin
Alternativa condicional
Repeticin condicional
Expresiones
Parametrizacin y parmetros
Este cuadernillo es una versin preliminar del material definitivo. Por consultas, escribir a
pfactorovich@fundacionsadosky.org.ar
Programas y programacin
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 solucin que pueda ser interpretada y ejecutada por un autmata: la
computadora. Dicha solucin debe ser expresada de forma que puede ser interpretada tanto
por otras personas como por la computadora y por eso precisamos dar una descripcin de la
misma.
Programar consiste bsicamente en desarrollar programas a travs del uso de uno de estos
lenguajes de programacin (Scratch, Gobstones, Alice, Java, etc.). El medio de expresin de
estos programas, llamado editor, puede ser textual (1), como realizan ms habitualmente los
programadores profesionales o, como en el caso de Scratch, basado en trasladar y enganchar
bloques entre s (2).
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 mayscula y otras en minscula.
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 lnea cuando debera haber solo una y
de apertura. El segundo error es que la palabra poner de la tercer lnea debera empezar en
maysculas. Y el tercer error es que la palabra rojo tambin debera empezar con
maysculas. Es difcil que un alumno pueda seguir todas las reglas de los lenguajes de
programacin, y es muy fcil 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 atencin en la idea de solucin que programa pretende expresar. Por esta razn,
elegimos lenguajes como Scratch para ensear programacin a nios de primaria, ya que
impiden que los alumnos se equivoquen en estas cuestiones, a veces muy sutiles.
Este cuadernillo es una versin 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 accin. Diremos
entonces que un comando es un elemento de los lenguajes de programacin que describe una
accin determinada. Cuando un comando es ejecutado produce la accin relacionada a este.
En las primeras actividades que hagamos con los alumnos, utilizaremos los bloques de la
categora Ms bloques y ms adelante presentaremos solo unos pocos de los bloques
incluidos en las restantes categoras:
Esto significa que en realidad no utilizamos todo lo que hay en Scratch, sino que trabajamos
con actividades propias, diseadas para aprender especficamente ciertos conceptos bsicos
de programacin.
Este cuadernillo es una versin preliminar del material definitivo. Por consultas, escribir a
pfactorovich@fundacionsadosky.org.ar
Secuencias de comandos
En los lenguajes de programacin a los comandos los podemos encadenar para que formen
una secuencia de comandos. Esta secuencia forma a su vez un nuevo comando, que podemos
considerar como un comando compuesto.
Este cuadernillo es una versin preliminar del material definitivo. Por consultas, escribir a
pfactorovich@fundacionsadosky.org.ar
Dada esta secuencia, primero avanzar unos pasos
luego saludar
Este cuadernillo es una versin preliminar del material definitivo. Por consultas, escribir a
pfactorovich@fundacionsadosky.org.ar
Que la secuencia de comandos posea un orden especfico de ejecucin, tambin quiere decir
que si componemos los mismos comandos en otro orden, el resultado ser distinto:
Programas completos
Un programa completo es aqul que posee todo lo necesario para ser ejecutado por una
computadora. Las reglas para formar programas completos dependen de cada lenguaje de
programacin.
Vimos que los comandos simples forman parte de Scratch, as como las secuencias de
comandos, pero para formar un programa completo necesitamos un bloque ms. A este bloque
lo llamaremos el bloque empezar.
Este bloque est asociado a un botn que forma parte del editor de Scratch, que es una
banderita verde:
Este cuadernillo es una versin preliminar del material definitivo. Por consultas, escribir a
pfactorovich@fundacionsadosky.org.ar
Si presionamos ese botn, se ejecutar la secuencia asociada al bloque empezar.
Observar cmo al presionar la banderita verde el programa que est siendo ejecutado se
ilumina. Consecuentemente tambin se ejecutar la secuencia asociada, paso a paso, como
vimos anteriormente.
Este cuadernillo es una versin preliminar del material definitivo. Por consultas, escribir a
pfactorovich@fundacionsadosky.org.ar
En conclusin, en Scratch un programa completo consta de
El bloque empezar
Una secuencia de comandos asociada a este bloque
Adems, todo programa genera resultados de alguna manera. En este caso lo que genera son
efectos, puntualmente que un gatito avance, salude y vuelva a su posicin original.
Este cuadernillo es una versin preliminar del material definitivo. Por consultas, escribir a
pfactorovich@fundacionsadosky.org.ar
Precondiciones
Hay un gran problema detrs de algunos comandos: pueden fallar. 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).
Cmo es esto posible? Las acciones a veces requieren que algo se cumpla para que puedan
producir los efectos deseados. Por ejemplo, si al gatito que vimos de ejemplo le indicamos
avanzar y esto ya no es posible por estar al borde de la pantalla, entonces no podr ejecutar
satisfactoriamente dicha accin:
Diremos entonces que la ejecucin del programa fall, porque el gato no puede seguir
avanzando (no puede ejecutar 4 veces avanzar, porque a la tercera vez ya estar en el borde
de la pantalla).
Este cuadernillo es una versin preliminar del material definitivo. Por consultas, escribir a
pfactorovich@fundacionsadosky.org.ar
Y por otro lado tenemos las siguientes instrucciones:
Slo viendo las instrucciones, podemos pensar que los programas que formemos podrn fallar
de dos maneras posibles:
Nos podemos caer del tablero queriendo avanzar fuera del borde.
Podemos ejecutar la accin de comer una manzana pero que no haya nada en la celda
en donde estemos posicionados.
Veamos ambos casos. Como estamos parados en el borde inferior derecho, si nos movemos
hacia abajo, nos caeremos del tablero:
Este cuadernillo es una versin preliminar del material definitivo. Por consultas, escribir a
pfactorovich@fundacionsadosky.org.ar
En este caso la computadora nos avisa de este error, y la ejecucin del programa se detiene en
ese punto (no se ejecutarn ms comandos luego de un error).
Este cuadernillo es una versin preliminar del material definitivo. Por consultas, escribir a
pfactorovich@fundacionsadosky.org.ar
En este ejemplo, si deseamos que nuestros programas no fallen tenemos que tener en cuenta
las siguientes precondiciones:
Que si nos movemos hacia cierta direccin haya una celda en esa direccin
Que siempre que ejecutemos el comando comer manzana estemos posicionados en
una celda que posea una manzana.
Este cuadernillo es una versin preliminar del material definitivo. Por consultas, escribir a
pfactorovich@fundacionsadosky.org.ar
Procedimientos (asignacin de nombres a secuencias de comandos)
Esto nos permite simplificar las tareas grandes, dividindolas en tareas ms pequeas y
simples de resolver, y as organizar mejor nuestro pensamiento y simplificar nuestros
programas.
1 Para simplificar este tema, podemos explicarle a los alumnos que los procedimientos son la
forma de contarle a la computadora cmo realizar una accin nueva, que no forma parte de sus
primitivas.
Este cuadernillo es una versin preliminar del material definitivo. Por consultas, escribir a
pfactorovich@fundacionsadosky.org.ar
En lugar de definir todo el programa como una secuencia larga de pasos, podemos primero
crear 3 nuevos procedimientos, y que cada uno se encargue de comer manzanas de una parte
distinta del tablero (segn la organizacin anteriormente descrita).
Las acciones que comprende nuestro autmata en esta actividad son las siguientes:
Entonces, procederemos primero a crear un procedimiento que coma las manzanas del borde
inferior del tablero. Para hacer esto tenemos que presionar el botn Crear un bloque2:
Lo primero que haremos ser introducir el nombre del nuevo procedimiento. Lo llamaremos
comer manzanas de abajo3
3 Siempre que elijamos nombres de procedimientos tenemos que pensar en la edad de los alumnos.
Tienen que ser nombres descriptivos y simples. No hace falta utilizar un lenguaje demasiado complejo.
Este cuadernillo es una versin preliminar del material definitivo. Por consultas, escribir a
pfactorovich@fundacionsadosky.org.ar
Una vez que ingresamos el nombre del nuevo procedimiento presionamos OK.
Si en este momento enganchamos el comando Comer manzanas de abajo debajo del bloque
comenzar, y presionamos la banderita verde no va a pasar nada:
Este cuadernillo es una versin preliminar del material definitivo. Por consultas, escribir a
pfactorovich@fundacionsadosky.org.ar
No sucede nada porque no definimos todava que significa Comer manzanas de abajo.
Entonces, nos enfocaremos en realizar esto, ubicando debajo del bloque que define este
comando:
Este cuadernillo es una versin preliminar del material definitivo. Por consultas, escribir a
pfactorovich@fundacionsadosky.org.ar
Lo que podemos hacer ahora es definir el resto de los procedimientos:
Comer manzanas de la derecha
Comer manzanas de arriba
Este cuadernillo es una versin preliminar del material definitivo. Por consultas, escribir a
pfactorovich@fundacionsadosky.org.ar
Si lo ejecutamos veremos que el marciano se come todas las manzanas
Como podemos observar, al crear nuevos nombres para esta tarea (en este caso de comer
todas las manzanas del tablero), estamos haciendo que nuestra secuencia describa el
problema con palabras ms simples y en menos pasos. Los detalles internos de cada
procedimiento estn ocultos dentro de sus definiciones. Pero no hace falta leer por completo
todas las definiciones para saber de forma aproximada lo que realiza el programa.
Es deseable que nuestros programas describan de la mejor forma posible cada parte que
modelan, para que el lector pueda inferir de alguna manera las intenciones del programador
que lo dise. Leer programas de otras personas es una actividad que se realiza ms de lo que
uno podra llegar a creer, por lo que es muy importante que los programas sean legibles para
las personas que no los programaron, pero que desean, por ejemplo, realizar modificaciones o
correcciones sobre los mismos.
A la estrategia de dividir una tarea grande en tareas ms pequeas se lo conoce como divisin
en subtareas. Es recomendable al momento de resolver cada problema que pueda
Este cuadernillo es una versin preliminar del material definitivo. Por consultas, escribir a
pfactorovich@fundacionsadosky.org.ar
presentarse con qu estrategia lo vamos a abordar, es decir, qu subtareas podemos
reconocer y que vamos a definir para simplificarlo.
Habiendo presentado una forma de poder definir subtareas que componen un programa
completo, explicaremos la estrategia con la que deseamos que se resuelvan las actividades del
curso. Esta estrategia consta de los siguientes pasos:
1. Pensar la estrategia con la que se va a resolver el problema.
2. Identificar las distintas partes del problema.
3. Crear procedimientos (vacos) asociados a estas tareas.
4. Resolver el problema principal en base a estos procedimientos (sin haberlos
completado).
5. Repetir esta estrategia para cada subtarea.
En la actividad Reparando la nave tenemos que ayudar a un marciano llamado Tino, que tiene
una misin en el espacio, pero tuvo que realizar un aterrizaje de emergencia en un planeta
desconocido. Tuvo suerte, porque cerca del aterrizaje se encontr con dos materiales (carbn y
hierro) que le van a servir para repararse nave y continuar su aventura.
Este cuadernillo es una versin preliminar del material definitivo. Por consultas, escribir a
pfactorovich@fundacionsadosky.org.ar
Debemos buscar 3 porciones de carbn y 3 porciones de hierro. El marciano slo puede tomar
un pedazo de carbn o hierro por vez, as que tendr que realizar 3 viajes por cada material
que necesita. Cuando termine de recolectar los recursos suficientes podr escapar del planeta.
Obviamente podemos resolver esta actividad sin subtareas, paso a paso, poniendo una
instruccin tras otra, pero dividirla nos ayudar a simplificarla.
Este cuadernillo es una versin preliminar del material definitivo. Por consultas, escribir a
pfactorovich@fundacionsadosky.org.ar
Observar que todava no definimos en qu van a consistir esas subtareas, slo estamos
planteando la estrategia general con la que vamos a resolver todo el problema. Pero
suponiendo que a esas subtareas las hemos definido correctamente, podemos utilizarlas como
parte del programa principal:
Ahora debemos pensar cmo resolver cada una de las subtareas por separado.
La subtarea de Ir a buscar carbon puede consistir en ir y traer 3 veces una pieza de carbn:
Con esto estamos repitiendo el proceso de divisin en subtareas tambin para cada subtarea.
Ahora podemos pensar que Traer una pieza de carbn simplemente consiste en paso a paso
ir a buscarla. Esta ser la tarea de ms bajo nivel que implementaremos, en el sentido de que
utilizar directamente las primitivas del autmata.
Este cuadernillo es una versin preliminar del material definitivo. Por consultas, escribir a
pfactorovich@fundacionsadosky.org.ar
Pero lo curioso es que tambin nos ha quedado simple de definir, ya que esta tarea consiste
slo de ir 3 veces hacia arriba, tomar carbon, ir 3 veces hacia abajo, depositar en la nave. No
obstante, podramos haber definido subtareas para subir 3 veces y bajar 3 veces, aunque
decidimos no hacerlo. Es por esto que la divisin en subtareas tambin depende de cada
persona y sus ideas al intentar simplificar problemas. Para nosotros esta solucin ya es lo
suficientemente simple, pero puede venir otra persona que la considera todava compleja.
Ninguna de las dos personas est errada, cada una posee su propio criterio, pero lo que s es
cierto es que no definir subtareas en general conlleva a programas ms complejos y difciles de
entender, y muchas veces a la posibilidad o imposibilidad de directamente solucionar el
problema (existen problemas difciles que sin subtareas seran ms difciles todava).
Siguiendo con el resto del programa, aplicaremos la misma estrategia para definir la subtarea
que falta:
Este cuadernillo es una versin preliminar del material definitivo. Por consultas, escribir a
pfactorovich@fundacionsadosky.org.ar
Habiendo definido todas estas subtareas ya estamos en condiciones de ejecutar nuestro
programa principal.
En resumen, muchas de las actividades de este curso requieren definir subtareas para ser
resueltas de forma simple. Pero ms all de esto, definir subtareas es algo que debemos
inculcar a los alumnos, dado que es una tcnica que requiere mucha prctica para ser
dominada, pero, a su vez, es una herramienta muy valiosa que promueve habilidades de
pensamiento abstracto.
Este cuadernillo es una versin preliminar del material definitivo. Por consultas, escribir a
pfactorovich@fundacionsadosky.org.ar
Repeticin
Veamos un ejemplo.
En esta actividad este extraterrestre tiene que tomar todas las estrellas que hay en el tablero, y
para eso nos dan las siguientes instrucciones primitivas:
Este cuadernillo es una versin preliminar del material definitivo. Por consultas, escribir a
pfactorovich@fundacionsadosky.org.ar
Tomar una fila de estrellas consiste en mover derecha y tomar estrella, 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.
Este cuadernillo es una versin preliminar del material definitivo. Por consultas, escribir a
pfactorovich@fundacionsadosky.org.ar
Lo que podemos hacer es indicarle a la computadora que tiene que repetir la secuencia de
mover derecha y tomar estrella 4 veces, sin necesidad de escribir toda esta secuencia
entera.
Este cuadernillo es una versin preliminar del material definitivo. Por consultas, escribir a
pfactorovich@fundacionsadosky.org.ar
Esta secuencia la podemos asociar a la repeticin de esta manera
Las repeticiones son utilizadas constantemente en los programas y permiten reducir el cdigo
que tenemos que escribir.
Este cuadernillo es una versin preliminar del material definitivo. Por consultas, escribir a
pfactorovich@fundacionsadosky.org.ar
Alternativa condicional
En ciertas ocasiones deseamos que un comando slo se ejecute si se cumple cierta condicin,
o que se ejecute un comando si sucede algo u otro si sucede lo contrario. A este concepto lo
llamamos alternativa condicional.
Veamos un ejemplo. En la actividad llamada La eleccin del mono podemos toparnos con dos
escenarios posibles:
El objetivo es simple: comer manzana cuando hay manzana y comer banana cuando hay
banana. En la casilla a la derecha del mono, hay manzana o hay banana, pero no ambas a la
vez.
Este cuadernillo es una versin preliminar del material definitivo. Por consultas, escribir a
pfactorovich@fundacionsadosky.org.ar
Para poder resolver esta cuestin tenemos que poder preguntar si hay banana o manzana, y
en cada caso comer la fruta que haya. En este sentido es que tenemos que decidir si vamos
por una alternativa o la otra.
Este bloque nos servir para poder preguntar primero si se cumple cierta condicin y slo en
ese caso ejecutar un comando. Pero primero vamos a dividir el problema.
Definiremos el procedimiento comer fruta que resolver decidir qu fruta tiene que comer:
Para preguntar si estamos tocando una manzana o una naranja vamos a la categora Sensores
y seleccionamos la pregunta tocando ...?:
Este cuadernillo es una versin preliminar del material definitivo. Por consultas, escribir a
pfactorovich@fundacionsadosky.org.ar
Observar que hay una flecha pequea, que nos permitir seleccionar de una lista qu objeto
deseamos preguntar si estamos tocando. Para ello deberemos hacer clic exactamente sobre la
flecha.
Seleccionamos manzana:
La forma que posee este bloque es idntica al hueco que posee el bloque si entonces:
Este cuadernillo es una versin preliminar del material definitivo. Por consultas, escribir a
pfactorovich@fundacionsadosky.org.ar
Una condicin, que probar si es verdadera.
Una secuencia de comandos que ejecutar si la condicin resulta verdadera.
Entonces si nos encontramos con el caso en el que hay manzana, comer la manzana
Por qu? Porque si hay una banana, la condicin Tocando manzana? es falsa y no ejecuta
entonces el comando Comer manzana. Si deseamos que tambin pregunte si hay banana y
en ese caso coma una, tendremos que agregar otro bloque si entonces:
Este cuadernillo es una versin preliminar del material definitivo. Por consultas, escribir a
pfactorovich@fundacionsadosky.org.ar
Y ahora, sin importar cul sea el caso, preguntar por lo que haya y comer la fruta adecuada.
Cabe destacar que existe otra variante para resolver este problema. Como siempre hay una u
otra fruta, sabemos que si no hay manzana entonces tiene que haber una banana, y viceversa.
Dentro de la categora Control hay otro bloque llamado si entonces sino
Este bloque representa exactamente ese caso. Si la condicin es verdadera, ejecuta la primera
secuencia de comandos, y si la condicin es falsa, ejecuta la segunda.
Este cuadernillo es una versin preliminar del material definitivo. Por consultas, escribir a
pfactorovich@fundacionsadosky.org.ar
Esta solucin es equivalente a la anterior. Si a los alumnos se les complica entender esta otra
solucin, o discernir cundo usar un si entonces o un si entonces sino, es preferible
utilizar slo la primera variante y e ignorarla segunda. Todo lo que se puede resolver con la
segunda variante tambin se puede resolver fcilmente con la primera, pero lo contrario no
siempre es cierto (se puede, pero a veces se torna ms complicado).
De esta forma, resolvimos un problema que posee un escenario cambiante. A veces pasa una
cosa, y a veces pasa otra. 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.
Este cuadernillo es una versin preliminar del material definitivo. Por consultas, escribir a
pfactorovich@fundacionsadosky.org.ar
Repeticin condicional
Existe otro tipo de repeticiones, que no estn basadas en un nmero de veces que hay que
repetir una secuencia. Estas otras repeticiones estn basadas en una condicin, y mientras esa
condicin se siga cumpliendo, la secuencia a repetir se seguir ejecutando.
La herramienta de repeticin simple es muy til para repetir algo una cierta cantidad de veces,
pero en muchas ocasiones no sabemos cunto debemos repetir algo, o simplemente queremos
que se repita sin importarnos este dato. En estos casos entran en juego otro tipo de
repeticiones.
Lo que podemos hacer para repetir en ocasiones en donde no conocemos a priori el nmero de
veces que queremos o necesitamos repetir una serie de comandos, es utilizar una repeticin
que est basada en una condicin.
En Scratch, en la categora Control existe un bloque llamado repetir hasta que . Este
bloque tiene dos partes:
En el hueco hexagonal a continuacin de su nombre debemos poner una condicin.
Una secuencia de bloques que se ejecutarn hasta que esta condicin sea verdadera.
En la actividad Super Lightbot 1 tendremos escenario cambiante (las celdas azules son luces a
prender):
Este cuadernillo es una versin preliminar del material definitivo. Por consultas, escribir a
pfactorovich@fundacionsadosky.org.ar
Y se nos permite utilizar las siguientes instrucciones primitivas:
Si lo tuvisemos que resolver en espaol, la solucin puede ser expresada como prender luz y
avanzar hasta estar en el cuadrado verde. Expresaremos esto mismo pero en Scratch.
Primero tenemos que pensar cmo preguntar si estamos en el cuadrado verde. Para eso
vamos a la categora senseores y nos traemos el bloque Tocando ?. Veremos que hay una
opcin que dice Fin:
Este cuadernillo es una versin preliminar del material definitivo. Por consultas, escribir a
pfactorovich@fundacionsadosky.org.ar
Esta pregunta la combinaremos con el bloque Repetir hasta que :
Es importante destacar que esto no podra haber sido resuelto con una repeticin simple,
porque no podemos indicar el nmero exacto de veces que se debe repetir prender luz y
avanzar, justamente porque el tamao del problema es variable.
Como todos los bloques anteriores, el repetir hasta que muchas veces forma parte de
problemas ms grandes, en los que incluso se combina con otros bloques.
Este cuadernillo es una versin preliminar del material definitivo. Por consultas, escribir a
pfactorovich@fundacionsadosky.org.ar
Es importante observar que estamos utilizando varios conceptos a la vez:
Definimos una subtarea llamada prender luz si hay, que prende una luz en el caso en
que haya una.
Utilizamos una alternativa condicional para definir esta subtarea
Utilizamos una repeticin condicional para resolver el problema principal.
En resumen, tenemos dos tipos de repeticiones: repeticiones simples (con un nmero que
indica la cantidad de veces a repetir un comando) y repeticiones condicionales (que continan
ejecutando mientras se cumpla una condicin y se detienen cuando se deja de cumplir). Esta
nueva forma de repeticin podr ser usada de ahora en ms para resolver problemas de
caractersticas anteriormente descritas.
Este cuadernillo es una versin preliminar del material definitivo. Por consultas, escribir a
pfactorovich@fundacionsadosky.org.ar
Expresiones
Hemos visto que en Scratch podemos utilizar datos para modificar el comportamiento de los
comandos. En este apartado veremos dos clases de bloques que describen valores.
Todos estos bloques representan lo que se conoce como expresiones, y en este caso,
expresiones de tipo numricas. Las expresiones estn formadas por datos y resultan en otro
dato cuando son evaluadas, es decir, se realizan todas las operaciones que componen esa
expresin. En este caso si evaluamos de la expresin 10 + 1, esto dar como resultado el
nmero 11. Podemos observar entonces que esta operacin toma dos nmeros para devolver
otro nmero.
En este caso la operacin unir toma dos palabras y devuelve otra palabra, que es la unin
consecutiva de ambas.
Es evidente que los datos por s solos no sirven de mucho, pero lo interesante es su uso al
combinarse con comandos:
Este cuadernillo es una versin preliminar del material definitivo. Por consultas, escribir a
pfactorovich@fundacionsadosky.org.ar
Observar que utilizamos expresiones en cada lugar en donde se poda esperar un valor simple.
El primer comando se mover 11 pasos, por lo que hubiese sido equivalente poner la expresin
10+1 o el nmero 11 directamente. El segundo comando esperaba primero una palabra, por lo
que utilizamos una expresin que devuelve una, y adems esperaba una cantidad de
segundos, por lo que utilizamos otra cuenta numrica, que representa al nmero 3. Si bien
estas expresiones carecen de sentido, dado que son equivalentes a haber puesto los valores
resultantes, cuando se combinan con otros elementos resultan de gran utilidad.
En Scratch tambin existen operaciones que no esperan ningn dato, sino que simplemente
devuelve uno, Este es el caso de expresiones como las siguientes:
A diferencia de las operaciones anteriores, estos bloques recolectan cierto dato del entorno o
del personaje y lo devuelven. Este tipo de expresiones son muy utilizadas en los lenguajes de
programacin, porque por ejemplo nos permiten conocer la posicin de un (en el eje x o y),
el tamao 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). Como son expresiones como cualquier
otra tambin pueden ser utilizadas en lugares en donde se esperan datos concretos:
Este cuadernillo es una versin preliminar del material definitivo. Por consultas, escribir a
pfactorovich@fundacionsadosky.org.ar
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. Esta actividad al igual que muchas otras posee un escenario
cambiante.
Por el momento vimos 3 herramientas que nos permiten expresar procedimientos que
funcionan ante escenarios cambiantes.
La primera herramienta fue parmetros. Aunque los parmetros no nos permitieron en realidad
resolver escenarios en los que el problema cambiaba de ejecucin en ejecucin, nos facilit la
definicin de procedimientos genricos, que funcionan en distintas partes de un problema fijo
que se resuelven de forma similar (los procedimientos para resolver estas partes eran idnticos
salvo por datos particulares que podemos indicar al utilizarlos).
Este cuadernillo es una versin preliminar del material definitivo. Por consultas, escribir a
pfactorovich@fundacionsadosky.org.ar
Las herramientas posteriores fueron alternativas condicionales y repeticiones condicionales.
Estas herramientas permitan adaptar nuestros programas a problemas cambiantes porque
podan realizar preguntas. Estas preguntas eran justamente expresiones, que en este caso
representaban condiciones:
En este problema lo que precisamos es informacin de otro tipo. Si el problema es volar cierta
cantidad de kilmetros la solucin simplemente constara de una expresin que nos informe
esa cantidad, para poder utilizar este dato y resolver el problema.
Si vamos a la categora llamada Datos, vamos a ver un bloque que hace exactamente esto
Este cuadernillo es una versin preliminar del material definitivo. Por consultas, escribir a
pfactorovich@fundacionsadosky.org.ar
Como esta expresin simplemente evala a un nmero (nos devuelve un nmero) podemos
utilizarla en cualquier lugar en el que se utilizara un nmero en particular.
Otro problema que consiste en usar un dato como este, lo podemos encontrar con la actividad
El mono cuenta de nuevo
Este cuadernillo es una versin preliminar del material definitivo. Por consultas, escribir a
pfactorovich@fundacionsadosky.org.ar
En este caso tampoco sabemos cundo termina cada fila, pero contamos con un dato llamado
Que nos informa la cantidad de casillas que tenemos por delante (sin contar la casilla de color
verde).
Ms all de los problemas especficos que podemos llegar a resolver, el uso de expresiones
enriquece enormemente lo que puede hacerse con los comandos, y permiten realizar ms
atractivos.
Por ejemplo, un programa en el que nuestro personaje siga todo el tiempo el cursor de nuestro
mouse se define como:
Este cuadernillo es una versin preliminar del material definitivo. Por consultas, escribir a
pfactorovich@fundacionsadosky.org.ar
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 ms brillante si hacemos ms ruido
a travs de un micrfono conectado a la compu:
Y as podemos imaginar un sin fin de usos para distinta informacin que podemos obtener a
travs de estas expresiones.
A partir de la presentacin de este tema tiene ms sentido dejar que los chicos exploren todos
los bloques que trae Scratch en general e intenten realizar un proyecto propio, ya sea
empezado de cero o basado en un proyecto parcialmente completo que les brindemos.
Este cuadernillo es una versin preliminar del material definitivo. Por consultas, escribir a
pfactorovich@fundacionsadosky.org.ar
Parametrizacin y parmetros
En ocasiones puede sucedernos que tenemos varias subtareas que son similares, pero que se
diferencian en algn valor en particular.
En la actividad llamada El planeta de Nano tenemos que comer varias filas de bananas, pero
las filas no son todas iguales:
4 Aunque el caso de comer una sola banana no amerite una repeticin, la agregamos para que se vuelva
similar a los dems procedimientos. Esto nos permite llegar a una conclusin que nos permitir introducir
este tema nuevo.
Este cuadernillo es una versin preliminar del material definitivo. Por consultas, escribir a
pfactorovich@fundacionsadosky.org.ar
Y nuestro programa principal, con la ayuda de una subtarea ms, ser as:
Es evidente que esos 4 procedimientos son idnticos salvo por un valor: la cantidad de
bananas que deben comer en una determinada fila.
Sera conveniente que en lugar de crear 4 procedimientos distintos que slo cambian en un
nmero, hagamos lo siguiente:
Este cuadernillo es una versin preliminar del material definitivo. Por consultas, escribir a
pfactorovich@fundacionsadosky.org.ar
Es importante explicar en este punto que los comandos pueden estar relacionados con
valores, que simplemente describen datos5. A travs de estos valores podemos hacer que los
comandos se comporten de distinta manera.
Con la categora Ms bloques por el momento escondimos este tipo de bloques para reducir
la complejidad de utilizar nuestro primeros comandos, pero sera til poder definir nuestro
propio bloque al que le pudisemos indicar la cantidad de bananas a comer al momento de
utilizarlo.
Cmo hacemos esto? Primero debemos crear un parmetro. Para ellos crearemos un nuevo
bloque e iremos a opciones:
Luego de escribir Comer presionamos el botn que dice Aadir entrada nmerica:
5 En Scratch existen distintos tipos de valores, pero principalmente utilizaremos slo nmeros o
palabras.
Este cuadernillo es una versin preliminar del material definitivo. Por consultas, escribir a
pfactorovich@fundacionsadosky.org.ar
Al presionar ese botn nos agregar un hueco en blanco con un nombre por defecto:
A continuacin le daremos nuestro propio nombre al hueco que nos cre, que en este caso
puede llamarse cantidad, para indicar que va a representar la cantidad de bananas a comer:
Este cuadernillo es una versin preliminar del material definitivo. Por consultas, escribir a
pfactorovich@fundacionsadosky.org.ar
Como retoque final podemos seguir aadiendo texto a continuacin del hueco a travs del
botn Aadir texto de la etiqueta:
Este cuadernillo es una versin preliminar del material definitivo. Por consultas, escribir a
pfactorovich@fundacionsadosky.org.ar
El bloque azul dentro de la definicin, llamado cantidad, es el parmetro del cual hablbamos
antes de empezar a crear este nuevo bloque. Definiremos este procedimiento genrico de la
siguiente manera:
Observar que arrastramos el bloque azul y lo ubicamos en el lugar que debe ocupar dentro del
procedimiento. En lugar de escribir un nmero concreto de veces que se va a repetir la
secuencia de avanzar y comer banana, con esto estamos indicando que esa cantidad va a ser
arbitraria y depender de lo que ingrese el usuario.
De esta forma los parmetros 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 versin preliminar del material definitivo. Por consultas, escribir a
pfactorovich@fundacionsadosky.org.ar
Cuando nosotros escribimos finalmente 4, por ejemplo, ese nmero concreto va a reemplazar
al parmetro en la definicin del bloque, y lo va a hacer en los todos los lugares en donde
aparezca el parmetro, que en este caso escantidad.
Este nuevo procedimiento al ser genrico nos permite eliminar a todos los dems que eran
instancias particulares de este, lo que da como resultado una reduccin el cdigo que tenemos
escrito.
Podemos hacer que nuestros bloques posean tantos parmetros como creamos conveniente.
Dentro del cuaderno de actividades vamos a ver problemas en los que esto ser necesario.
El tema de parametrizar procedimientos es uno de los ms complejos a ensear, y por esto que
requiere paciencia y prctica hasta lograr entenderlo en profundidad.
Este cuadernillo es una versin preliminar del material definitivo. Por consultas, escribir a
pfactorovich@fundacionsadosky.org.ar