Scratch Microworlds - Toys to Think with
Microworlds are a limited version of Scratch, which allows for easier ramping up. In this project, I will try to reimagine what Microworlds could look like.
An easy way to get started with Scratch - a smaller version, that is still coherent and interesting.
create a multi-step microworld - to provide more scaffolding
Low floor, high ceiling and wide walls
Trying to build a limited experience for novices is trying to balance between (at least) two approaches.
- Low floor - Making it as simple as possible, with a low barrier to entry.
- Wide walls - Making it interesting and allow for creation of many different ideas.
While a lot of educational tools err put more emphasize of the low floor, in Scratch we really care about the wide walls as well (even with the price of a higher floor).
How can we make something that will achieve both?
I suggest a multi-step process for novices, that could help achieve a balance between the floor and the walls.
- Start with something basic, that allows a few possibilities but not too many (like the Microworlds we have now).
- When you feel like you're done with this step, click something that will add more possible blocks.
- Repeat last stage a few times.
- Get to the full Scratch experience.
Creating a mobile version of a newcomer experience into Scratch has it's challenges and opportunities, and is a natural step for Scratch.
An example of a limited Microworld that talks about using lights to draw patterns.
There are 4 stages of a Microworld here, Starting with very basic commands, and adding more every time you click "show me more". We also start only with one sprite, and get the ability to add another one in stage 3.
The code you wrote in former steps goes with you from step to step - it's basically reveals new parts on the interface as you go.
I decided this method works better with a palette of commands then with the scattered ones like we have today.
I also tried to choose blocks that make sense together, and that allow creating something new and creative in every step.
Instead of trying to come up with both the content and the structure, I decided to use one of Scratch's existing tutorials. This way, it will be easier to test and see how does it compare to our current approach for tutorials. Also, a lot of thought is put into each of the tutorials, which makes them better then anything I can come up fast.
I choose the "Make Music" tutorial, because it's a great example how you can use a small number of blocks to create a variety of projects in Scratch.
I might actually have too little blocks, so for the last steps I'll probably add to the tutorial.
An interesting question I found myself struggling with was - how similar does it have to be to Scratch?
If I want it to be a stepping stone to Scratch, it should probably be similar enough or it will miss it's point. But, changing the UI could make it much simpler for what we need at first.
My compromise is as follows: I try to remove as much as possible, but keep things in the same place / similar.
So I got rid of the green flag, of the background manipulation and even the "sprite area" when it's not needed. Relevant parts can show up when needed - for example, the sprite area only shows up when it's time to add a second sprite.
Another tension I struggle with is how to keep the "wide walls" and the ability to create something that is your own, when the number of choices is limited.
I try to make sure that whenever possible, I give more then one option. So even though it doesn't mean much technically, it's important to me that the user be able to choose their first instrument and background.
For example, I'm still debating weather I should add the ability to record your own sounds. It's a very integral part of the music tutorial, but it makes the Microworld much more confusing.
1 - Choose your drum and background
2 - Play the drum (basic interaction)
3 - After clicking "show me more" you get a few more blocks to use.
4 - Clicking it again, you get a few more blocks, and the option to add another instrument.
5 - Adding a sprite opens a window with the music subset from the sprite library, so every choice that you make already has sounds associated.
6 - Coding the new instrument, with tips that show you how to do more.
7 - After this step, we split from the tutorial and offer a few more steps of adding blocks.
The basic idea of this project is the "show me more" button, that allows a user to own the decision when to move to the next step of the tutorial.
It has to be low-cost, and not scary to click this button, and you have to understand that you can click it anytime.
I wonder if kids will be stuck in the usual paradigm, where you have to get a "good job! you're moving to the next level!" before clicking, and trying to find design choices that will help promote the idea that this is different.
One thought is adding a "show me less" button, that allows you to go back if you've overwhelmed yourself :)
Another idea (thank you Glenn!) is to give the user more choice (at least in later steps) - instead of just choosing which blocks to add every time, ask the user - what do you want to do next (Make the instruments move? Record your own voice? Play with how the instruments look?) and provide the blocks according to their choices .
Trying to focus, I came up with this question as my goal:
How do I make getting started more intuitive and engaging?
I really want to see this as a working prototype, because there are many questions I think only play testing can answer. But, building it is a real technical challenge.
Next steps (probably not all):
While the scaffolding may make it easier to start, it's still not intuitive enough for kids to build something without some guidance.
What is the right way to provide this guidance?
Some methods we currently use:
Goldieblox Dolls Vs. Barbie Software Engineer
While both are dolls, are targeted specifically for young girls, there's a big difference between the two.
The Goldieblox set comes with a zipline and a parachute, and with a story about the girls that emphasizes the girls as builders, inventors and adventurers.
Barbie, on the other hand, comes with a laptop, a bag and a cellphone. While the accompanying story is supposed to be about how Barbie creates computer games, it actually tells the story of how she can only design, but need the help of some boys to code.
Because I can't build an actually prototype in time, I'm going to create an animation that would simulate a game play experience, hoping that I'll learn more about my design in the process.
But the first step is to learn new tools - Illustrator for the images and After Effects for the movie (Moved these experiences to a separate branch)
I wanted to learn more about Illustrator for a while, but never found a good time to start. After talking to Andrew about the next steps for my project, I decided that instead of waiting for a perfect opportunity I'm just going to try, especially with the understanding that I can use AE to create animations as well.
To get started, I used tutorials from Lynda.com, which proved to be very good! After watching their videos for a few hours and following along with their exercises, I feel like I can start creating my own things.
First step: Make an animation of a mouse pointer dragging a Scratch block - done!
Start researching different ways to provide tips/tutorial - started by looking at examples and how-to articles
Final version of the animation