Announcing Blocks for CodeWorld

Hi everyone, (this is somewhat cross-posted from reddit) I'm announcing Blocks for CodeWorld, which is a functional based drag-and-drop programming environment. The project is part of Haskell Summer of Code. The aim of the project is to create a web application with which users can drag-and-drop blocks in order to create CodeWorld https://code.world/ applications, The project is primarily educational based, and more advanced applications may be created with the regular CodeWorld text UI. The application uses Blockly to allow users to drag-and-drop blocks, which can then be snapped together in order to build programs, in a Scratch-esque manner. The generated code is Haskell, which is then sent to the regular CodeWorld server and compiled with GHCJS, the resulting JavaScript is then run on the site. Code is generated as students are introduced to programming concepts with the Blocks and will later be exposed to a more text based environment. The majority of the code, aside from Blockly, is in Haskell, which is compiled to JavaScript using GHCJS. Currently, in this initial release, the user is able to: - Build and run simple CodeWorld programs, mostly pictures and transformations thereof - Save and Load projects, load a program by its URL. - Use polymorphic blocks, such as an if-then-else block and some others - Use Let definition blocks to create top level bindings Later, more advanced functional features such as pattern matching and some support for first-class functions might be covered. For anyone interested, an initial version can be found at code.world/blocks. If you want to follow on the progress you can check out my blog http://stefanj.me/funblocks/.
participants (1)
-
Stefan