Click here if you wish to read this and the AI guide in a language other than English.
The eCraft2Learn project developed a set of extensions to the Snap! programming language to enable children (and non-expert programmers) to build AI programs. The blocks are available as projects with examples of using the blocks as well as libraries to download and then import into Snap! or Snap4Arduino. It is possible to download the files needed to run most of the blocks and projects described here without an Internet connection.
Important updates are documented here.
You can import any of the libraries below into your projects. If you click on the "project" link you'll open a project that illustrates usage of the library.
A guide currently consisting of six chapters describes the new blocks, possible projects, sample programs, background information, and the larger context about AI and machine learning:
|Adding speaking to your programs||Speech synthesis requires only speakers or earphones|
|Adding listening to your programs||Speech recognition requires a microphone (built-in or connected to a USB port)|
|Adding image recognition to your programs||Requires a camera (built-in or connected to a USB port) and registering to get API keys|
|Adding pre-trained machine learning models to your programs||Many examples rely upon a camera. It is very slow unless your device has a GPU.|
|Working with words and language||No special hardware requirements|
|Making machine learning neural nets||It is very slow unless your device has a GPU.|
The paper AI Programming by Children by Ken Kahn and Niall Winters describes this work and was published in the Proceedings of the Constructionism 2018 Conference. AI Programming by Children using Snap! Block Programming in a Developing Country by Ken Kahn, Rani Megasari, Erna Piantari and Enjun Junaeti was published at the EC-TEL 2018 conference and describes workshops with high school students in Indonesia using these AI blocks. An early version of the AI extension to Snap! is described in the paper Child-friendly Programming Interfaces to AI Cloud Services also by Ken Kahn and Niall Winters.
Constructionism and AI: A history and possible futures by Ken Kahn and Niall Winters describes our view of the history and future of the role of AI in constructionist learning. Deep Learning Programming by All by Ken Kahn, Yu Lu, Jingjing Zhang, Niall Winters, and Gao Ming describes our efforts in enabling students to build, train, and use deep learning models (as described in Making machine learning neural nets). Both papers were published in the Proceedings of the 2020 Constructionism Conference.
Programming word embeddings in Snap! by Ken Kahn, Yu Lu, Jingjing Zhang, Niall Winters, and Ming Gao was presented at SnapCon 2019, was translated to German in for the Log in teachers magazine, and a short version appeared in the English teachers magazine Hello World. This describes the material available in the guide Working with words and language. Learning by enhancing half-baked AI projects by Ken Kahn and Niall Winters describes many of the projects listed on this page.
This work has been presented at several conferences and universities. The slides can be found here. There are also slides from a talk about word embeddings and mathematics education.
The following demonstration programs use the AI Snap! blocks. They run best in the Chrome browser.
We have collected some projects by students who have used these AI blocks.
Send email to Ken Kahn (firstname.lastname@example.org) if you encounter problems or have questions.
Nearly all modern computers have a GPU. Without one or with a very primitive one programs using machine learning may run very slowly. For example, the image machine learning commands run very slowly on Raspberry Pis. One version of the audio training primitives, however, do run well on Raspberry Pis.
You can import any of these libraries into your existing or new projects. The AI blocks can then be found in the Snap! palette under , , or .