C2LC Inclusive Coding Environment Design Vision
Design Values
Coding is about:
giving learners the power to create things with technology
helping learners develop communication, learning, and life skills
Collaboration with others should always be encouraged, but not required
Engagement with physical activities (i.e. not on the screen, e.g. robots, sensors, etc.) should be encouraged, but not required
Use of a screen should not always be necessary
The coding environment should:
provide different ways (or modalities) to use the system and to express a program (to support the needs of different learners)
support different kinds of activities, and should not prescribe which activities or curriculum or pedagogical approaches are used
be built in modular bits, so that teachers, parents, and students can choose which parts of the environment are used and can add their own parts, for example:
a simpler version can be used (e.g. only the sequence builder and the robot connection panel)
example code, starting points, instructional scaffolds (e.g. a video tutorial, a prompt) can be added
stories, goals, challenges, custom artwork and avatars can be added
be age-respecting, allowing learners of different ages or levels to use it (and make it their own versions of the artwork/characters/stories in it)
where possible, customizing the environment should be possible via both:
a user interface (e.g. GUI customization/layout tool or mode)
programmatically (i.e. by creating a program)
support sharing and modification of each others' programs
immediately approachable and usable (despite all the customization potential)
Approach
We design features by co-designing activities that are supported by those features—and then trying them out with learners
When we have an idea, if it's feasible, we build an experiment to try it out with learners
Students, teachers, parents and mentors have as much influence over features and priorities as we do (if they want)
Basic Environmental Concepts
Storytelling Metaphor
Story- the complete state of a world, including how the coding tool itself is configured and all the scenes, characters, and behaviours within it (composing it?)
Scenes - the worlds or canvases on which activity happens (this may be on screen or, possibly physical in the form of printed maps etc.)
Characters - avatars on screen, or robots in the physical world (but perhaps more generally a way to conceptualize agency within the system)
Behaviours (like a character sketch or the dialog in a play)
Sequences
Patterns (i.e. functions)
(Conditions?)
(Goals?) - a way of defining non-imperative or non-sequential behaviour
Stories should always be a little bit incomplete—something left to your imagination, always a next chapter
It should be possible for someone to create a "partial story," which someone else can then extend (i.e. add new scenes, characters, behaviours) or modify it (change existing scenes, characters, behaviour) - nothing in the system should be "magic"
Big Picture Roadmap
evolve incrementally from where we're currently at to where we want to go
each release, if possible, should include documentation and a video tutorial of how to use it, along with one or more inclusive activities to try with it
Version 0.5
Two features only
Sequence editing
Control of robots
Sequence editing
Sequence editing works, at minimum, with:
Mouse/trackpad
Touch
Keyboard only
If possible, sequence editing also works with eye gaze
Single sequence, no repetition or functions or custom tiles
Bonus feature: ability to record a sequence with your voice and play/pause it
Only title-based sequences (no visible textual representation—yet)
Control of robots
Environment automatically searches for supported robots, suggests connecting to them
If no robots are found, searches every x seconds/minutes
"Find Robot" button and dialog allows user to initiate connection process and to choose one or more robots
Robot and environment provide clear indication that they’ve been paired
Version 0.75
Finger painting sequence editor
Live evaluation of a sequence (a mode)
Version 1.0
Stage View - prominent part of the screen that has a character (avatar for the robot or standalone) and a world the character is exploring
On-screen Character representation doesn't feel like a turtle - playful and engaging
Ability to use the environment without a robot connected
Version 1.5
World builder
Ability to choose a character representation (choose from a palette or import your own images or finger paint your own?)
Ability to place scenery and move/remove it
Scenery can be images, text, videos
Ability to save and share a world
By this point, a teacher or facilitator should be able to set up a simple story using the tool (e.g. to establish goal points, etc.)
Version 2.0
Live world
Ability to add/edit sequences to any character/object on the stage
Conditions in the programming language - branching sequences
Ability to add conditional behaviour to characters - play sounds, perform movements, etc.
By this point, it should be possible for a teacher AND a student to tell their own little story with the environment
Version 2.25
Ability to create audio descriptions (recorded speech or text to speech) for:
Actions in a sequence
Proximity or other conditions
Built atop the features in 2.0, but made simpler so that worlds can be multirepresentational "out of the box"
Version 2.5
Scenery printing - ability to print out scenery for use with a robot
Version 3.0
Goal-directed coding (i.e. work backwards from a goal by introducing conditions or constraints, as opposed to explicit step-by-step sequences)