¿Cree que vale la pena desarrollar una herramienta de diagramación que ayude a los estudiantes a construir visualmente un diagrama de flujo del programa y ejecutar la lógica?

Es realmente difícil hacer un sistema de programación visual que sea más que un juguete. Muchos vendedores han intentado escalar esa colina a lo largo de los años, pero ninguno lo ha logrado.

Personalmente, creo que es más valioso enseñar un proceso de varios pasos en la programación. Enseñe a los estudiantes a diagramas de flujo de su código en papel para resolver problemas de diseño, luego pasar a un lenguaje de programación adecuado para realizar la implementación y las pruebas detalladas. Este ha sido mi enfoque de la programación profesional durante muchos años, y lo recomiendo encarecidamente.

La ventaja del diagrama de flujo es la simplificación. Puede eliminar algunos de los detalles finos, como la declaración de tipo y la validación de argumentos, y centrarse en el flujo general del código. Si intenta hacer que sea ejecutable, no lo está haciendo más útil, posiblemente lo esté haciendo menos útil, forzando demasiados detalles en el diagrama de flujo. Mientras tanto, los diagramas de flujo consumen una gran cantidad de espacio en pantalla en comparación con el código basado en texto, lo que hace que sea más difícil “ver” la ejecución en lugar de más fácil.

Esta mañana, estoy trabajando en un pequeño pico, para descubrir una representación de datos compleja. Estoy usando Ruby y rspec para evolucionar el código usando Test-Driven Design. ¡Ya son un par de cientos de líneas, y Ruby es un lenguaje muy conciso! Incluso un poco trivial de descarte es demasiado complejo para representarlo fácilmente con un diagrama de flujo con detalles reales y ejecutables.

De todos modos … en lugar de tratar de hacer que el diagrama de flujo sea ejecutable, enseñe a los estudiantes a usar diferentes herramientas para pensar sobre su software en diferentes niveles. Use un diagrama de flujo para visualizar un flujo general simplificado, y use herramientas de prueba de unidad para crear un código real demostrablemente correcto.

¡¡¡Absolutamente!!!

¡Incluso lo ayudaría!