I’m borrowing a lot of ideas from Dan Anderson’s Computer Science course, and one of the things I really like about his approach is how he’s introducing students to a number of different languages, and through this, helping students to see the strengths and weaknesses of individual languages.
After playing with Lightbot, an admittedly extremely limited language, students were pretty pleased by the flexibility of scratch, which lets them string together an unlimited number of commands and has a far greater palette of commands to choose from. But, we’ve also been recently bumping up against the limitations of scratch, as we most recently saw when trying to implement a simple factorial program via livecoding (an awesome idea from Mark Guzdial). The left side is a solution in scratch, and the right side is the same program in Python.
Students were impressed by the brevity, readability, and intuitiveness of the pythonic approach. One student even recognized recursion from Lightbot, and they sort of laughed at my favorite XKCD Python cartoon.