One thing that we always did towards the beginning of a class was an exercise where we tell them to write down the steps to make a peanut butter and jelly sandwich. Then we'd literally get bread, peanut butter, and jelly, and follow their instructions to the letter. No one ever adequately describes the process: "put peanut butter on bread" - With what? the jar is closed, I can't! etc.
You might argue this introduces too imperative a thought process - but it gets the "computers do exactly what you tell them to" idea across very well.
I had a music teacher do exactly this to a class when I was 10 or so, and it's one of the most memorable school experiences for me as a child. The purpose was something like explaining yourself well, rather than programming, but the idea is the same.
We needed to describe how to draw some sheet music on the chalkboard, but you couldn't gesture (we could only communicate through an imaginary phone line), and he would take whatever you said as literally as possible and opposite of your original intention as he could.
"Ok, draw 5 lines" (Draws 5 squiggles) "No! 5 straight lines" (draws 5 lines in various locations and directions) "Nooo! 5 straight lines, above each other, horizontal!" (Draws the 5 lines of a musical staff, but 2 inches long and 3 feet vertical spacing between each line). "Nooooo! 5 straight lines, above each other, horizontal, they should be very long and close together" (Takes out a piece of paper from his desk, draws the staff on it) "NOOOO! On the chalkboard!" etc
I think this is much more relevant to both coding, and applicable to other disciplines as well. I do very little coding, I don't find it interesting, it's not at all the same basic knowledge base as history, civics, math, science. Coding is a higher level that requires a base first. I'm not skeptical of introducing code at such a young age, but I'm skeptical of treating it as if it's a basic thing many/most/all kids should understand.
One thing that we always did towards the beginning of a class was an exercise where we tell them to write down the steps to make a peanut butter and jelly sandwich. Then we'd literally get bread, peanut butter, and jelly, and follow their instructions to the letter. No one ever adequately describes the process: "put peanut butter on bread" - With what? the jar is closed, I can't! etc.
You might argue this introduces too imperative a thought process - but it gets the "computers do exactly what you tell them to" idea across very well.