GrandeOmega aims at harmonizing the theory and practice of programming.
The theory focuses on understanding exactly how things work formally, and acts as the strong foundation upon which the programming language is based. Students are required to get in touch with the explicit definition of the semantics of a programming language, and to move beyond the mere intuition of how things work. By trying to perform predictions such as variable x will be 10, students can verify if their understanding of the semantics are well founded, and GrandeOmega will help by informing of mistakes right away. Trial-and-error allows students to quickly try out their mental models of the language, in order to adjust them based on the feedback of the application.
The practice focuses on completing partially written programs in order to fulfill a given semantic behavior. Students are required to understand the code they are given, and add the missing blocks in order to match a precisely given definition. By being at the same time analytical (understanding the given code) and synthetic (creating the missing code) students exercise the sublime art of programming in an appropriately balanced way.