Friday, September 29, 2017

Interesting Notion About Starting With Block Based Programming

I was having a conversation with a CS teacher in a nearby district, one who has more years teaching CS than I, and someone I respect greatly. We were discussing the pros and cons of starting with block based programming, in this case, App Inventor in particular.

He mentioned how he at first was kind of dismissive of block based programming, because he didn't view it as "real" if you were having to tangle with the syntax and all the other hurdles of a text based language. But as he has actually used a block based platform for the first time this fall he said he was having some interesting thoughts, ones that will take a few years to find out the results, he said.

What he mentioned was he noticed that because his students WEREN'T getting mired in syntax, they were focusing on the structure of concepts themselves, such as how a conditional or loop is built. He also said that he always thinks of any new language in reference to the first one he learned, in his case C++ I believe.

Anyways, they were interesting thoughts that got me thinking too! I know the main purpose of the block based languages is to make a "lower floor" for entry, but this is a cognitive/pedagogical notion. I will be curious to see what he and I think in a few years!


  1. This is one of my favorite rants, teaching programming should never be about teaching syntax. Programming should be all about problem solving by using a tool that just happens to have a very structured syntax. When giving my class a programming problem I want them to have the structure of the program and an idea of where the code is going to go before they even touch the computer. This allows them to code in any language, they just have to apply a new syntax. Block languages are just a new syntax. The good programming technique should be language independent. Like I said, one of my favorite rants.

  2. I've never been a fan of DnD languages at the high school level for a number of reasons not the least of which is that I haven't seen an advantage at that age nor a transfer of knowledge that made the textual language easier later on. For younger grades, fine.

    To share an anecdote, a number of years ago a number of my girls toke part in the Technovation Challenge. They had kids come up and prototype a "business" using AppInventor. They grouped the kids such that each group had a spread of kids from less academically inclined to most (although all were supposed to be academically inclined).

    The weaker girls didn't seem to have learned much from the program in terms of programming having either leaned on the other girls or played jigsaw puzzle find the matching shape programming. The stronger girls found the environment frustratingly slow to work with and the laptop screens were way too small. They also felt it was more like "Powerpoint for the phone" rather than programming.

    For the sharper girls the program did more to turn them off than to inspire and teach.

  3. D&D do hit their limits in a hurry. They can also turn into a crutch more than an aide if used too long or if the course does not stress development or problem solving. I like D&D with beginners but once they get the idea of If, loops and other coding fundamentals it is time to move on. As Mike says, the transfer can be limited, especially if the teacher has not stressed concept over code.