Take a look inside 6 images
Scratch
Pros: Massive community for support and resources, can easily integrated into different subjects.
Cons: Moderation depends on user reporting. Anyone, even adults, can create accounts. Doesnt include text-based coding.
Bottom Line: Scratch draws students of all types into coding and lays a foundation for future learning.
Teachers can use Scratch to teach students coding concepts and elements of computational thinking. Once students are proficient in using it, Scratch can become another tool for demonstrating learning in other content areas. Through animation, audio, image, and text, students can tell stories, explain concepts, and create art and games. The Scratch platform can be another option for project-based assessments -- an alternative to writing, presentations, etc. For coding teachers, Scratch is a great springboard to traditional text-based coding languages like Ruby or Swift.
Scratch has an expansive community of users and educators (from around the world, since Scratch supports dozens of languages). Because of this community, everyone from the complete novice to the seasoned expert can find tutorials, answers to questions, projects to remix, and, most important, inspiration to continue building their coding skills and finding new challenges.
Scratch is a well-established block-based coding language created by MIT's Lifelong Kindergarten Group. It can be used online or downloaded and used without an internet connection. Like its predecessors, Scratch allows students to learn and put to use essential elements of coding and computer science. From creating variables to building functions, students snap drag-and-drop blocks of code together to create programs for animation, digital storytelling, art, math -- you name it. With Scratch, students can also program a variety of peripheral devices (like the micro:bit) for robotics, science, and engineering learning. Scratch programmers have extensions that allow them to include text-to-speech and language translation. Teachers can register for educator accounts that provide additional features, like the ability to create classes and add students, group student work by project, and moderate student activity.
The Scratch screen is divided into three sections: the stage on the right side (where you see the results of your code in action), the workspace in the center (where you put the code together), and the blocks palette on the left (where you find all the code blocks). Students code the actions of multiple sprites (the different characters) or screen elements and can also add sounds, images, and textual elements to build almost anything.
Scratch is a powerful platform for learning to code not only because it teaches all the essential concepts of coding, but also because it can be easily integrated into almost any subject area. Students can tackle meaningful projects that express understanding of novels, historical events, and math and science concepts while also reinforcing coding and computational thinking skills. As a foundation for learning to code, Scratch removes the obstacles that beginners often find so difficult (syntax, terminology, etc.) but lays the groundwork for those who go on to learn languages like Java, Ruby, or Python. Providing even more of a bridge into the actual languages would help kids take that next step into more advanced programming.