Students who learn the basic programming concepts within GrandeOmega, exhibit both quantitative and qualitative improved learning during first year courses of programming.
We have measured a 43% improvement in pass rates during the most difficult programming courses of the first year of informatica at Rotterdam University of Applied Sciences. The difficulty of the course stems from its focus: inductive data structures, recursion, and higher order functions.
The improvements come from the feedback given to students: instead of just being told to "practice", students get a code template: a partially filled program, together with a partial view of what the program will do, step-by-step. Students fill in the missing parts of the program, in order to try to match the desired behavior; errors are pointed out automatically and in real-time by the system.
Students never get the chance to "feel lost": they start by reading the code and studying the specification of the desired behavior (the values that all variables are expected to get while running the program); then, they try filling in the blanks, and see if some variables acquire the wrong values.
This forces a positive feedback loop: read, predict, try out, verify, which perfectly matches the limited skill set of beginner students, while allowing them to be active.
Moreover, forcing students to read existing code allows them to learn from existing, positive patterns, instead of rediscovering their own with much more effort.
Finally, students get a chance to learn the precise mechanisms of a programming language, instead of learning by intuition. This strengthens the quality of their learning, by complementing practice with the underlying theory and patterns.