My high school is starting a program where, instead of following the 'traditional' method of teaching programming (learning variables, then operations, loops, methods, and finally OOP), students are immediately introduced to object oriented programming without any other programming knowledge.
Is this a good idea?
My personal view is that teaching OOP first is misguided - when I was introduced to OOP, I was able to appreciate the power it gave me when designing complex programs, as I was already familiar with procedural programming. Introducing students to OOP at such an early stage might make them ignorant as to the power and flexibility that OOP gives programmers.
There are also the practical problems - students might have a difficult time designing classes when they have not been introduced to methods properly (how they work, when they should be used, etc.). I don't have many details about the course curriculum, but by my understanding, students are to be introduced to OOP by their third lesson, after having been taught variables and operations (as well as standard input/output).
In case it's relevant, the language my school teaches in is C#.