
Scratch es un entorno de programación infantil conocido por el aprendizaje a través de la creación de proyectos creativos, siguiendo el principio de "de lo simple a lo complejo". Sin embargo, el "enfoque clásico" para aprender a programar (variables → ramificaciones → ciclos → funciones → estructuras → objetos → ...) resulta complicado en Scratch.
Sin embargo, cambiar el orden de aprendizaje de conceptos (que llamaremos conceptos) de la programación estructurada, orientada a objetos y orientada a eventos, y ocultarlos tras coloridos sprites y animaciones interactivas, no significa que no debamos poner énfasis en los conceptos. Especialmente si el objetivo no es solo desarrollar habilidades creativas, sino enseñar a programar. He intentado reflejar esta idea en mi .
Lo primero con lo que se enfrenta un principiante en Scratch son los sprites. Aunque en Scratch no existe programación orientada a objetos como tal, los sprites pueden considerarse como objetos. En esta etapa, el aprendiz ve que en el programa puede haber múltiples objetos cuyo comportamiento es controlado por scripts externos. Los sprites reciben comandos o transmiten información sobre su estado cuando se les solicita, es decir, la programación se reduce al control de objetos.
Lo segundo que se presenta de inmediato al joven programador en Scratch es el concepto de multitarea. Cada sprite puede tener varios scripts que se ejecutan simultáneamente. Varios sprites también pueden ejecutar sus programas al mismo tiempo entre sí. En realidad, resulta más complicado organizar la ejecución secuencial.


Ya en la primera clase no podemos evitar familiarizarnos con los ciclos. De lo contrario, el gato no podrá correr mucho. En esta etapa, la introducción debe ser intuitiva y superficial. Limitamos este conocimiento a los ciclos "repetir siempre" y "repetir ... veces", que son más fáciles de entender. El ciclo condicional se estudia en una lección especialmente dedicada a los ciclos. Esta lección supone el conocimiento de expresiones lógicas y variables.
Dado que Scratch es un entorno orientado a eventos, es más conveniente estudiar los bloques de operadores condicionales antes que las variables. Las condiciones pueden ser ciertos eventos.

En mi opinión, este orden es mejor, ya que introducimos un mínimo de conceptos por lección. No son conceptos abstractos, sino que vemos inmediatamente su utilidad práctica.
Si primero se estudian las variables, es difícil demostrar su función y utilidad, ya que no se ha aprendido antes sobre el operador condicional, la entrada de datos y la generación de números aleatorios.
En Scratch, además de las listas, el programador se encuentra con tres tipos de datos: números, cadenas y booleanos. Además, el tipo está asociado al valor, no a la variable. No es necesario convertir cadenas en números y viceversa. Las cadenas no se encierran en comillas.
El bloque que devuelve un valor lógico y tiene una característica forma angular se puede insertar en campos ovalados. Lo contrario no es cierto: donde se espera una expresión lógica, no se puede insertar una variable normal.

Scratch está diseñado de tal manera que no se generan errores críticos durante la ejecución. Quizás por eso, si se intenta usar una cadena en una operación aritmética, se reemplaza por cero (ver la primera captura de pantalla).
El programador debe saber que las capacidades de los lenguajes de programación se amplían con bibliotecas. Al trabajar en Scratch, el alumno puede conectar complementos que introducen nuevos comandos en el entorno.

Las funciones en Scratch están implementadas en la sección 'Otros bloques', donde por un lado se crea un bloque propio que se puede insertar en otros scripts. Por otro lado, se debe reunir la funcionalidad de este bloque, es decir, lo que hará.

No hay retorno de valores de las funciones de Scratch.
Así, el estudio de los conceptos de programación en un entorno orientado a eventos tiene su impacto. En esencia, primero estudiamos conceptos más complejos y abstractos, y solo al profundizar en el proceso, pasamos a elementos de programación estructurada. Si esto es una ventaja o desventaja en el primer contacto es un tema debatible.
Fuente: habr.com
