It is awesome you get the point of this lesson. The confusion that can come from this lesson is a prime example why we should take our time teaching this concept and really dive into what it going on under the hood with input -> processing/storage -> output.
First, name card = label. They have the same meaning. Also, many of the steps can be confusing for the short/easier programs because the value/point of the step can’t be directly seen. When you get to longer programs, like program 3 and 4, you will start to see the value of each step.
Step 1A & 1B will never be completed for the same line of code. It is dependent on whether the line of code has a var command or not. 1B is asking students to reference the label/name card before the =. This would only happen if the name card/label was already created in a previous line of code. Since the first line of code must always start with a var command to create a variable/label/name card, the first step students will take will be 1A. Later lines of code will either be 1A or 1B dependent on if it is a var command or not.
For step 2A the initial values aren’t included in the workspace because we are simulating input -> processing/storage -> output. The workspace is where we are “processing” our input. So initial values would not be loaded into the workspace until after the variable/label/name card was created.
For step 2B, crossing off the variable name and replacing that variable name with the current value of the variable simulates the processor looking up the value of that variable before completing the calculation.
My biggest recommendation with this lesson is to take it slow and really emphasize systematically following the steps exactly as they are described. In program 1 some of the steps will seem silly, but later programs will make it clear why those steps are there. This can be a very fulfilling lesson for students when they “get it”. It will also help them to understand how variables work and how to read/understand code like the following:
01 var xPosition = 100;
02 var yPosition = xPosition;
03 xPosition = yPosition + 30;
04 yPosition = yPosition + 50;
That code can be VERY confusing to beginning programmers. This lesson will empower students to understand this code.
My final suggestion is to make sure students are actively following along with each step and reading each step with you when you demo program 1 and 2. You could have them follow along with a ruler, or have them check off each step. It is critical that students follow along with the 4 steps for them to begin to understand what happens. I print the four steps very large on four uniquely colored sheets of paper for each student, so that they can focus and follow along on each step. “Turn the page to step 2, the green sheet”
If you help your students keep the steps organized they will be very grateful, but they will need a lot of encouragement at the beginning as they will not see the value at first. Right at the start I ask my students to peek ahead to program 7 which is a lot of code and can be very intimidating. I provide this as rationale for why we need to start small, but learn these steps systematically to be able to tackle bigger programs later.
Let me know if you have any other questions/concerns about this lesson. It can be frustrating, but in my opinion it’s one of the most essential CS Disco lessons of Unit 3!