Karel vs. Scratch

Let’s compare Karel the Robot and Scratch by solving the same maze. The Karel version is on the left, Scratch on the right:

In Karel, students type the following code:

To solve the maze with Scratch, students do not type code. Instead, they assemble the following graphical block with the mouse:

Scratch also provides a button where students can view the corresponding Javascript code afterwards:

This is a horrible code to present to a beginner.


The goal of a visual introductory programming language is to make programming fun, but also to prepare beginners for programming with standard languages such as C, C++, Python, Java, and others. All of them require typing code, a skill that needs to be learned.


For the last five years, we have been working with many K-12 schools, teaching computer programming to both students and instructors. We started with Python, but then we quickly realized that teaching it to beginners was not a good idea at all. Beginners want to focus on the programming logic, not on syntax. Yet a single syntax error makes the entire program to fail. Things like colons, semicolons, round brackets, square braces, commas, decimal points, combinations of lowercase and uppercase letters etc. lead to frustration, and you will not find them in Karel.