Hi,
three or four times every year i find myself in a discussion about the "ideal" starting point for beginners: Should we start teaching all the basic concepts of procedural programming (variables, control structures, ...) or should we begin with Object Oriented Programming (OOP) right away ?
Interestingly, even educational software follows one or the other path: As an example,
ALICE clearly follows the "OOP path" from the beginning, whereas
CEEBOT starts with the "traditional" procedural approach and deals with OOP lateron.
On one hand, I dislike the idea to teach students OOP including properties and methods when they have never worked with "simple" variables and functions. On the other hand, I have experienced myself that switching your mind from a "solid" procedural programming style (which has developed over years) to OOP can be quite puzzling ...
At the moment, i try to teach somehow "in between": My students (15 to 16 yrs old) learn all the nitty-gritties of procedural programming first, but only write comparatively short programs (about 50 to max. 100 lines of code). And before they write more complex programs, they are confronted with the most important concepts of OOP. As i dont have a real argument for that approach, i am wide open to discuss it and learn from others' experiences ...