Both the context and the form were considered in the brainstorming process. The process can be summarized by answering two questions: what can it teach, and how user can interact with it.
In the brainstorming process, one of each element in the context and the form, has been found correlating with each other. Block-based programming and toy building blocks are both using blocks as the smallest unit construction unit, and they both involve blocks manipulation. I am thinking this tangible toolkit can be a somehow taking the block-based programming concept and combine it with tangible toy building blocks, to create a tangible block-based programming toolkit.
1.3.2 Idea Consolidation
CodeRhythm: A tangible programming toolkit for engaging blind and visually impaired (BVI) students to learn basic programming concepts by creating simple melodies.
Fig. 1. The structure of a syllable block and different function blocks.
CodeRhythm is a set of sound playing building blocks, and by using sound as a feedback, it makes the block accessible to visual impaired people. Tactile symbols are added on to each of the cube, such that visual impaired student can identify different blocks. It contains two type of blocks: syllable blocks and function blocks. Syllable blocks are blocks that would play different music note. The duration of each note can be change be pulling and pushing the upper part of the block. The syllable blocks can be put together to create different melodic sequences. Another type of blocks, function blocks, are the blocks that add logic and variation to the music sequences. Each function block represents one fundamental programming logic concept. For example, there would be a pair of “Loop- Start” and “Loop-End” function block, which it allows the note or sequence in between these two blocks to play repeatedly. The “Switch” function block allows user to switch between different completed note sequences. All the blocks can be easily connected without relying on vision, as magnets are embedded in each of the blocks. For the time being, I planned to make four different function blocks: “Start”, “Loop”, “Pause (Delay)”, and “Switch”.