> I've found that modeling or simulating something real like a card game is very effective.
I think the last paragraph of this article should have really been blown up to be the entire article. I want to know more about this experience the author had.
Because one question I have is: should we even be teaching object-oriented programming to beginners? The rationale for the modified class schedule is that it answers the question "WHY!?", but I still feel myself screaming that question after reading this piece.
Let me propose something entirely different: what if trying to get everyone to learn Python is too much to ask? In fact, why would we use such a niche programming language when there's one out there used by far more people: Excel. Why are we reaching toward the object-oriented model of program design, when the people have spoken as to what works for them? Far and away, the masses prefer the reactive, dataflow experience provided by Excel, so let's meet them at their level. And SQL to the list. There are people in my life who I wouldn't trust to turn change the battery on my laptop, and yet they somehow know and understand SQL for their job. They are completely mystified by Python, yet can write a SQL query like no one's business.
I think it's far past time "learning to code" meant "learning Python/JS/C". Let's stop trying to force them to use a tool that we developers are comfortable with, and teach them how to code using tools they already know how to use.