Program-AR / pilas-bloques-app

Pilas Bloques es una aplicación para enseñar y aprender a programar por medio de bloques de forma simple y divertida.
https://pilasbloques.program.ar/
GNU Affero General Public License v3.0
5 stars 6 forks source link

Un bloque de otra actividad al conectarse se desgrisa #164

Open asanzo opened 5 years ago

asanzo commented 5 years ago

Cuando importás la solución de un desafío distinto, puede pasar que vengan bloques que no son del challenge actual. Eso está bien, y hoy se grisan (lo cual también está bien).

El problema es que al conectar un bloque grisado, vuelve a la normalidad:

alConectarBloqueSeDesgrisa

asanzo commented 5 years ago

Revisar su sigue o si ya se arregló

PalumboN commented 5 years ago

Sí, sigue pasando.

looseale commented 3 years ago

Hola @asanzo, consulta sobre el issue: hay alguna razón por la que se quieran mantener los bloques de la solución que no apliquen al challenge? Porque si no es necesario mantenerlos se podría hacer un dispose() de esos bloques y borrarlos dejando solo los que apliquen al challenge. Intente aplicar la primera solución (que se mantenga deshabilitado), pero como los bloques del challenge también están deshabilitados por default si están fuera del bloque de ejecución no encontré forma de diferenciarlos. La segunda opción creo que si el aplicable, pero quería confirmar para evitar un rechequeo si no es necesario. Desde ya gracias.

asanzo commented 3 years ago

¡¡ Hola, @looseale !!

La pregunta es ultra válida. El feature de importar los bloques está porque hay algunas actividades (particularmente las del segundo libro de Dibujando Figuras) en las que se espera que reuses soluciones.

Además, hay una similitud estructural entre las soluciones de repetición condicional, y nos ha pasado que hay gente que ha importado soluciones de otros ejercicios para resolverlos. Eso en principio nos parece un enfoque que no queremos desalentar por ahora, porque hace al aprendizaje de programación (y bien que lo re hacemos lxs programadorxs en industria también XD).

Ahora bien, imaginando este último escenario, es importante que aparezcan los bloques (y grisarlos) para saber en qué lugar reemplazar "levantar tuerca" por "comer banana". Es una cuestión didáctica. El dispose los hace desaparecer y nunca sabés dónde estuvieron.

Para deshabilitarlos, eso se hace en el método disableNotAvailableBlocksInWorkspace del service available_blocks_validator.js. Creo que es tan simple como llamar a ese método cuando corresponda.

asanzo commented 3 years ago

(chusmeá un poquito desde dónde se llama ese método)

rgonzalezt commented 8 months ago

Otra forma de resolver esto no es grisando el bloque que no sea propio del ejercicio, sino poder comunicar el error al usuario de forma correcta. Deberíamos analizar este caso con más detenimiento.

PalumboN commented 7 months ago

Holiisssss, pasaba por acá y vi preguntas interesantes. Dejo algunos comentarios que me surgieron :)

Estado actual

Fui a una actividad de Mañic y creé este programa:

image

Lo guardé y lo abrí en uno de Capy:

Problemas que veo / cosas que me gustaría mejorar

Secuencia de actividades (un caso de uso)

El feature de importar los bloques está porque hay algunas actividades (particularmente las del segundo libro de Dibujando Figuras) en las que se espera que reuses soluciones.

En esos casos donde los ejercicios están diseñados para importar soluciones de otro, salta también el cartel? Por lo que probé, sí. En esos casos estaría bueno que no pase, ya que no sería "un error de usuario" sino una "propuesta del docente".

Feedback estático (origen del issue)

Como feedback me gustaría que los bloques que no pertenecen tengan algo que llame la atención:

Feedback dinámico (qué esperamos que pase?)

Por último, si igual toco ejecutar el programa que tiene bloques que sabemos que no van a andar, qué hacemos?

Otra opción es ejecutar el programa, como pasa actualmente. Y acá la pregunta es qué hacemos cuando se ejecuta el bloque de otra actividad:

Todo depende del nivel de polimorfismo que queramos entre los personajes, y esa parece ser una decisión pedagógica :)

My two cents!

asanzo commented 7 months ago

Estoy absolutamente de acuerdo en absolutamente todo lo que dijo el absoluto Rasta.

¡¡GRACIAS RASTA!!

Creo que en tu mensaje está la especificación de lo que tenemos que hacer. Este issue hay que tenerlo en cuenta cuando estemos migrando los bloques.