Let's not teach kids higher-level organizational skills, but save those for later. For kids it is important that they can play, and fail often.
Let's not teach kids higher-level organizational skills, but save those for later. For kids it is important that they can play, and fail often.
When they start off coding, it might mean an entire week spent in a single python file:
The 50,000 foot view might be "Printing Restaurant Menu", the "line of code" view, might be getting the price of pizza.
We're not talking architecture, or operating systems, or networking, or boolean circuit logic, or anything, we're just printing their favourite food menu - a practical example of shifting perspectives.
Once they can shift easily, then we expand it in both directions - Now print menus for 10 restaurants. Now find the most expensive pizza.
I think these lessons can go hand in hand with Math -- too often the main complaint with Math is that it's too abstract (When am I ever going to use this?!) whereas if the Math lesson about averages tied into the coding lesson for printing the menu (Now find the average cost of all pizzas) kids might be able to see it as useful
I think the important thing here is that kids need to see the necessity first. Only then can they start to deal with more abstract concepts. And actually, I don't think this applies to only kids. I think it is the reason that "learning by doing" is so much more effective than anything else.
To give an example related to programming. I have seen CS students use preconditions and postconditions (i.e., assertions), on functions, without understanding why they were using them. They just wrote those assertions because the teacher said they had to do it. Of course, the assertions are useful, but only for large, more complicated, programs. But since the assignment programs were all small, the usefulness of this particular software engineering instrument completely eluded them.
Just kidding, your absolutely right. I just think we need to find a good way to communicate this to kids in an understandable way.