The closing keynote speaker at the CSTA Conference was Michael Kölling who shared with us some of his thoughts about where CS Education was headed. "What’s Next for CS Education: Thoughts on Topics, Tools, and All the Rest". You should know Michael from Greenfoot and BlueJ. His talk was very engaging and one of his visions has really stuck with me.
I wish that his presentation was online because it wouldn’t do justice if I tried to recreate a chart that he drew about programming languages.
Basically, on an X-Y grid he mapped out our current selection of programming languages. He distinguished between “block” languages like Scratch and “text” languages like Java. One of the differences, of course, is in the environment. In his presentation, he argued that we need a new language that fits somewhere in between and demonstrated what it might look like in an ongoing project.
My first reaction was – great – something new that I would have to learn. But I stuck through with his argument and could see where he was headed.
If you’ve ever debugged and looked for that elusive semi-colon, you might jump right on board.
On the other hand, if you’ve looked up and down for the proper graphical structure, you might jump on board as well.
Stepping back, it is important to consider the student. For a long time now, we’ve seen success in making a student’s first programming language graphical in nature. It’s more of a “work on the algorithm” than “learn the language” approach. Ultimately, the assumption is that not all block programmers will become great text coding professionals. The goal is to teach an appreciation for problem solving by computer. And yet, there will be those who want to study everything.
You can’t help but think about the gap. The interested student will ultimately reach the end of the line for programming in a block language and will need to dive into the deep end full of semi-colons. There really is no transition.
Could a new language, filled with the best of both worlds, be the answer?