Recent years have seen the inclusion of introductory programming courses as early as in elementary schools, as an answer to the onminpresence of computer technology. While some curriculums rely on traditional text-based languages, such as Java or Python, others advocate for more accessible visual programming environments, such as Scratch or Microsoft MakeCode. Most of these tools adopt an imperative paradigm in which programs are expressed using pre-defined instruction blocks. This setup is particularily well suited to interactive debugging environments, using the common stepping model to control execution. However, as they focus on control rather than data, they often lack appropriate mechanisms to manipulate non-trivial data structures.
In an effort to provide an alternative approach, we are developing FunBlocks, a hybrid programming environment based on algebraic data types and term rewriting. Rewriting systems emphasis on data rather than control, enabling students and novices to create a better understanding of data structures, while letting them define elaborate transformation strategies without the need to get familiar with the ad-hoc semantics of pre-defined control-flow statements. Instead, terms describe the program’s state syntactically, while rewriting rules describe its semantics. Furthermore, terms and rewriting rules also provide a simple way to adopt the traditional watch expressions and step-by-step execution, respectively, whereas such techniques are often difficult to apply on declarative programs. This paper gives an overview of the design principles of FunBlocks, with a particular focus on its visual editor and debugger.
Conference DayTue 17 NovDisplayed time zone: Central Time (US & Canada) change
11:00 - 12:20
|NBSafety: Fine-Grained Lineage for Safer Jupyter Notebooks|
|Mito: Edit a spreadsheet. Generate production ready Python.|
|Functional Block Programming and Debugging|
Dimitri RacordonUniversity of Geneva, Switzerland, Emmanouela StachtiariUniversity of Geneva, Damien Morard, Didier BuchsUniversity of Geneva, SwitzerlandMedia Attached
|Exploring Human-in-the-loop Program Synthesis with Live Coding|
Mark SantolucitoBarnard College, Columbia University, USAMedia Attached