7 Tools for Teaching Programming

This is an excerpt from the 2021-22 version of The Practical Ed Tech Handbook. Two weeks ago a copy was sent to everyone who is subscribed to my Practical Ed Tech Newsletter. If you're not subscribed, you can do so here

For some of us of a certain age, Logo was our introduction to computers and programming 30+ years ago. Logo is still accessible today. Dr. Gary Stager has repeatedly said that it is still the best way to introduce students to programming. Logo is the basis for many other sites and apps that teachers can use to help students learn to program. Here are some of the best options for teaching and learning programming.

When the conversation amongst educators turns to programming, Scratch is often the first resource that is mentioned. Scratch allows students to program animations, games, and videos through a visual interface. Students create their programs by dragging together blocks that represent movements and functions on their screens. The blocks snap together to help students see how the "if, then" logic of programming works. Watch the video here to learn more about Scratch. And check out the ScratchEd team’s curriculum for teaching with Scratch

Scratch Jr. is based on the aforementioned online Scratch program. Scratch Jr for iPad and for Android  uses the same drag and drop programming principles used in Scratch. On Scratch Jr students can program multimedia stories and games. To program a story or game on Scratch Jr. students select background settings for each frame of the story. Then in each frame students select the actions that they want their characters to take. Students snap programming pieces together to make characters move and talk in their stories and games.

Snap! is a drag-and-drop programming interface designed to help students learn to program. Snap! uses a visual interface that works in your browser on your laptop as well as on your iPad. To design a program in Snap! drag commands into a sequence in the scripts panel. The commands are represented by labeled jigsaw puzzle pieces that snap together to create a program. You can try to run your program at any time to see how it will be executed. After previewing your program you can go back and add or delete pieces as you see fit. Snap! may remind some people of Scratch. That is because the Snap! developers call their program "an extended re-implementation of Scratch." The potential benefit of Snap! over Scratch is that teachers who have a mix of iPads, Android tablets, and laptops in their classrooms can have all of their students use the same programming interface.

The MIT App Inventor enables students to create and publish their own Android applications. The MIT App Inventor works in your web browser (Chrome is recommended). The only download that is required for App Inventor 2 is the optional emulator. The emulator allows people who don't have Android devices to text their apps on their desktops. If you have an Android device then the emulator is not required and you don't need to worry about installing it. MIT provides excellent support documentation and curriculum for classroom use for new users of App Inventor. A detailed tutorial on how to make an Android app with the MIT App Inventor can be watched here.

Thunkable is a platform for designing, testing, and publishing your own Android apps and iOS apps. Through Thunkable you can create your apps even if you don't know how to write code. That is possible because Thunkable uses a drag-and-drop design framework. That framework, based on the MIT App Inventor, shows you jigsaw-like pieces that have commands labeled on them. Your job is to put the pieces together to make your apps work. Thunkable offers detailed written tutorials and video tutorials.

Daisy the Dinosaur is a free iPad app designed to introduce young students to some programming basics. The app asks students to create commands for Daisy the Dinosaur to carry out. There is a free play mode in which students can make Daisy do whatever they want. But to get started you might want to have students work through the beginner challenges mode. Daisy the Dinosaur asks students to enter commands in the correct sequence in order to make Daisy complete tasks correctly. Daisy the Dinosaur could be used with students as young as Kindergarten age.

Blackbird is a platform that launched in early 2021 to help teachers teach programming to middle school and high school students. Blackbird positions itself as a platform that fills the gap between using a blocks-based service like Scratch and writing code in an IDE. Blackbird doesn't use blocks or even offer any blocks. Instead, Blackbird provides a series of interactive lessons in which students write JavaScript. Blackbird lessons are arranged in progressive units. From the first lesson students are building a game they can customize to their heart's content. When they've finished all of the lessons students can move onto a "workshop" where they can work on independent projects that you can observe from your teacher dashboard in Blackbird.