Muchos están familiarizados con Scratch, un entorno de programación infantil, cuya capacitación generalmente se reduce a la creación de proyectos creativos en un principio "de simple a complejo". Al mismo tiempo, el "enfoque clásico" para el estudio de la programación (variables → ramas → bucles → funciones → estructuras → objetos → ...) en Scratch es difícil.
Sin embargo, cambiar la secuencia de los conceptos de estudio (llamémoslos conceptos) de programación estructural, orientada a objetos y eventos, ocultándolos detrás de sprites brillantes y animación interactiva no significa que no se debe enfatizar los conceptos. Especialmente si el objetivo no es tanto el desarrollo de habilidades creativas como el entrenamiento en programación.
Traté de reflejar esta idea en mi
curso .
Lo primero que enfrenta un rascador novato son los sprites. Aunque Scratch en sí no tiene programación orientada a objetos, los sprites pueden considerarse objetos. En esta etapa, el alumno ve que puede haber muchos objetos en el programa cuyo comportamiento está controlado por guiones externos a ellos. Los sprites reciben comandos o transmiten información sobre su estado a pedido, es decir, la programación se reduce a administrar objetos.
La segunda cosa que cae inmediatamente en Scratch en la cabeza de un joven programador es el concepto de subprocesamiento múltiple. Cada sprite puede tener varios scripts ejecutados simultáneamente. Varios sprites también pueden ejecutar sus programas simultáneamente entre sí. Y resulta ser más difícil organizar la ejecución secuencial.
Ya en la primera lección, no podemos evitar conocer los ciclos. De lo contrario, el gato no huirá especialmente. En esta etapa, el conocimiento debe dejarse intuitivo y superficial. Lo limitamos a los ciclos "siempre repetir" y "repetir ... tiempos", que son más fáciles de entender. Un bucle condicional se estudia en una lección dedicada específicamente a los bucles. Esta lección requiere conocimiento de expresiones lógicas y variables.
Dado que Scratch es un entorno impulsado por eventos, es más conveniente estudiar bloques de enunciados condicionales antes que variables. Una condición puede ser ciertos eventos.
En mi opinión, tal secuencia es mejor, ya que para cada lección presentamos un mínimo de conceptos. Y no abstracto, pero de inmediato ver sus beneficios prácticos.
Si primero estudia las variables, entonces su propósito y beneficio es difícil de demostrar, ya que el operador condicional, la entrada de datos y la generación de números aleatorios no se han estudiado antes.
En Scratch, además de las listas, un programador se enfrenta a tres tipos de datos: números, cadenas y tipos booleanos. En este caso, el tipo está vinculado a un valor, no a una variable. No es necesario convertir cadenas a números y viceversa. Las cadenas no están entre comillas.
Un bloque que devuelve un valor lógico y tiene una forma angular característica se puede insertar en campos redondeados. Lo contrario no es cierto: cuando se supone una expresión lógica, no se puede insertar una variable regular.
Scratch se implementa para que no ocurran errores críticos durante la ejecución. Aparentemente, por lo tanto, si intenta usar una cadena en una operación aritmética, se reemplaza por cero (vea la primera pantalla).
El programador debe saber que las bibliotecas amplían las capacidades de los lenguajes de programación. Mientras trabaja en Scratch, un estudiante puede agregar complementos que agregan nuevos equipos al entorno.
Las funciones en Scratch se implementan en la sección "Otros bloques", donde, por un lado, crea su propio bloque que puede insertarse en otros scripts. Por otro lado, deben ensamblar la funcionalidad de esta unidad, es decir, lo que hará.
No hay valor de retorno de la función scratch.
Por lo tanto, el estudio de los conceptos de programación en un entorno orientado a eventos deja su marca. De hecho, primero estudiamos conceptos más complejos y abstractos y, solo profundizando en el proceso, pasamos a los elementos de la programación estructural. Más o menos para un primer conocido es un punto discutible.