Janelle, you make a great point about how Scratch does not require typing or looking for syntax errors. I remember observing children working with a product aiming to develop coding skills, but it involved some really high level typing for elementary school kids. Scratch I think provides a softer introduction to syntax by showing what it might look like with puzzle pieces (e.g. if–then statements).
When I started my first teacher web page, it was done with HTML coding. It was a lot of work and seemed complex but not so bad after working with it a while and learning what to do with and look for in the code. When web page editors were created it made it a much simpler and a creative option for more people to be able to participate in at the time. The Scratch coding seems to do the same thing, making coding easier and more user-friendly in order to engage more participants.
Growing up, I always thought about code as a series of 1s and 0s or lots of text. Scratch makes it a lot more accessible (we use ScratchJR with our 1st graders and Scratch with our 3rd and 4th graders). Somehow, they find it a lot easier than I do (not actually surprising at all), but I love how quickly I’m able to teach myself, whether through trial and error or using the help guides. I’d love to eventually make the jump from block based code to text based, but that’s miles and miles down the road still. At least now I feel comfortable trying to code using Scratch, a HUGE first step!
I had no experience with coding and felt very intimidated by even the idea of it until this past summer. I knew I wanted to incorporate coding into my enrichment classes with grades 4-8. So I explored several online platforms to try to find one that could teach me how to code. Scratch was too overwhelming and confusing for someone who knew literally nothing, and eventually I settled on using code.org. It has still been a challenge (although less of one once they updated their courses this month,) but I have made huge improvements. I am not an expert, but I do understand how their puzzles run and can help walk kids through the thinking when they are stuck. Best of all my students have taken to it way easier than I did, and many of them have passed me up. I like the fact that Scratch has a more open ended platform where kids don’t just solve puzzles but tell stories and create projects. I was planning to have my students graduate to Scratch when they feel they have a firm foundation in the thinking from code.org, but today I saw that Scratch is not ipad compatible. Is that true? Guess I need to check that out with my school before I make too many plans. I did enjoy playing with the name animation activity today. I loved the open ended choices I had with the program.
Coding with Scratch was weird at first, for me, but began making sense after working with it a bit. I haven’t tackled the variables and such as of yet. Even with this very basic understanding of this tool, I have successfully been able to integrate it into school. I’ve worked with students on Scratch and ScratchJr. Both have served to be great storytelling tools. Students can focus on creating their characters, locations, and what their story will be - short, long, whatever! There is usually a lot of talk around the development and process. Ideas flow and engagement is super high.
Programming used to be a lot more complicated. I find Scratch easy to use and attractive.
Years ago I learned a bit of programming which started with making a diagram of steps to program. The Scratch programming blocks are similar to the diagram blocks. In Scratch no complicated code is required, just use the blocks.
Scratch makes programming available for children and everyone who wants to make an animation, game, prototype or other project!
Play, Explore and Learn.
I have done a bit of coding in BASIC, HTML, LOGO, and Arduino. By far I enjoy Scratch the most. I think the fact that it is a graphical drag-and-drop language, playful, and full of potential, makes Scratch very appealing. Even though I have been using Scratch for several years, I am still learning and it is never boring to me. The original idea of having a low threshold with wide walls and high ceiling stands true - it’s easy to get involved, but the potential is endless.
I have friends and colleagues that write code and teach programming using text-based languages and it makes me thank my lucky stars that I work with elementary aged children. I am happy to see how Scratch uses the same concepts and structures as these other languages, but I truly prefer to work in Scratch.
I’ve been using Scratch in a Code Club for just over a year now. Really don’t miss the pedantic punctuation of many programming languages. Takes me back to learning to programme in Basic on a BBC Model B Computer in 1981.
In my case my coding experience has always been in a business context and very project oriented. There wasn’t a lot of room for experimentation as there was always a deadline. Scratch has given me more freedom to experiment than before. It also helps that I’m retired and so I’m coding at my own pace and for my personal enjoyment.
This is my first time trying coding. I had a more enjoyable experience on Scratch Jr. but I am starting to get Scratch. It maybe is saying something that I just popped out of bed before going to sleep because I realized that I could change something on my name play and have it controlled by hitting the green flag. I feel better now. I can go to sleep. :)
Before being introduced to scratch, I always thought that coding was for computer geniuses at University level who would type random words and numbers to “somehow” create a game etc. However, using scratch has enabled me to see how logical coding can be. The idea of using blocks is great for children and makes it more accessible. I also like the way how you can link coding to real life situations using the scratch blocks. For example, to direct a person through a maze, you may use move 10 spaces forward, turn 90 degress etc. In younger children, the teachers started using these concepts with the children before looking at scratch. It helps children to see the link between coding and an effect.
The trouble that so many starting coders have is where to actually get started. I like how scratch gives you discrete options and the tutorial was pretty easy to follow - I have a decent understanding of code, but am in no way an expert.
It was fun (and easy) enough that when my wife and five-year old were drawing and coloring bats last night, I went over to my computer and created a quick animation. My kid was less than impressed, but it was quite easy to do.
The roots of my ideas about coding are from back in the 1980’s, when I was lucky enough to to teach Logo to middle school students in Maine. (Thank you, Seymour Papert and MIT Media Lab!) The kids would “be the turtle” as they figured out how to generate geometric shapes and patterns - body syntonic was the phrase. How could you forget “Repeat 4 [Forward 50 Right 90]” after that? It was all about problem solving and critical thinking, plus the (relatively) easy access to sprites and sounds and animation gave the kids an outlet for creative expression.
I always assumed that everyone was logical and liked to figure stuff out. Therefore, everyone could learn to code. I never thought we were teaching those kids to be programmers or computer scientists, (but I did think a bit of geometry was good for them). I also believed that anyone could learn anything when motivated by their own curiosity (or passion), and anyone could do or be anything they wanted. (Thanks, Mom!)
For me, teaching coding is all about the projects you choose. Traditional programming challenges would make most people gag. For example, “List the first 100 prime numbers,” or “Reverse the order of a string,” or “Is this number odd or even?” or “Animate your name.” Oops, did I say that out loud? Let me explain…
IMO, the problem with “Animate your name” is that it’s more likely to foster cleverness than creativity. Granted, it’s not as bad as my other examples because it does open the door for creativity, but a successful product requires some level of mastery over specific Scratch techniques. The cart is before the horse.
What if we asked folks to use Scratch to introduce themselves?
Tell a story, show some pictures, make a timeline. Let’s get to know each other and make some connections. We might even call the project “Hello, World!”
Your story and how you want to tell it will determine which coding methods you’ll need. You’ll figure out where to find those resources, whether online or sitting next to you. You may explore similar projects and pick up some new ideas.
Next week, you can add to it by making it interactive. We’ll have a discussion about what makes a good user interface. You’ll go back and incorporate new ideas (and learn some new techniques).
Your program won’t work the way you want it to, and you’ll have to figure that out, too. Along the way, you’ll think of better ways to do certain things. You might show it to someone else, and they’ll make a suggestion or two.
In the end, you’ll be proud of your accomplishments, and you’ll pat yourself on the back. Who knows where your newly-found mastery over such a powerful machine will take you?
This is not my first experience with Scratch and I code on a regular basis, so I don’t know if the activity really changed my thinking about coding in general.
The project did, however, make me realize how easy it would be to start off an introduction to coding with a project. When I have taught programming to young people, I have always used the programming by puzzle approach, thinking that students must learn the basics of logic, syntax, etc. before moving on to coding projects. The readings and the Scratch project made me realize just how simple it would be to begin with a project-based approach.
I have used Scratch for years, and I really like it for several reasons. First, the user interface is easy to use; the same cannot be said of most other programming languages. Second, it is self-contained; students do not need to learn how to manage file structure or learn a separate graphic design program for images. Third, there is a great community around Scratch; I have found this to be true of most programming languages: programmers like to program, like to solve problems (theirs or others’), and like to share and teach. The main difference between the Scratch community and others is that it is largely made up of kids, so the projects are things kids would create.
There is one thing that I don’t like about Scratch, and that is the difficulty of transitioning students from Scratch to other languages. Since Scratch is an “out of the box” experience (by that I mean you simply download it or go to the webpage and it is ready to use), the setup barriers to other languages usually intimidate kids who have done only Scratch. While I can setup Python on a school computer and introduce kids to some projects, they are very unlikely to go home and further explore that language, in my experience. I would love to find more ways to help kids transition away from Scratch to other languages when they are ready. Scratch is so powerful that kids don’t always want to make this transition, though!
I’m using Scratch since a month and I really like it. My students like it too! For past couple years I used Logo in my clasroom - it wasn’t so clear for students as Schratch is.
I think that Schratch didn’t change my thinking of coding but I’m sure that it will be a good way for coding for young people
My experience also. I am not a good typist and though I understand the code, I often mistype it and have to go back and find mistakes and make corrections. I have always used an IDE like Dreamweaver for webpages or Eclipse for Java for that reason. For me, Scratch is a wonderful IDE for colorful animations, music, and storytelling. I love it!
I have retired from teaching children but I have set up a Code Club locally and I also continue my creativity through Tutoring teachers in Scratch. I have been innovating with Scratch code for more than 7 years, constantly looking at ways to help teachers make greater use of Scratch to work it into their methodogies. In 2014, after Scratch 2.0 was released, I made an important discovery that the Scratch team in MIT eventually recognised as a useful development. Teachers could for the first time, easily correlate coding with written work - a major breakthrough. Here was another way in which Scratch was ‘Thinking made Visual’.
I was very chuffed and honoured that the MIT Media Lab has added my new fine-line vector grids (xy-grid-20px) and (xy-grid-30px) into the backdrop library. I have seen how teachers have found it much easier to work with squares that resemble copybooks and graph paper than work with invisible pixels. Teachers can continue ‘creative constructivist learning’ with the addition of the grids that are now a part of Scratch. It is possible to include (xy-grid-10px) and other grids also. I have shared at conferences and courses how Scratch completes the learning sequence from Kindergarten (3D creative play), Juniors (2D creative play) and Middle to High (1D creative play with SCRATCH for Visual Thinking). See more at goo.gl/NiGzgo and over 100 shared Scratch projects under the ID readysteadycode https://scratch.mit.edu/users/readysteadycode
Read any book on coding, and they go on and on about how to create logical ifs/thens, control flows, loops, etc. I learnt what they were just so I could write the code I needed and be done with it. I just thought of code as large structures, with a few branches inside, that’s about it.
Scratch fundamentally changed that notion, when I saw these if/then statements, these for’s and loops actively being brought to life with blocks I could literally see in front of my eyes. I finally appreciated this idea of what computational thinking really is, breaking down every complex task (get character to move from x to y, with sounds and color changes, only when clicked), into a series of smaller tasks, with simple blocks, implemented inside logical ifs/thens and for’s.
Really, scratch should be the first and foremost method to teach people about logic, because instead of it being an abstract, general notion, it’s an intuitive, right in front of your eyes idea now.
I’m a contributor to a computer language, Prolog.
In Prolog data and code are the same thing.
We represent code, usually, in text. We represent data in a form natural to the data. So if code is data in Prolog, should we have other ways than text to manipulate it?
As I think about this, Scratch and Snap! come to mind sometimes. The blocks system uses what Donald Norman calls a ‘forcing function’ - you can’t put the blocks together wrong.
I’m experimenting with programming Prolog by moving physical objects around and tracking their movement. I sometimes make blocks that connect to other blocks with shaped edges, so it’s natural to understand which things can connect to which.
I have criticisms of Scratch - most notably, that it’s an imperative language. This is, in my experience, a difficult concept for beginners to get, and it makes it difficult to learn more mathematically reasonable and expressive languages later.
An additional criticism is that the messaging system allows only an enumerated set of messages. This limited message set prevents many abstractions.
Finally, object cloning has a great deal of spooky action at a distance in it.
Having spent much time programming in other agent languages, Scratch feels ad-hoc and full of bizarre limitations. There are many things which would be very difficult to program in scratch. It’s really more an animation system than a programming system.